Method and system for split-compiling a hybrid language program
AssigneeCadence Design Systems, Inc.
InventorsEllen M. Sentovich, Luciano Lavagno
Life of this patent
Estimating the term…
Abstract
A combined language-compiler that provides for the efficient compilation process of hybrid computer code written using a plurality of computer languages by splitting the hybrid code in such a way that each code statement is optimally independently compilable. The designer specifies both computation and communication between different hybrid code modules.
Claims46
In a combined E/C (Esterel-C) language compiler product for a computer system, said combined E/C language compiler comprising an Esterel computer language, an Esterel compiler, and a C compiler, a method of compiling of an E/C source code using said combined E/C compiler product, said method comprising the steps of:
- (a) parsing a plurality of statements of said E/C source code;
- (b) splitting said E/C source code into a plurality of sets of code statements, each said set comprising a plurality of code statements compilable by one said compiler;
- and
- (c) compiling each said set of code statements.
In a combined E/C (Esterel-C) language compiler product for a computer system, said combined E/C language compiler comprising an Esterel computer language, an Esterel compiler, and a C compiler, a method of compiling of an E/C source code using said combined E/C compiler product, said method comprising the steps of:
- (a) parsing said plurality of code statements of said E/C source code into a combined representation;
- (b) splitting said combined representation into a plurality of sets of E/C code statements;
- (c) using at least two compilers to compile said plurality of sets of E/C code statements;
- wherein each said E/C set is compilable by one said compiler;
- and
- (d) merging each said set of compiled E/C statements into a single executable program.
In a combined E/C (Esterel-C) language compiler product for a computer system, a method of compiling of an E/C source source code using said combined E/C language-compiler product, said method comprising the steps of:
- (a) parsing said plurality of E/C source code statements into a combined representation;
- (b) splitting said combined representation into a plurality of sets of code statements, each said set comprising a plurality of code statements;
- (c) compiling each said set of code statements;
- and
- (d) merging each said compiled code statement into a single executable program.
In a combined E/C (Esterel-C) language compiler product for a computer system, a method of compiling an E/C source of a hybrid source code using said combined E/C compiler product, said method comprising the steps of:
- (a) parsing said plurality of E/C source code statements into a combined representation;
- (b) splitting said combined representation into a plurality of sets of code statements;
- (c) using at least two compilers to compile said plurality of sets of code statements;
- wherein each said set is compilable by one said compiler;
- and
- (d) merging each said set of compiled statements into a single executable program.
A combined E/C (Esterel-C) language compiler product for a computer system, comprising;
- (a) a merged syntax defining a plurality of acceptable code statements;
- (b) a splitter configured to split said merged syntax into a plurality of sets of code statements;
- (c) a compiler configured to compile each said set of code statements;
- and
- (d) a post-compiler level merger configured to merge each said compiled code statement into a single executable program.
A combined E/C Esterel-C language product for a computer system, comprising:
- (a) a syntax of a an E/C language defining a plurality of acceptable code statements;
- (b) a splitter configured to split said E/C code into a plurality of sets of code statements, each said set comprising a plurality of code statements, each said code statement compilable independently;
- (c) a compiler configured to compile each said set of code statements;
- (d) a checker configured to check whether each said compiled code statement satisfies the semantics of said E/C language;
- and
- (e) a post-compiler level merger configured to merge each said compiled code statement into a single executable program.
A computer-usable apparatus useful in association with a combined E/C (Esterel-C) language compiler, said combined E/C language compiler configured to compile a plurality of code statements;
- said computer-usable apparatus including computer-readable code instructions configured to cause said combined E/C language compiler to execute the steps of:
- (a) defining a plurality of acceptable statements of a combined E/C code;
- (b) splitting said combined E/C code into a plurality of sets of code statements, each said set comprising a plurality of code statements compilable independently;
- (c) compiling each said set of code statements;
- and
- (d) merging each said compiled code statement into a single executable program.
A computer-readable code embedded in a storage medium, wherein
- said computer readable code is manipulated by a combined language compiler, combined E/C (Esterel-C) language compiler configured to compile a plurality of code statements written using a plurality of computer languages, said combined language compiler said configured to execute the steps of:
- (a) accepting a combined code comprising a plurality of code statements;
- (b) splitting said combined E/C code into a plurality of sets of code statements, each said set comprising a plurality of independently compilable code statements;
- (c) compiling each said set of code statements;
- and
- (d) merging each said compiled code statement into a single executable program.
A computer-readable code embedded in a storage medium, wherein
- said computer readable code is manipulated by a combined Esterel-C (E/C) language language compiler, said combined E/C language compiler comprising an E/C language, an Esterel compiler, and a C compiler, said combined E/C language compiler configured to compile a plurality of code statements written using said E/C language, said combined E/C language compiler configured to execute the steps of:
- (a) accepting a plurality of statements of an E/C source code;
- (b) splitting said E/C source code into a plurality of sets of code statements, each said set comprising a plurality of independently compilable code statements;
- (c) compiling each said set of code statements;
- (d) checking whether each said compiled code statement satisfies the semantics of each said language;
- and
- (e) merging each said compiled code statement into a single E/C executable program.
Dependencies are inferred from the claim text.