| Method and system for split-compiling a hybrid language program -> Monitor Keywords |
|
Method and system for split-compiling a hybrid language programRelated Patent Categories: Data Processing: Software Development, Installation, And Management, Software Program Development Tool (e.g., Integrated Case Tool Or Stand-alone Development Tool), Translation Of Code, Compiling CodeMethod and system for split-compiling a hybrid language program description/claimsThe Patent Description & Claims data below is from USPTO Patent Application 20060225054, Method and system for split-compiling a hybrid language program. Brief Patent Description - Full Patent Description - Patent Application Claims CROSS REFERENCE TO RELATED APPLICATION [0001] This application is a continuation of co-pending U.S. application Ser. No. 09/390,141, filed on Sep. 3, 1999, priority of which is claimed under 35 U.S.C. .sctn.120, the contents of which are incorporated herein by reference. BACKGROUND OF THE INVENTION [0002] 1. Field of the Invention [0003] The present invention relates generally to the field of software compilation, and more particularly to the field of mixed language software compilation toward software implementation, hardware implementation, or both. [0004] 2. Description of the Related Art [0005] In the software programming field, there are numerous programming languages optimized for different purposes. For example, the object-oriented programming languages (OOPLs) are the natural choice for implementation of an Object-Oriented Design because they support the object notions of classes, inheritance, information hiding, and dynamic binding. Currently available OOPLs include C++, Objective C, Smalltalk, Eiffel, Common LISP Object System (CLOS), Object Pascal, Java, and Ada 95. [0006] Object-oriented (OO) applications can be written in either conventional languages or OOPLs, but they are much easier to write in languages especially designed for OO programming. OO languages can be divided into two categories, hybrid languages and pure OO languages. Hybrid languages are based on some non-OO model that has been enhanced with OO concepts. C++ (a superset of non-OO language C), Ada 95, and CLOS (an object-enhanced version of LISP) are hybrid languages. Pure OO languages are based entirely on OO principles; Smalltalk, Java, and Simula are pure OO languages. [0007] Another available computer language type is a distributed programming language that supports Internet-based applications. Several new languages now available, such as Java, Phantom, and Python, attempt to provide Internet- or Web-optimized solutions. All of these languages provide some degree of network support. However, equally important is that all of the distributed programming languages that support Web applications also support general programming tasks, which constitute the bulk of Web-related programming. Distributed programming languages also qualify as object-oriented, since they enable sub-typing, polymorphism, inheritance and dynamic binding. [0008] Also, distributed programming languages are interpreted, which makes them largely platform independent and allows the user to migrate programs and objects more easily from location to location. Phantom, and Python are pure distributed programming languages but can be difficult to compile. Java shares the strengths of the other distributed language, but can be more efficiently compiled. Thus, Java is a hybrid distributed programming language because it is based on a non-Web model that has been enhanced with Web concepts. [0009] Another category of programs are hardware description languages (HDL) that specify design behavior. Some hardware description languages are intended for a particular type of behavior. For example, Esterel is a language designed for control-oriented behavior, while Lustre and Signal are optimized for data-oriented behavior. It should be noted that, while Esterel is an outstanding language for hardware description, it was originally written for pure software applications and continues to be used as such. As with other language types, hardware description languages may be hybridized to enhance functionality. [0010] One candidate for producing a hybrid language for hardware descriptive purposes is the language C. While C alone can be inefficient for pure hardware design work, since the design flow might lack certain key tools and capabilities, C is widely used and the overhead saved in choosing a widely-known language can be considerable. [0011] Thus, in the available art, there are several published languages for specification of system-level mixed hardware/software designs, which are commonly conceived as interacting, concurrent modules. The available art languages provide mechanisms for specifying both the computation of each module and the communication and coordination between them. The available art languages can be summarized as follows. [0012] 1. A host language is used for describing the computation of each process and a coordination language is used for describing concurrency and interprocess communication. For reference, please, see "Design of embedded systems: formal models, validation, and synthesis", by S. Edwards, L. Lavagno, E. A. Lee, and A. Sangiovanni-Vincentelli, published in the Proceedings of the IEEE, 85(3), 366-390, Mar. 1997, included herein by reference. A disadvantage of this approach is that the burden of deciding what is coordination and what is computation is left to the user and is fixed, a priori, by the language choice even though the definition is often quite blurred. An advantage is that the compilation algorithms for computation and coordination can be made very efficient. [0013] 2. A single language is defined with a single compilation algorithm. A problem with this approach is that it is difficult to best exploit all the potential interplay between concurrency, control and sequencing with a single general-purpose compiler. Traditional software compilation focuses mostly on extracting local parallelism and executing local optimizations, while concurrency compilation focuses mostly on global scheduling. [0014] There is therefore a need in the art for a language, and an associated compiling technique, that combines the advantages of a plurality of existing languages to provide system level designers with a tool powerful enough to support efficient specification of control and data, globally optimized compilation to hardware and software, and that includes semantics and well-developed accompanying compilers and development tool sites familiar enough to the installed base of users to enable rapid, widespread adoption. SUMMARY OF THE INVENTION [0015] To address the shortcomings of the available art, the present invention provides, a combined language-compiler configured to compile a program comprising a plurality of code statements written using a plurality of computer languages. [0016] A first advantage of the invention is a method of compiling a software program comprising a plurality of code statements using a combined language-compiler, said method comprising the steps of (a) parsing said plurality of code statements into a combined representation of the 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. [0017] A further advantage of the present invention is a method of compiling a code comprising a plurality of code statements using said combined language-compiler, the method comprising the steps of (a) parsing said plurality of code statements into a combined representation of the plurality of code statements; (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. In the alternative, step (a) of parsing said plurality of code statements into said combined representation may further include the step of using at least two computer languages to write said plurality of source code statements. [0018] A still further advantage of the present invention is, in an E/C (Esterel-C) language-compiler, said combined E/C language-compiler comprising an Esterel computer language, a C 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, 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. [0019] Yet another advantage of the present invention is the provision, in a combined E/C (Esterel-C) language-compiler, said combined E/C language-compiler comprising an Esterel computer language, an Esterel compiler, and a C compiler, of a method of compiling of an E/C source code using said combined E/C compiler, said method comprising the steps of (a) parsing said plurality of code statements of said E/C source code into a combined E/C representation of said plurality of code statements; (b) splitting said combined E/C 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. [0020] Yet another advantage of the present invention is the provision, in a combined language-compiler, of a method of compiling of a hybrid source code using said combined language-compiler, 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. [0021] Still another advantage of the present invention is the provision, in a combined language-compiler, of a method of compiling of a hybrid source code using said combined compiler, said method comprising the steps of (a) parsing said plurality of code statements of said hybrid source code into a combined hybrid representation of said plurality of code statements; (b) splitting said combined hybrid 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. Continue reading about Method and system for split-compiling a hybrid language program... Full patent description for Method and system for split-compiling a hybrid language program Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Method and system for split-compiling a hybrid language program patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Method and system for split-compiling a hybrid language program or other areas of interest. ### Previous Patent Application: Method for handling preprocessing in source code transformation Next Patent Application: Programming language improvements Industry Class: Data processing: software development, installation, and management ### FreshPatents.com Support Thank you for viewing the Method and system for split-compiling a hybrid language program patent info. IP-related news and info Results in 0.09993 seconds Other interesting Feshpatents.com categories: Tyco , Unilever , Warner-lambert , 3m 174 |
* Protect your Inventions * US Patent Office filing
PATENT INFO |
|