Patent WO-9215942-A1 (WO)
Title: Expressions inductives d'analyse dans un programme compilateur optimiseur multilangage
Inventor: BLICKSEIN DAVID SCOTT
IPC: G06F9/45
Filed: 1992-02-18
Abstract: Programme compilateur 'framework' utilisant un système générique ou un mécanisme de régulation et de classement, et un processeur dorsal générique (pour lequel le générateur de code est spécifique au destinataire). Le processeur dorsal générique englobe les fonctions d'otpimisation, d'attribution de registre et de mémoire et de génération de code. Le système expert générique peut être réalisé sur divers ordinateurs centraux et la fonction génération de code du processeur dorsal peut être ciblée en fonction de l'une quelconque parmi plusieurs architectures d'ordinateur. Un processeur frontal est adapté à divers langages source, tels que le Cobolt, le Fortran, le Pascal, C, C++, Ada, etc. Le processeur frontal balaie et analyse les modules code source et élabore à partir de ceux-ci une représentation en langage intermédiaire ('IL') des programmes exprimés dans le code source. Cette représentation IL est conçue de manière à représenter l'un quelconque des langages code source de manière universelle de sorte que l'interface entre le processeur frontal et le processeur dorsal se présente sous une forme standard et n'est pas besoin d'être réécrite pour chaque processeur frontal ayant un langage spécifique. La représentation IL élaborée par le processeur frontal est basée sur un nuplet en tant qu'élément de base, dans lequel chaque nuplet représente une opération unique devant être exécutée - charge, mise en mémoire, addition, étiquettage, branchement, etc. Une structure de données est créée par le processeur frontal pour chaque nuplet, avec des champs pour diverses informations nécessaires. L'une des caractéristiques de l'invention réside dans son mécanisme de représentation des effets dépendances dans l'interface entre processeur frontal et processeur dorsal; un nuplet produisant un effet s'il écrit dans une mémoire et présentant une dépendance s'il lit d'un emplacement vers lequel un autre n÷ud peut écrire. Un mécanisme indépendant du langage source est prévu pour décrire les effets de l'exécution du programme. Une autre caractéristique réside dans l'utilisation, dans la partie optimisation du programme compilateur, d'une méthode d'analyse des variables d'induction, dans laquelle l'amélioration consiste à utiliser des ensembles d'effets secondaires utilisés pour élaborer des ensembles IDF. Une autre caractéristiques réside dans un mécanisme pour 'repliages constants' (désigné par les termes 'K-folding ou KFOLD routine'), constituant l'une des optimisations. Une autre caractéristique réside dans le mécanisme de définition de type, désigné 'module TD', qui fournit des mécanismes utilisés par le processeur frontal et le programme compilateur du processeur dorsal dans les informations type de programme de construction devant être incorporées dans un module objet à l'usage d'un éditeur de lien ou d'un metteur au point. Une autre caractéristique est constituée par la méthode de génération de code d'instruction utilisant des gabarits de code selon un procédure multipasse.