Abstract
The METAPI system [1,2] can be considered to be a combination of a translator writing system and an extensible language system. The history and usage of the system should make clear how it functions in both roles.
METAPI grew from the need for a language in which a version of Fortran especially suited for interactive use could be implemented. Originally METAPI consisted of a translator writing system based on the Schorre [3] META II system. It was enhanced during implementation of PIFOR*, our Fortran language. It turned out that METAPI could be incorporated on an equal footing with PIFOR in the interactive system. Thus METAPI became a language for extensions since it was dynamically available. A user of the PI system, which incorporates METAPI and PIFOR can extend his language by writing statements in METAPI and can create any new statement type he wants. It is arbitrary whether these new statement types are considered to be a Fortran type or a METAPI type since in the PI system both languages are so closely intertwined.
The PI implementations are examples of the usual applications of a translator writing system. A simple example of an extension would be a shift operator which can be added to PIFOR with a single short line of METAPI code.
- 1 O'Neil, Jr., J. T., "METAPI—An On-Line Interactive Compiler-Compiler", Proceedings of the Fall Joint Computer Conference, 1968.Google Scholar
- 2 O'Neil, Jr., J. T., "An Interactive Language Design System", Thesis, University of Pennsylvania, 1970. Google ScholarDigital Library
- 3 Schorre, D. V., "META-II, A Syntax Oriented Compiler Writing Language", Proceedings of the 19th ACM National Conference, p. D1.3. Google ScholarDigital Library
- 4 Irons, E. T., "Experience with an Extensible Language", Comm. ACM, 13, 1, Jan. 1970, pp. 31-40. Google ScholarDigital Library
Index Terms
- METAPI - a language for extensions
Recommendations
METAPI - a language for extensions
Proceedings of the international symposium on Extensible languagesThe METAPI system [1,2] can be considered to be a combination of a translator writing system and an extensible language system. The history and usage of the system should make clear how it functions in both roles.
METAPI grew from the need for a ...
Lightweight soundness for towers of language extensions
PEPM 2017: Proceedings of the 2017 ACM SIGPLAN Workshop on Partial Evaluation and Program ManipulationIt is quite natural to define a software language as an extension of a base language. A compiler builder usually prefers to work on a representation in the base language, while programmers prefer to program in the extended language. As we define a ...
Modular and automated type-soundness verification for language extensions
ICFP '13: Proceedings of the 18th ACM SIGPLAN international conference on Functional programmingLanguage extensions introduce high-level programming constructs that protect programmers from low-level details and repetitive tasks. For such an abstraction barrier to be sustainable, it is important that no errors are reported in terms of generated ...
Comments