Patent GB-1405353-A (GB)
Title: Process and apparatus for automatic generation of mini-computer  instructions for dicrete classes of applications
IPC: G06F9/40
Filed: 1973-07-30
Abstract: 1405353 Data processing BURROUGHS CORP 30 July 1973 [13 Feb 1973] 36146/73 Heading G4A A digital computer is used to generate a program of machine-level instructions for a target computer from a coded representation of the general solution to a class of problems and parameters defining a specific problem and a hardware specification of the target computer. A description of the problem structure for the class of problems considered is input, in an application Specification language ASL, to a compiler which converts the description to a structure code, segmented by activity, and a code generator, which may be a general or special purpose computer, uses the structure code and parameters to generate machine-level instructions for the target computer. Thus specific applications programs for different devices may be generated automatically, e.g. for controlling a particular mini-computer to emulate a desk calculator. Problem Specification.-The ASL comprises two basic categories of words-nouns and verbs and has provision for designating alpha or numeric literals. The nouns include names of activities (to identify a series of statements or instructions), parameter names (containing reference information to another noun or a particular numeric value), condition names and label function names (containing information necessary for addressing functions in the target machine). The verbs indicate an operation with respect to or modified by a noun. The language is such that the various activities required for the particular application and target machine can be represented in a tree structure. The ASL compiler (1) initiates all output files required (activity name, activity library and alpha-literal) and allocates space in core memory for tables; (2) scans ASL statements and generates structure code according to an ASL grammar file. For each new activity named an entry is made in an activity name file, the entry including a pointer to a location in an activity library file where a series of structure code elements (procedures or instructions) that define the activity are stored. The Specification includes details of instruction sequences used by the compiler to add records to, modify records in and generally to maintain the various files. In general terms, the compiler reads the ASL statements one by one from punched cards or magnetic tape and scans the words in each statement to select the appropriate compiler routines. The structure code includes a control identifier indicating the location of instructions in the activity library file, an OP code indicating what actions the code generator has to take to convert the instructions to target machine code, an output file indicator directing the code generator to a specific output file location; a control identifier specifying the location of information items or parameters in files or tables, and the location in the activity name file of the activity name for each group of instructions. Code generator. - Application parameter statements, e.g. specifying functions to be performed in emulating a calculator, are read, e.g. from punched cards and corresponding entries are made in a parameter-condition (Parcon) table after reference to a parameter grammar file. Conversion of the structure code to machine code involves reading activity names from the activity name file, reading the corresponding group of structure code elements from the activity library file, and processing the elements to generate the object code. Activity identifiers are entered in a memory stack preserving the order in which they occur in the tree structure, and the stacked identifiers are used to sequentially access the activity names occurring in each branch of the tree, each name being used to access the activity library file. As each structure code element is accessed, the appropriate instruction sequence for processing the element is selected, based on the OP code of the element. Selection of instruction sequences and modification of various values in the instructions are determined by the contents of the Parcon and other files. Two types of object code record are generated, code format records containing words of object code, and documentation records that contain instructions and error messages for operating the target machine. Both types of records include sort keys for use in sorting records into proper sequence. Finally, a base address table for locating object code instructions within the final object program is formed, relative addresses in the label function table are resolved into absolute addresses and a sort, based on the keys, is performed to load code format and documentation records in correct sequence into respective output files.