← Back to Patent Explorer
US4667290A Expired / Lapsed US ⏱️ 0.0 years remaining

Compilers using a universal intermediate language

Assignee: PHILON Inc A DE CORP
•
Filing: 1984-09-10
•
Granted: 1987-05-19
•
Expires: 2004-09-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for directing a digital data processor to translate a program written in a source language into a sequence of machine executable instructions. The method consists of the translation of the source code into an intermediate language, followed by generation of object code for the target machine, the method being generally applicable to known source languages and to digital data processors.

Inventors

  • 👤 Clinton Goss
  • 👤 Richard Rosenberg
  • 👤 Peter Whyte

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 00:54
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/47

Claims Analysis

Total Claims: 45
Claim 1
Independent Claim 61 words
A method for directing a digital data processor to convert high level language source code data into corresponding machine language instruction data, comprising: converting the source into data in the form of an intermediate language compatible with a plurality of high level languages and digital data processor target machines, and then converting the intermediate language data into machine language instruction data.
Claim 2
Independent Claim 61 words
A method for directing a digital data processor to convert high level language source code data into corresponding machine language instruction data, comprising: converting the source into data in the form of an intermediate language compatible with a plurality of high level languages and digital data processor target machines, and then converting the intermediate language data into machine language instruction data.
Claim 3
Dependent Claim 27 words
The method of claim 1 and further including optimizing the intermediate language data whereby a single optimizing program may be used with many different high level languages.
Claim 4
Dependent Claim 19 words
The method according to claim 1 wherein said high level languages are of the strongly typed static language category.
Claim 5
Dependent Claim 21 words
The method according to claim 3 wherein said plurality of high level languages includes at least one of COBOL and RPG.
Claim 6
Dependent Claim 15 words
The method according to claim 3 wherein said intermediate language is of a quad type.
Claim 7
Dependent Claim 46 words
The method according to claim 1 and further including carrying out interactive debugging on a compiled program when it is in the form of intermediate language data, whereby the same symbolic debugging program can be used with said plurality of high level languages and target machines.
Claim 8
Dependent Claim 62 words
The method according to claim 1 and further including the step of linking the machine language instruction data, corresponding to programs written in different high level languages, through said intermediate language whereby because of commonality of said intermediate language, programs within any of said plurality of high level languages can call programs written in any of said plurality of high level languages.
Claim 9
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is COBOL.
Claim 10
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is FORTRAN.
Claim 11
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is BASIC.
Claim 12
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is PASCAL.
Claim 13
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is RPG.
Claim 14
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is PL/I.
Claim 15
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is ADA.
Claim 16
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is C.
Claim 17
Dependent Claim 13 words
The method according to claim 1 wherein said high level language is MODULA-2.
Claim 18
Independent Claim 134 words
A method, using a digital data processor for converting high level language source code data into machine language instruction data, the method comprising the steps of (a) identifying tokens in the source code; (b) parsing the tokens according to the language of the source code; (c) converting representations of the parsed source into a sequence of statements in an intermediate language, the intermediate language being capable of embodying any high level language and interfacing with any digital data processor; (d) creating a stored table of all of the objects and their attributes in the representation of the source; (e) allocating memory space according to information contained in the table; (f) generating assembly language instructions corresponding to the intermediate language and table representations of the source; (g) translating the assembly language instructions into machine language.
Claim 19
Independent Claim 134 words
A method, using a digital data processor for converting high level language source code data into machine language instruction data, the method comprising the steps of (a) identifying tokens in the source code; (b) parsing the tokens according to the language of the source code; (c) converting representations of the parsed source into a sequence of statements in an intermediate language, the intermediate language being capable of embodying any high level language and interfacing with any digital data processor; (d) creating a stored table of all of the objects and their attributes in the representation of the source; (e) allocating memory space according to information contained in the table; (f) generating assembly language instructions corresponding to the intermediate language and table representations of the source; (g) translating the assembly language instructions into machine language.
Claim 20
Independent Claim 42 words
A method for converting a program written in a high level language into a corresponding sequence of machine language instructions comprising converting high level language source code data into an intermediate language data and a symbol table to generate machine language instructions.
Claim 21
Independent Claim 42 words
A method for converting a program written in a high level language into a corresponding sequence of machine language instructions comprising converting high level language source code data into an intermediate language data and a symbol table to generate machine language instructions.
Claim 22
Dependent Claim 27 words
The method of claim 18 wherein the same intermediate language may be used for programs writtein in BASIC, C, COBOL, FORTRAN, MODULA-2, PASCAL, RPG, ADA and PL/I.
Claim 23
Dependent Claim 26 words
The method of claim 19 wherein said intermediate language code is compatible with machine language for any of a plurality of digital data processor target machines.
Claim 24
Dependent Claim 99 words
A digital data processor including means for inputting data, means for storing data, means for executing machine language instructions, and means for outputting data, wherein the improvement comprises: a. means for, first, converting high level language source code data input through the input means into intermediate language data, stored in the storage means and compatible with a plurality of digital data processors and with a plurality of high level languages; and b. means for, second, converting said intermediate language data into machine language instruction data executable by said executing means so as to complete compilation of said source code.
Claim 25
Dependent Claim 99 words
A digital data processor including means for inputting data, means for storing data, means for executing machine language instructions, and means for outputting data, wherein the improvement comprises: a. means for, first, converting high level language source code data input through the input means into intermediate language data, stored in the storage means and compatible with a plurality of digital data processors and with a plurality of high level languages; and b. means for, second, converting said intermediate language data into machine language instruction data executable by said executing means so as to complete compilation of said source code.
Claim 26
Dependent Claim 30 words
The processor of claim 21 and further including means for optimizing said intermediate language data whereby a single optimizing means may be used with a plurality of high level languages.
Claim 27
Dependent Claim 23 words
The processor of claim 21 wherein said first converting means is particularly adapted to high level languages of the strongly typed static category.
Claim 28
Dependent Claim 25 words
The processor of claim 21 wherein said second converting means is particularly adapted to at least one of the high level languages RPG and COBOL.
Claim 29
Dependent Claim 23 words
The processor of claim 23 wherein said first and second converting means are particularly adapted to intermediate language data of the quad type.
Claim 30
Dependent Claim 40 words
The processor of claim 21 and further including means for carrying on interactive debugging of said intermediate language data, so as to allow use of the same debugging means for a plurality of high level languages and digital data processors.
Claim 31
Dependent Claim 55 words
The processor of claim 21 and further including means for linking machine language instruction data so as to allow high level language source code data written in any of a plurality of high level languages to include calls to high level language source code data written in any of said plurality of high level languages.
Claim 32
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in COBOL.
Claim 33
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in FORTRAN.
Claim 34
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in BASIC.
Claim 35
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in PASCAL.
Claim 36
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in RPG.
Claim 37
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in PL/I.
Claim 38
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in ADA.
Claim 39
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in C.
Claim 40
Dependent Claim 23 words
The apparatus of claim 21 wherein said first converting means is particularly adapted to high level language source code data written in MODULA-2.
Claim 41
Dependent Claim 137 words
The processor of claim 22 wherein said first converting means further includes: a. means for identifying tokens in said high level language source code data; b. means for parsing tokens according to a high level language grammar of said high level language source code to output representations of parsed source code, said representations including objects; c. means for creating a stored table of all said objects and their attributes which appear in the output of said parsing means; and d. means for allocating memory space according to said stored table; and wherein said second converting means further includes: e. means for generating assembly assembly language instruction data corresponding to said intermediate language data, said stored table, and said memory space allocation; and f. means for translating said assembly language instruction data into said machine language instruction data.
Claim 42
Dependent Claim 103 words
A digital data processor including means for inputting data, means for storing data, means for executing machine language instructions, and means for outputting data, wherein the improvement comprises: a. means for, first, converting high level language source code data input through the input means into intermediate language data and a symbol table, stored in the storage means and compatible with a plurality of digital data processors and with a plurality of high level languages; and b. means for, second, converting said intermediate language data into machine language instruction data executable by said executing means so as to complete compilation of said source code.
Claim 43
Dependent Claim 103 words
A digital data processor including means for inputting data, means for storing data, means for executing machine language instructions, and means for outputting data, wherein the improvement comprises: a. means for, first, converting high level language source code data input through the input means into intermediate language data and a symbol table, stored in the storage means and compatible with a plurality of digital data processors and with a plurality of high level languages; and b. means for, second, converting said intermediate language data into machine language instruction data executable by said executing means so as to complete compilation of said source code.
Claim 44
Dependent Claim 31 words
The processor of claim 38 wherein a common intermediate language may be used for high level source code data written in BASIC, C, COBOL, FORTRAN, MODULA-2, PASCAL, RPG, ADA, and PL/I.
Claim 45
Dependent Claim 24 words
The processor of claim 39 wherein said common intermediate language is compatible with machine languages for any of a plurality of digital data processors.

References Cited (Backward Citations)

US4398249A Cited
US4309756A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1990-05-18 1990-11-17 1991-05-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1994-05-18 1994-11-17 1995-05-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1998-05-18 1998-11-17 1999-05-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag