System and method for multi-language extensible compiler framework
First Claim
1. A system operable to perform a multi-programming-language compilation process on a computer program written in one or more computer programming languages, comprising:
- a compiler framework operable to perform a programming language-independent portion of the compilation process on the computer program;
a plurality of language modules, wherein each language module is operable to perform programming language-dependent portion of the compilation process on one of the one or more computer programming languages in the computer program and/or invoke another language module in the plurality of language modules via one of a plurality of language interfaces; and
said plurality of language interfaces, wherein each language interface is provided by one of the plurality of language modules to interact with the compiler framework and/or other language modules.
3 Assignments
0 Petitions
Accused Products
Abstract
To meet the current trend in computer programming, a multi-programming-language compiler system is designed to include a compiler framework which creates a general environment in which to carry out compilation and language modules to encapsulate the details of various programming languages. Such a system makes it easy for tool vendors and end users to adapt to a world where computer programs are written in multiple languages. New language modules may be written that add support for new languages to the compiler framework. It may also be possible to extend existing language modules so that a variant on an existing language may be added to the compiler framework. Such a system may also be adapted to permit several different clients to access detailed language information from the compiler framework. These clients may include a standard command-line shell or a sophisticated multi-language integrated development environment. This description is not intended to be a complete description of, or limit the scope of, the invention. Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.
117 Citations
55 Claims
-
1. A system operable to perform a multi-programming-language compilation process on a computer program written in one or more computer programming languages, comprising:
-
a compiler framework operable to perform a programming language-independent portion of the compilation process on the computer program; a plurality of language modules, wherein each language module is operable to perform programming language-dependent portion of the compilation process on one of the one or more computer programming languages in the computer program and/or invoke another language module in the plurality of language modules via one of a plurality of language interfaces; and said plurality of language interfaces, wherein each language interface is provided by one of the plurality of language modules to interact with the compiler framework and/or other language modules. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system operable to perform a multi-programming-language compilation process on a computer program written in one or more computer programming languages, comprising:
-
a compiler framework operable to perform a language-independent portion of the compilation process on the computer program; a plurality of language modules, each language module in the plurality of language modules is operable to; perform a language-dependent portion of a compilation process on one of the one or more computer programming languages in the computer program; provide language information about the computer program; and invoke another language module in the plurality of language modules via a language interface; an information interface operable to permit each client in a plurality of clients to interact with the compiler framework; a plurality of clients operable to utilize the information interface to request the compiler framework to perform at least one of the following tasks; obtaining the language information produced by the plurality of language modules; and requesting a service provided by the compiler framework. - View Dependent Claims (16, 17, 18)
-
-
19. A method operable to perform a multi-programming-language compilation process on a computer program written in one or more computer programming languages, comprising:
-
utilizing a compiler framework operable to perform a programming language-independent portion of the compilation process on the computer program; invoking a plurality of language modules, wherein each language module is operable to perform a programming language-dependant portion of the compilation process on one of the one or more computer programming languages in the computer program and/or invoke another language module in the plurality of language modules via one of a plurality of language interfaces; and providing said plurality of language interfaces, wherein each language interface is operable to allow one of the plurality of language modules to interact with the compiler framework and/or other language modules. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A method operable to perform a multi-programming-language compilation process on a computer program written in one or more computer programming languages, comprising:
-
utilizing a compiler framework operable to perform a language-independent portion of the compilation process on the computer program; invoking a plurality of language modules, each language module in the plurality of language modules is operable to; perform a language-dependent portion of a compilation process on one of the one or more computer programming languages in the computer program; provide language information about the computer program; and invoke another language module in the plurality of language modules via a language interface; including a plurality of clients operable to utilize the information interface to request the compiler framework to perform at least one of the following tasks; obtaining the language information produced by the plurality of language modules; and requesting a service provided by the compiler framework. - View Dependent Claims (34, 35, 36)
-
-
37. A computer readable medium having instructions stored thereon that when executed by a processor cause a system to:
perform a multi-programming-language compilation process on a computer program written in one or more computer programming languages, comprising; utilizing a compiler framework operable to perform a programming language-independent portion of the compilation process on the computer program; invoking a plurality of language modules, wherein each language module is operable to perform a programming language-dependant portion of the compilation process on one of the one or more computer programming languages in the computer program and/or invoke another language module in the plurality of language modules via one of a plurality of language interfaces; and providing said plurality of language interfaces, wherein each language interface is operable to allow one of the plurality of a language modules to interact with the compiler framework and/or other language modules. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
51. A computer readable medium having instructions stored thereon that when executed by a processor cause a system to:
-
perform a multi-programming-language compilation process on a computer program written in one or more computer programming languages, comprising; utilize a compiler framework operable to perform a language-independent portion of the compilation process on the computer program; invoke a plurality of language modules, each language module in the plurality of language modules is operable to; perform a language-dependent portion of a compilation process on one of the one or more computer programming languages in the computer program provide language information about the computer program; and invoke another language module in the plurality of language modules via a language interface; provide an information interface operable to permit each client in a plurality of clients to interact with the compiler framework; include a plurality of clients operable to utilize the information interface to request the compiler framework to perform at least one of the following tasks; obtaining the language information produced by the plurality of language modules; and requesting a service provided by the compiler framework. - View Dependent Claims (52, 53, 54)
-
-
55. A system operable to perform a multi-programming-language compilation process on a computer program written in one or more computer programming languages, comprising:
-
means to utilize a compiler framework operable to perform a programming language-independent portion of the compilation process on the computer program; means to invoke a plurality of language modules, wherein each language module is operable to perform a programming language-dependant portion of the compilation process on one of the one or more computer programming languages in the computer program and/or invoke another language module in the plurality of language modules via one of a plurality of language interfaces; and means to provide said plurality of language interfaces, wherein each language interface is operable to allow one of the plurality of language modules to interact with the compiler framework and/or other language modules.
-
Specification