L is an extensible high-level intermediate language. Its intended application is the construction of compiler back-ends and run-time libraries for high-level programming languages with complex built-in data structures, such as Hilfinger and Colella's FIDIL language. L provides a general-purpose abstract machine, Basil, and machinery for extending it. L has been used to define the abstract machine INFIDEL, described in a separate report. We call L a "high-level" intermediate language for several reasons. First, the target machine of L is a generic processor, or multiprocessor, programmable in C. The "assembly language" used by L is C. Second, L strives to be usable both as an intermediate language and a programming language. The typical extension of L is expected to have a large run-time library, also written in L. Many operators in the extended abstract machine are implemented by function calls to this library.
Usage Statement
Researchers may make free and open use of the UC Berkeley Library’s digitized public domain materials. However, some materials in our online collections may be protected by U.S. copyright law (Title 17, U.S.C.). Use or reproduction of materials protected by copyright beyond that allowed by fair use (Title 17, U.S.C. § 107) requires permission from the copyright owners. The use or reproduction of some materials may also be restricted by terms of University of California gift or purchase agreements, privacy and publicity rights, or trademark law. Responsibility for determining rights status and permissibility of any use or reproduction rests exclusively with the researcher. To learn more or make inquiries, please see our permissions policies (https://www.lib.berkeley.edu/about/permissions-policies).