Compiling APL: The Yorktown APL Translator

@article{Driscoll1986CompilingAT,
  title={Compiling APL: The Yorktown APL Translator},
  author={Graham C. Driscoll and Donald L. Orth},
  journal={IBM J. Res. Dev.},
  year={1986},
  volume={30},
  pages={583-593}
}
The Yorktown APL Translator (YAT) permits functions written in APL to be compiled using an existing compiler for part of the process. It also creates tables that allow the APL2 Release 2 interpreter to call the compiled code. The code can also be called from a Fortran main routine. This paper outlines the history of APL compilation, the motivation for producing YAT, the design choices that were made, and the manner of implementation. Sample APL functions and their translations are shown, and… 

Tables from this paper

A translator system for the MATLAB language: Research Articles
TLDR
A whole-program MATLAB to C translation system is presented and details are given on how the system implements and specializes some of the language's built-in primitives.
Program Analysis and Code Generation in an APL/370 Compiler
TLDR
An APL/370 compiler which accepts a subset of APL that Includes most language features and a majority of APl primitive functions is implemented, which removes the performance penalty ofAPL in computationintensive applications.
Program Analysis and Code
TLDR
An APL/370 compiler is implemented which accepts a subset of APL that includes most language features and a majority ofAPL primitive functions, and produces System/370 assembly code directly to be run independently of an interpreter.
A translator system for the MATLAB language
TLDR
A whole‐program MATLAB to C translation system is presented and details are given on how the system implements and specializes some of the language's built‐in primitives.
Accelerating APL programs with SAC
TLDR
Investigation of how S AC relates to A PL in terms of expressiveness and run-time behavior shows that speedups due to compilation vary between 2 and 500 for three representative benchmark programs.
APL—compilation-where does the time come from?
TLDR
It is conjecture that the greatest savings are most often due to the general method of combining primitive APL operations; the system can often eliminate redundant computation and avoid storing and fetching temporary results.
An APL Subset Interpreter for a New Chip Set
TLDR
This thesis describes a microcoded interpreter for a subset of APL that is intended to become the nucleus of a practical APL system, and the final system will require code for the primitives.
An APL ompiler
TLDR
A homogeneous solution has been found by automatically converting APL programs into native C code and completely removes the interpreter using direct calls to the C coded APL primitives.
Execution of automatically parallelized APL programs on RP3
TLDR
An experimental APUC compiler is implemented, which accepts ordinary APL programs and produces C programs and a run-time environment that supports the parallel execution of these C programs on the RP3 computer, a sharedmemory, 64-way MIMD machine built at the IBM Thomas J. Watson Research Center.
Apex: the apl parallel executor
TLDR
Extensions to APL, including rank, cut, and a monadic operand for dyadic reduction, improve compiled and interpreted code performance.
...
1
2
3
...

References

SHOWING 1-10 OF 24 REFERENCES
Translating APL, an empirical study
TLDR
This paper discusses techniques for translating APL to fixed object programs and describes an empirical study of the gains to be made in execution speed of APL programs by such translations compared to direct interpretive execution.
A portable APL translator
TLDR
A portable system for translating APL programs into programs in an assembler language is presented and the implementation of the system has been performed by means of the macro-processor STAGE-2.
Considerations in the design of a compiler for APL
TLDR
This paper presents a selected annotated bibliography of eight papers which address the question of efficient execution of APL programs and presents a number of environment related questions which must be resolved before designing a compiler for APL.
Program Analysis and Code Generation in an APL/370 Compiler
TLDR
An APL/370 compiler which accepts a subset of APL that Includes most language features and a majority of APl primitive functions is implemented, which removes the performance penalty ofAPL in computationintensive applications.
The Dynamic Incremental Compiler of APL\3000
TLDR
APL\3000 employs a Dynamic Incremental Compiler to allow all the flexibility of change afforded by interpretation, but giving the added bonus of faster execution for programs run more than once.
Steps toward an APL compiler
TLDR
The proposed language changes are regarded as improvements because they facilitate deductions about programs by humans and therefore contribute to program readability and reliability and the impact is minimal because compilation of APL would be appropriate mainly for production programs that already have been tested.
An introduction to STSC's APL compiler
TLDR
Although many programs can be written efficiently in APL without iteration, some programs absolutely require iteration and these aspects of APL programming neither make the language easier to use nor enhance programmer productivity.
Compilation and delayed evaluation in APL
TLDR
An algorithm for incorporating the selector operators into the accessors for the leaves of the expression tree and incorporating their effect into the leaf accessors is presented, which will be shown to be an integral part of delayed evaluation for APL.
Extensions to Grid Selector Composition and Compilation in APL
Tentative compilation: A design for an APL compiler
The overall design of an APL compiler which achieves significant savings of temporary storage is outlined. A graphical intermediate representation for APL expressions is described. Transformations
...
1
2
3
...