Public reporting burden for the collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington VA 22202-4302. Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to a penalty for failing to comply with a collection of information if it does not display a currently valid OMB control number.  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.
Basil is a high-level intermediate language with two use cases: (1) a target language for compilers for high-level languages and (2) a language to develop run-time libraries to be used by generated code REF .
The High-Level Intermediate Language L
Computer Science