Method and system for split-compiling a hybrid language program
AssigneeCadence Design Systems, Inc.
InventorsEllen 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 compliable. The designer specifies both computation and communication between different hybrid code modules.
Claims17
In a combined language compiler product for a computer system, a method of compiling a code comprising a plurality of code statements combined language compiler product said method comprising the steps of:
- (a) parsing said plurality of code statements into a combined representation of said plurality of code statements;
- (b) splitting said combined representation 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 set of compiled statements into a single executable program.
In a combined language compiler product for a computer system, a method of compiling a code comprising a plurality of code statements using said combined language compiler product, said method comprising the steps of:
- (a) parsing said plurality of code statements into a combined representation of said plurality of code statements;
- (b) splitting said combined code 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.
3-38. (canceled)
In a combined language compiler product for a computer system, a method of compiling of a hybrid source code using said combined language compiler product, said method comprising the steps of:
- (a) parsing a plurality of statements of said hybrid source code;
- (b) splitting said hybrid source code into a plurality of sets of code statements, each said set comprising a plurality of code statements compilable by one said compiler;
- (c) compiling each said set of code statements;
- and
- (d) merging each said compiled code statement into a single executable program.
In a combined language compiler product for a computer system, a method of compiling of a hybrid source code using said combined language compiler product, said method comprising the steps of:
- (a) parsing said plurality of code statements of said hybrid source code into a combined representation;
- (b) splitting said combined representation into a plurality of sets of hybrid code statements;
- (c) using at least two compilers to compile said plurality of sets of hybrid 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.
41-44. (canceled)
A combined 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 combined code 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 hybrid language product for a computer system, comprising:
- (a) a syntax of a hybrid language defining a plurality of acceptable code statements;
- (b) a splitter configured to split said hybrid 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 hybrid 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 language compiler, said combined language compiler configured to compile a plurality of code statements;
- said computer-usable apparatus including computer-readable code instructions configured to cause said combined language compiler to execute the steps of:
- (a) defining a plurality of acceptable statements of a combined code;
- (b) splitting said combined 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 data signal embodied in a carrier wave comprising:
- (a) a first merged source code segment comprising a plurality of code statements;
- wherein each said code statement is configured to be compiled independently;
- (b) a split source code segment comprising a plurality of sets of code statements;
- (c) a combined compiled source code segment comprising a plurality of compiled source code segments;
- and
- (d) a second merged source code segment comprising a plurality of compiled code statements as a single executable program.
(canceled)
A computer-readable code embedded in a storage medium, wherein said computer readable code is manipulated by a combined language compiler, said combined language compiler configured to compile a plurality of code statements written using a plurality of computer languages, said combined language compiler configured to execute the steps of:
- (a) accepting a combined code comprising a plurality of code statements;
- (b) splitting said combined 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.
(canceled)
In a combined language compiler product for a computer system, a method of compiling hybrid source code using said combined language compiler product, said method comprising the steps of:
- (a) parsing said plurality of code statements of said hybrid source code into a combined representation, wherein said step (a) of parsing said plurality of hybrid code statements further includes the step of using at least two computer languages to write said plurality of hybrid source code statements;
- (b) splitting said combined representation into a plurality of sets of hybrid code statements;
- (c) using at least two compilers to compile said plurality of sets of hybrid 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.
In a combined language compiler product for a computer system, a method of compiling hybrid source code using said combined language compiler product, said method comprising the steps of:
- (a) parsing said plurality of code statements of said hybrid source code into a combined representation;
- (b) splitting said combined representation into a plurality of sets of hybrid code statements, wherein said step (b) of splitting said hybrid code into said plurality of sets of code statements further comprises the steps of:
- splitting said hybrid code at a specification level into two different trial codes, wherein said first trial code includes a first plurality of code modules including a first plurality of internal module computations, a first plurality of inter-module communications, and a first level of reactivity, and wherein said second trial code includes a second plurality of code modules including a second plurality of internal module computations, a second plurality of inter-module communications, and a second level of reactivity;
- comparing said first trial code with said second trial code;
- assessing the difference in compilation time and the difference in execution time between said two trial codes;
- and
- selecting an optimum trial code;
- (c) using at least two compilers to compile said plurality of sets of hybrid 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.
In a combined language compiler product for a computer system, a method of compiling hybrid source code using said combined language compiler product, said method comprising the steps of:
- (a) parsing said plurality of code statements of said hybrid source code into a combined representation;
- (b) splitting said combined representation into a plurality of sets of hybrid code statements, wherein said step (b) of splitting said hybrid code further includes the step of splitting said hybrid code at a compilation level into a plurality of reactive code statements and a plurality of non-reactive code statements;
- (c) using at least two compilers to compile said plurality of sets of hybrid 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.
In a combined language compiler product for a computer system, a method of compiling hybrid source code using said combined language compiler product, said method comprising the steps of:
- (a) parsing said plurality of code statements of said hybrid source code into a combined representation;
- (b) splitting said combined representation into a plurality of sets of hybrid code statements, wherein said step (b) of splitting said hybrid code further includes the step of splitting said hybrid code based on an implementation method;
- (c) using at least two compilers to compile said plurality of sets of hybrid 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.
Dependencies are inferred from the claim text.