Browse Prior Art Database

Mechanical Conversion of APL Programs from Interpretive to Direct Execution Mode

IP.com Disclosure Number: IPCOM000080290D
Original Publication Date: 1973-Nov-01
Included in the Prior Art Database: 2005-Feb-27
Document File: 2 page(s) / 49K

Publishing Venue

IBM

Related People

Larson, LE: AUTHOR

Abstract

A combination of memory structures and a compiler is used which allows the conversion of APL programs to basic machine language. The function names must be unique from data names.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 90% of the total text.

Page 1 of 2

Mechanical Conversion of APL Programs from Interpretive to Direct Execution Mode

A combination of memory structures and a compiler is used which allows the conversion of APL programs to basic machine language. The function names must be unique from data names.

A single-pass compiler is used which substitutes user labels with fixed size labels, which are encoded to show the ordinal position of the label in a label table, and have a code to show the type of label involved (user data table, literal, user function, etc.). After encoding the labels, the statement is scanned and an array index developed for each occurrence of user encoded labels and operators (operator, operator; label, operator; label, label; etc.). The index uniquely defines what operation code string should be generated, e.g., function call, data add, data compare, branch.

Once all of the user functions have been converted to code strings, the last step is to produce a "GLOBAL" table which contains pointers to user data areas, user declared functions, compiler support subroutines, and system support subroutines. Then, the next production is a set of "GLOBAL" literals used by the user during the compilation.

The result of this process is a memory structure that permits maintenance of the global/local attributes of user data labels, in the same fashion as defined for APL. The address space layouts for an entire compilation, user function, and user data item are displayed in Fig. 1 Global Address Space...