Interface for representing effects in a multilanguage...

G - Physics – 06 – F

Patent

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

G06F 9/45 (2006.01)

Patent

CA 2081477

A compiler framework uses a generic "shell" or control and sequencing mechanism, and a generic back end (where the code generator is target-specific). The generic back end includes the functions of optimization, register and memory allocation, and code generation. The shell may be executed on various host computers, and the code generation function of the back end may be targeted for any of a number of computer architectures. A front end is tailored for each different source language, such as Cobol, Fortran, Pascal, C, C + +, Ada, etc. The front end scans and parses the source code molecules, and generates from them an intermediate language ("IL") representation of the programs expressed in the source code. This IL is constructed to represent any of the source code languages in a universal manner, so the interface between the front end and back end is of a standard format. and need not be rewritten for each language-specific front end. The IL representation generated by the front end is based upon a tuple as the elemental unit, where each tuple represents a single operation to be performed, such as a load, a store, an add, a label, a branch, etc. A data structure is created by the front end for each tuple, with fields for various necessary information. One feature of the invention is a mechanism for representing effects and dependencies in the interface between front end and back end; a tuple has an effect if it writes to memory, and has a dependency if it reads from a location which some other node may write to. A mechanism independent of source language is provided for describing the effects of program execution. Another feature is the use in the optimization part of the compiler of a method for analyzing induction variables, where the improvement is to use the side effects sets used to construct IDEF sets. Another feature is a mechanism for "folding constants" (referred to as K-folding or a KFOLD routine), included as one of the optimizations. A further feature is the type definition mechanism, referred to as the TD module, which provides mechanisms used by the front end and the compiler of the back end in constructing program type information to be incorporated in an object module for use by a linker or debugger. Another feature is a method for doing code generation using code templates in a multipass manner.

Un environnement de compilateur utilisant un mécanisme générique de contrôle et de mise en séquence (shell), ainsi qu'un environnement d'arrière-plan (où le générateur de code est spécifique à la machine objet). L'environnement d'arrière-plan générique comprend les fonctions d'optimisation, des registres et de l'allocation de mémoire, ainsi que de génération du code. Le shell peut être exécuté sur divers ordinateurs hôtes, et la fonction de génération de l'environnement principal peut être configurée pour diverses architectures d'ordinateurs. Un environnement d'avant-plan particulier est prévu pour chaque langage source différent comme le Cobol, le Fortran, le Pascal, le C, le C++, l'Ada, etc. L'environnement d'avant-plan balaie les modules du code source et en fait une analyse syntaxique. Ensuite, il produit à partir de ces modules un code en langage intermédiaire (LI) du programme source. Ce langage intermédiaire est construit de façon à représenter n'importe quel langage de code source de façon universelle, de sorte que l'interface entre les environnements d'avant-plan et d'arrière-plan a un format standard et n'a pas à être réécrite de façon spécifique pour chaque environnement d'avant-plan. La représentation en LI produite par l'environnement d'avant-plan est fondée sur une unité élémentaire appelée tuple. Chaque tuple représente une opération unique à exécuter, comme charger stocker, ajouter, créer une étiquette, faire un branchement, etc. Une structure de données est créée par l'environnement d'avant-plan pour chaque tuple, avec les champs nécessaires à la représentation de toute l'information nécessaire. Une caractéristique de l'invention est un mécanisme de représentation des effets et dépendances de l'interface entre l'environnement d'avant-plan et l'environnement d'arrière-plan. Un tuple a un effet s'il écrit dans la mémoire, et il a une dépendance s'il lit d'un emplacement où un autre noeud peut aussi écrire. Un mécanisme indépendant du langage source est fourni pour décrire les effets de l'exécution du programme. Une autre caractéristique est la partie optimisation du compilateur d'une méthode pour l'analyse de variables d'induction, l'amélioration consistant à utiliser un effet secondaire obtenu de la construction d'ensembles IDEF. Une autre caractéristique est un mécanisme de "constantes de pliage" (appelées routine de pliage K ou routine KFOLD), inclues en tant que mécanisme d'optimisation. Une caractéristique supplémentaire est le mécanisme de définition de type connu comme module TD, qui fournit les mécanismes utilisés par l'environnement d'avant-plan et au compilateur de l'environnement d'arrière-plan pour la production de l'information sur le type de programme à incorporer en tant que module objet destiné à un éditeur de liens ou à un débogueur. Une autre caractéristique est une méthode de génération de code utilisant des modèles de code en mode multipassage.

LandOfFree

Say what you really think

Search LandOfFree.com for Canadian inventors and patents. Rate them and share your experience with other people.

Rating

Interface for representing effects in a multilanguage... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Interface for representing effects in a multilanguage..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Interface for representing effects in a multilanguage... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFCA-PAI-O-1564255

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.