An APL compiler
Presents the results of an investigation into the issues raised by the development of a compiler for APL, a very high level computer programming language. APL presents a number of novel problems for a compiler writer: weak variable typing, run time changes in variable shape, and a host of primitive operations. Through the integration of several recently developed compiler construction techniques, such as data flow analysis, and a novel and space efficient demand driven or lazy evaluation approach to code generation, the author has been able to produce a true compiler for the language while still maintaining the felxibility and ease that are the hallmarks of APL.
8 pages matching _ixorg in this book
Results 1-3 of 8
What people are saying - Write a review
We haven't found any reviews in the usual places.
Why A Compiler?
The Inferencing Pass
Code Generation Overview
10 other sections not shown
Other editions - View all
_ixorg &trsl abstract syntax tree anen APL compiler APL functions APL systems array of rank attributes type axis boolean catenation chapter code to compute compute value constant control flow graph dataflow algorithms dataflow analysis declarations demand driven evaluation described desired element determined at compile dimension dynamic scoping error error("undefined value example execution expansion vector expression tree Figure fset given identifier identity index expression index origin inner product integer interprocedural analysis intraprocedural iota language APL left argument left subexpression loop mpl.ip trsl.value.ip n.value.ip niladic functions offset div offset mod offset vector offset'ft offset'L operation outer product parse tree passed produce rank and shape ravel ordering reduction represent request resl resll.i right argument right side right subexpression scan settrs(&trsl shape is known shape phase statement stepper stmtno struct trs_struct structural functions subexpression at offset subscripted expression talloc(&trsl technique trsl value of subexpression Value Phase