Patent EP0464525A2 successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0464525A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Architecture neutral distribution format (ANDF) producer using a compiler intermediate language

Assignee: HP Inc
•
Filing: 1991-06-21
•
Granted: —
•
Expires: 2011-06-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer software compiler system and method for distributing a machine independent computer program, created on a native computer platform, to heterogeneous target computer platforms. The system comprises a producer which receives the machine independent computer program as input and which generates compiler intermediate representation. The system operates in a machine independent manner according to an HPcode-Plus compiler intermediate language. Thus, the compiler intermediate representation is machine independent and represents an architecture neutral distribution format (ANDF). The compiler intermediate representation, being architecture neutral, can be distributed to heterogeneous target computer platforms. At the heterogeneous target computer platforms, the compiler intermediate representation can be translated in a machine dependent manner into object code representations such that the object code representations are architecture dependent, or machine dependent, on the target computer platforms.

Inventors

  • 👤 Karl William Pettis
  • 👤 Paul Chan
  • 👤 Manoj Dadoo
  • 👤 Vatsa Santhanan

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-06 17:13
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/443; G06F8/47

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 211 words
A producer system (208), adapted for use with a machine independent computer program (202) that may use machine dependent standard header files, for translating the machine independent computer program (202) to a compiler intermediate representation (212) in a machine independent manner according to a compiler intermediate language, such that said compiler intermediate representation (212) comprises compiler intermediate instructions from said compiler intermediate language, and such that said compiler intermediate representation (212) is architecture neutral and represents an architecture neutral distribution format, said producer system (208) comprising: (1) means (208) for assigning unique key words to standard type identifiers, object-like macro identifiers, and/or function-like macro identifiers which are defined in the machine dependent standard header files and referenced by the machine independent computer program (202); (2) means (208) for translating instructions having said standard type identifiers, object-like macro identifiers, and/or function-like macro identifiers in the machine independent computer program (202) to said compiler intermediate instructions by using said unique key words to refer to said standard type identifiers, object-like macro identifiers, and/or function-like macro identifiers, such that machine dependent decisions concerning said standard type identifiers, object-like macro identifiers, and/or function-like macro identifiers are not made by said producer system (208), said compiler intermediate instructions forming part of said compiler intermediate representation (212).
Claim 2
Dependent Claim 144 words
The producer system (208) of Claim 1, further comprising: (1) means (208) for defining and declaring data types, functions, and/or variables contained in the machine independent computer program (202) by using said compiler intermediate instructions for creating and assigning unique symbolic identifiers to said data types, said functions, and/or said variables, said compiler intermediate instructions forming part of said compiler intermediate representation (212); (2) means (208) for translating instructions having said data types, said functions, and/or said variables in the machine independent computer program (202) to said compiler intermediate instructions by using said unique symbolic identifiers to refer to said data types, said functions, and/or said variables such that machine dependent decisions concerning said instructions having said data types, said functions, and/or said variables are not made by said producer system (208), said compiler intermediate instructions forming part of said compiler intermediate representation (212).
Claim 3
Dependent Claim 124 words
The producer system (208) of Claims 1 or 2, further comprising: (1) means (208) for translating constant expressions contained in the machine independent computer program (202) to said compiler intermediate instructions without evaluating said constant expressions, said compiler intermediate instructions forming part of said compiler intermediate representation (212); (2) means (208) for assigning unique symbolic identifiers to said constant expressions; and (3) means (208) for translating instructions having said constant expressions in the machine independent computer program (202) to said compiler intermediate instructions by using said unique symbolic identifiers to refer to said constant expressions, such that machine dependent decisions concerning said constant expressions are not made by said producer system (202), said compiler intermediate instructions forming part of said compiler intermediate representation (212).
Claim 4
Dependent Claim 95 words
The producer system (208) of Claim 1, wherein said producer system (208) further comprises a conversion means for conversion of operands in expressions in the machine independent computer program (202) from a first data type to a second data type by inserting said compiler intermediate instructions into said compiler intermediate representation (212), said first data type and said second data type being from a set of data types, said conversion means operating in a machine independent manner such that machine dependent decisions concerning said conversion of operands are not made by said producer system (208).
Claim 5
Dependent Claim 127 words
The producer system (208) of any one of the preceding claims, further comprising: (1) means (208) for assigning two part sequences to character constants in the machine independent computer program (202), each of said two part sequences comprising: (a) a first part, said first part identifying a character set; and (b) a second part, said second part identifying a character within said character set; (2) means (208) for translating instructions having said character constants in the machine independent computer program (202) to said compiler intermediate instructions by using said two part sequences to refer to said character constants, such that machine dependent decisions concerning said character constants are not made by said producer system (208), said compiler intermediate instructions forming part of said compiler intermediate representation (212).
Claim 6
Dependent Claim 139 words
A producer system (208), adapted for use with a machine independent computer program (202) that may use machine dependent standard header files, said producer system (208) comprising: (1) a preprocessor (1114), which translates the machine independent computer program (202) to an expanded machine independent computer program (1118); and (2) a compiler (1122), which translates said expanded machine independent computer program (1118) to a compiler intermediate representation (1160) of the machine independent computer program (202); wherein said preprocessor (1114) and said compiler (1122) operate in a machine independent manner according to a compiler intermediate language, such that said compiler intermediate representation (1160) comprises instructions from said compiler intermediate language, and such that said expanded machine independent computer program (1118) and said compiler intermediate representation (1160) are machine independent; wherein said compiler intermediate representation (1160) is an architecture neutral distribution format.
Claim 7
Dependent Claim 143 words
The producer system (208) of Claim 6, wherein said preprocessor (1114) comprises: (1) means (1114) for locating standard type identifiers, object-like macro identifiers, and function-like macro identifiers which are defined in the machine dependent standard header files and referenced by the machine independent computer program (202); (2) means for accessing first ANDF header files (1106), said first ANDF header files (1106) being related to the machine dependent standard header files and comprising object-like macro definitions and function-like macro definitions which assign unique key words to said standard type identifiers, object-like macro identifiers, and function-like macro identifiers contained in the machine dependent standard header files; and (3) means (1114) for substituting said unique key words for said standard type identifiers, object-like macro identifiers, and function-like macro identifiers contained in the machine independent computer program (202) to produce said expanded machine independent computer program (1118).
Claim 8
Dependent Claim 79 words
The producer system (208) of Claim 7, wherein said compiler (1122) comprises means (1122) for translating instructions containing said unique key words in said expanded machine independent computer program (1118) to said instructions by using unique symbolic identifiers having negative values to refer to said unique key words, such that machine dependent decisions concerning said instructions containing said unique key words are not made by said producer system (208), said instructions forming part of said compiler intermediate representation (1160).
Claim 9
Dependent Claim 121 words
The producer system (208) of any one of claims 6-8, wherein said compiler (1122) further comprises means (1122) for creating user-defined data types from predefined data types by using SYM instructions for creating and assigning unique symbolic identifiers to said user-defined data types, said SYM instructions forming part of said compiler intermediate representation (1160) and having a syntax SYM 〈symid〉 〈sym kind〉 〈sym info〉 wherein 〈symid〉 is a field which represents one of said unique symbolic identifiers and which uniquely identifies an item; 〈sym kind〉 is a field which contains symbolic kind information that describes said item; 〈sym info〉 is a field which contains symbolic information that further describes said item; wherein said item represents one of said user-defined data types.
Claim 10
Dependent Claim 147 words
The producer system (208) of Claim 9, wherein said compiler (1122) further comprises: (1) means (1122) for locating first occurrences of repeated instruction sequences in said expanded machine independent computer program (1118); (2) means (1122) for translating said first occurrences of said repeated instruction sequences to said instructions to produce macros, said macros forming part of said compiler intermediate representation (1160); (3) means (1122) for Creating and assigning unique symbolic identifiers to said macros by using said SYM instructions, said SYM instructions forming part of said compiler intermediate representation (1160), wherein said item refers to said macros, and wherein said 〈sym kind〉 field has a value KIND_MACRO; (4) means (1122) for locating all occurrences of said repeated instruction sequences; and (5) means (1122) for translating said occurrences of said repeated instruction sequences to said HPcode-Plus instructions by using said unique symbolic identifiers to refer to said macros.
Claim 11
Dependent Claim 74 words
The producer system (208) of Claim 10, wherein said compiler (1122) further comprises means (1122) for creating and assigning unique symbolic identifiers to constants contained in said expanded machine independent computer program (1118) by using said SYM instructions, said SYM instructions forming part of said compiler intermediate representation (1160), wherein said item refers to said constants, and wherein said 〈sym kind〉 field can have at least values KIND_MEMBER, KIND_OFFSETOF, KIND_SIZEOF, KIND_MAXOF, KIND_MINOF, and KIND_CONST.
Claim 12
Dependent Claim 157 words
The producer system (208) of Claim 11, wherein said compiler (1122)further comprises: (1) means (1122) to define and declare functions and variables contained in said expanded machine independent computer program (1118) by using said SYM instructions for creating unique symbolic identifiers and assigning said unique symbolic identifiers to said functions and said variables, said SYM instructions forming part of said compiler intermediate representation (1160), wherein said item refers to said functions and said variables, and wherein said 〈sym kind〉 field can have at least values KIND_FUNCTION, KIND_FUNC_DCL, KIND_FPARAM, KIND_SVAR, and KIND_DVAR; (2) means (1122) for translating instructions having said functions and said variables in said expanded machine independent computer program (1118) to said instructions by using said unique symbolic identifiers to refer to said functions and said variables such that machine dependent decisions concerning said functions and said variables are not made by said producer system (208), said instructions forming part of said compiler intermediate representation (1160).
Claim 13
Dependent Claim 166 words
The producer system (208) of Claim 12, wherein said compiler (1122) further comprises: (1) means (1122) for translating constant expressions, which are not guaranteed to fold without overflow, contained in said expanded machine independent computer program (1118) to said HPcode-Plus instructions without evaluating said constant expressions, said instructions forming part of said compiler intermediate representation (1160); (2) means (1122) for creating and assigning unique symbolic identifiers to said constant expressions by using said SYM instructions, said SYM instructions forming part of said compiler intermediate representation (1160), wherein said item refers to one of said constant expressions, and wherein said 〈sym kind〉 field has a value KIND_NEW_CONST; (3) means (1122) for translating instructions having said constant expressions in said expanded machine independent computer program (1118) to said instructions by using said unique symbolic identifiers to refer to said constant expressions, such that machine dependent decisions concerning said constant expressions are not made by said producer system (208), said instructions forming part of said compiler intermediate representation (1160).
Claim 14
Dependent Claim 155 words
The producer system (208) of any one of claims 6-13, wherein said compiler (1122) further comprises: (1) means (1122) for identifying constant values with indeterminate data types in said expanded machine independent computer program (1118); (2) means (1122) for storing information in said compiler intermediate representation (1118) regarding said constant values with indeterminate data types by using CLDC instructions such that machine dependent decisions concerning said constant values with indeterminate data types are not made by said producer system (208), said CLDC instructions forming part of said compiler intermediate representation (1160) and having a syntax CLDC 〈flag〉 〈constant value〉 wherein 〈flag〉 = a flag which indicates a data type set, said data type set comprising one or more data types, said one or more data types being organized sequentially from a first data type to a last data type; 〈constant value〉 = a field which equals one of said constant values with indeterminate data types.
Claim 15
Dependent Claim 65 words
The producer system (208) of any one of claims 6-14, further adapted for use with an ANSI-C computer programming language, wherein said compiler (1120) further comprises means (1120) to perform integral promotions specific to the ANSI-C computer programming language upon operands contained in said expanded machine independent computer program (1118) by using ICVT instructions, said ICVT instructions forming part of said compiler intermediate representation (1160).
Claim 16
Dependent Claim 112 words
The producer system (208) of any one of claims 6-15, wherein said compiler (1122) further comprises means (1122) for preparing two operands for processing by arithmetic operations by using an ACVT instruction to convert said two operands to a common data type, said two operands and said arithmetic operations being contained in said expanded machine independent computer program (1118), said ACVT instruction forming part of said compiler intermediate representation (1160), said ACVT instruction converting said two operands to said common data type by using conversion rules that are specific to the ANSI-C computer programming language, such that machine dependent decisions concerning said two operands are not made by said producer system (208).
Claim 17
Dependent Claim 129 words
The producer system (208) of any one of claims 6-16, wherein said compiler (1122) further comprises: (1) means (1122) for assigning two part sequences to character constants in said expanded machine independent computer program (1118), each of said two part sequences comprising: (a) a first part, said first part identifying a character set; and (b) a second part, said second part identifying said character constant within said character set; (2) means (1122) for translating instructions having said character constants in said expanded machine independent computer program (1118) to said instructions by using said two part sequences to refer to said character constants, such that machine dependent decisions concerning said character constants are not made by said producer system (208), said instructions forming part of said compiler intermediate representation (1160).
Claim 18
Dependent Claim 104 words
The producer system (208) of any one of claims 6-17, wherein said producer system (208) further comprises: (1) a High-Level Optimizer (1144), which optimizes said compiler intermediate representation (1160)to produce an optimized compiler intermediate representation (1160); (2) an Archiver/Linker (1154), which archives or links said optimized compiler intermediate representation (1160) with other compiler intermediate representations (1150) to produce an Archive file (1158) or a Linked code file (1170); wherein said High-Level Optimizer (1144) and said Archiver/Linker (1154) operate in a machine independent manner such that said optimized compiler intermediate representation (1160), said Archive file (1158), and said Linked code file (1170) are machine independent.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag