Patent WO-9215943-A1 (WO)
Title: Programme compilateur d'optimisation multilangage mettant en ×uvre des gabarits pour l'elaboration d'un code de passe multiple
Inventor: BLICKSTEIN DAVID SCOTT
IPC: G06F9/45
Filed: 1992-02-18
Abstract: Programme compilateur 'framework' utilisant un système expert 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'optimisation, d'allocation de registre 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 de multiples architectures d'ordinateur. Un processeur frontal est adapté à chaque langage source, tel que le Cobolt, le Fortran, la 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. Ce langage IL est élaboré 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éécrit pour chaque processeur frontal à langage spécifique. La représentation IL élaborée par le processeur frontal est basée sur un nuplet comme élément de base, dans le cadre duquel 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 différentes informations nécessaires. L'une des caractéristiques de l'invention consiste en un mécanisme de représentation d'effets et de 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 à partir d'un emplacement vers lequel un autre n÷ud peut écrire. Un mécanisme indépendant du langage source est fournit pour décrire les effets de l'exécution du programme. L'utilisation dans la partie optimisation du programme compileur, d'une méthode d'analyse des variables d'induction, dans le cadre de laquelle l'amélioration consiste à utiliser des ensembles d'effets secondaires employés pour élaborer les ensembles IDEF constitue une autre caractéristique. Un mécanisme de 'repliages constants' (désigné par les termes 'K-folding ou KFOLD routine') constitue 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 les 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és dans un module objet à l'usage d'un éditeur de lien ou d'un metteur au point. Une dernière caractéristique réside dans la méthode de génération de code d'instruction, mettant en ÷uvre des gabarits de code selon une procédure multipasse.