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, comprising:
- a compiler framework operable to perform a programming language-independent portion of the compilation process;
a plurality of language modules, wherein each language module is operable to perform a programming language-dependent portion of the compilation process; and
a plurality of language interfaces, wherein each language interface is provided by a language module to interact with the compiler framework.
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.
-
Citations
56 Claims
-
1. A system operable to perform a multi-programming-language compilation process on a computer program, comprising:
-
a compiler framework operable to perform a programming language-independent portion of the compilation process;
a plurality of language modules, wherein each language module is operable to perform a programming language-dependent portion of the compilation process; and
a plurality of language interfaces, wherein each language interface is provided by a language module to interact with the compiler framework. - 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, comprising:
-
a compiler framework operable to perform a language-independent portion of the compilation process;
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 and to provide language information about the computer program;
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, comprising:
-
utilizing a compiler framework operable to perform a programming language-independent portion of the compilation process;
invoking a plurality of language modules, wherein each language module is operable to perform a programming language-dependent portion of the compilation process; and
providing a plurality of language interfaces, wherein each language interface is operable to allow a language module to interact with the compiler framework. - 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, comprising:
-
utilizing a compiler framework operable to perform a language-independent portion of the compilation process;
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 and to provide language information about the computer program;
providing an information interface operable to permit each client in a plurality of clients to interact with the compiler framework;
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 machine 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, comprising;
utilizing a compiler framework operable to perform a programming language-independent portion of the compilation process;
invoking a plurality of language modules, wherein each language module is operable to perform a programming language-dependent portion of the compilation process; and
providing a plurality of language interfaces, wherein each language interface is operable to allow a language module to interact with the compiler framework. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. A system operable to perform a multi-programming-language compilation process on a computer program, comprising:
-
means to utilize a compiler framework operable to perform a programming language-independent portion of the compilation process;
means to invoke a plurality of language modules, wherein each language module is operable to perform a programming language-dependent portion of the compilation process; and
means to provide a plurality of language interfaces, wherein each language interface is operable to allow a language module to interact with the compiler framework.
-
-
56. A computer data signal embodied in a transmission medium, comprising:
-
a code segment including instructions to perform a multi-programming-language compilation process on a computer program, comprising;
utilizing a compiler framework operable to perform a programming language-independent portion of the compilation process;
invoking a plurality of language modules, wherein each language module is operable to perform a programming language-dependent portion of the compilation process; and
providing a plurality of language interfaces, wherein each language interface is operable to allow a language module to interact with the compiler framework.
-
Specification