Abstract
A macro language is proposed. It enables macro processing in high-level programming languages. Macro definitions in this language refer to the grammars of the respective programming languages. These macros introduce new constructs in programming languages. It is described how to automatically generate macro processors from macro definitions and programming language grammars written in the lex-yacc format. Examples of extending high-level languages by means of macros are given.
- [1] Aho, A.V., Sethi, R., Ullman, J.D., Compilers. Principles, Techniques, and Tools, Addison-Wesley Publ. Co., 1986. Google ScholarDigital Library
- [2] American National Standard for Information Systems, Programming Language C, ANSI X3.159-1989, American National Standard Institute, Inc., NY 1990. Google ScholarDigital Library
- [3] Barendregt, H.P., The Lambda Calculus: Its Syntax and Semantics, Elsevier, 1981.Google Scholar
- [4] Barnes, J.G.P., Programming in Ada plus Language Reference Manual, Addison-Wesley Publ. Co., 1991. Google ScholarDigital Library
- [5] Boyle, J.M., Abstract Programming and Program Transformations - An Approach to Reusing Programs, Software Reusability, v. 1, Addison-Wesley Publ. Co., 1989, 361-413. Google ScholarDigital Library
- [6] Charniak, E., Riesbeck, C.K., McDermott, D.V., Meehan, J.R., Artificial Intelligence Programming, Lawrence Erlbaum Associates, 1987. Google ScholarDigital Library
- [7] Donnelly, C., Stallman, R., Bison Reference Manual, Free Software Foundation, 1988.Google Scholar
- [8] Ellis, M., Stroustrup, B., The Annotated C++ Reference Manual, Addison-Wesley Publ. Co., 1990. Google ScholarDigital Library
- [9] Grosch, J., Generators for High-Speed Front Ends, Lecture Notes in Computer Science, v. 371, 1989, 81-92. Google ScholarDigital Library
- [10] High C Language Extensions Manual, MetaWare Inc., 1990.Google Scholar
- [11] Jensen, K., Wirth, N., Pascal User Manual and Report, Springer-Verlag, 1991. Google ScholarDigital Library
- [12] Johnson, S.C., Yacc - Yet Another Compiler-Compiler, AT&T Bell Laboratories, 1975.Google Scholar
- [13] Kuuluvainen, I., Vanttinen, M., Koskinen, P., The Action-State Diagram: A Compact Finite State Machine Representation for User Interfaces and Small Embedded Reactive Systems, IEEE Transactions on Consumer Electronics, v. 37, 1991, #3, 651-658.Google ScholarDigital Library
- [14] Lesk, M.E., Schmidt, E., Lex - A Lexical Analyzer Generator, AT&T Bell Laboratories, 1975.Google Scholar
- [15] Mason, T., Brown, D., lex & yacc, O'Reilly & Associates, 1990. Google ScholarDigital Library
- [16] MetaTool Specification-Driven-Tool Builder, User Manual, AT&T, 1990.Google Scholar
- [17] Mischel, J., Dusting off COBOL, Computer Language, v. 8, 1991, #11, 41-46.Google Scholar
- [18] Park, J.C.H., y+: A Yacc Preprocessor for Certain Semantic Actions, SIGPLAN Notices, v. 23 (1988), #6, 97- 106. Google ScholarDigital Library
- [19] Paxson, V., Flex - Manual Pages, 1990.Google Scholar
- [20] Steele, G., Common Lisp: The Language, Digital Press, 1984. Google ScholarDigital Library
- [21] UNIX Programmer's Manual, AT&T Bell Laboratories, 1983.Google Scholar
Index Terms
- Macro processing in high-level languages
Recommendations
Part-compilation in high-level languages
AbstractMany programming languages include the ability to divide large programs into smaller segments, which are compiled separately. When a small modification is made to a large program, then the affected segment only has to be re-compiled.
This paper ...
Programming languages for non-numeric processing—2: An introduction to the COGENT programming system
ACM '65: Proceedings of the 1965 20th national conferenceTHE COGENT (COmpiler and GENeralized Translator) programming system is a compiler whose input language is designed to describe symbolic or linguistic manipulation algorithms. Although the system is intended primarily for use as a compiler compiler, it ...
Comments