Summary
SEMANOL is a practical programming system for writing readable formal specifications of the syntax and semantics of programming languages. SEMANOL is based on a theory of semantics which embraces algorithmic (operational) and extensional (input/output) semantics. Specifications for large contemporary languages have been constructed in the formal language, SEMANOL (73), which is a readable high-level notation. A SEMANOL (73) specification can be executed (by an existing interpreter program); when given a program from the specified language, and its input, the execution of the SEMANOL (73) specification produces the program's output. The demonstrated executability of SEMANOL (73) provides important practical advantages. This paper includes discussions of the theory of semantics underlying SEMANOL, the syntax and semantics of the SEMANOL (73) language, the use of the SEMANOL (73) language in the SEMANOL method for describing programming languages, and the contrast between the Vienna definition method (VDL) and SEMANOL.
Similar content being viewed by others
References
Blum, E. K.: Towards a theory of semantics and compilers for programming languages. Computer and System Sciences 3, 248–275 (1969)
Blum, E. K.: Semantics of programming languages. IFIP W.G.2.2 Bulletin, Apr. 1971
Lucas, P., Walk, K. et al.: ULD VERSION II. IBM Reports, 1968; also: On the formal description of PL/I. Annual Review of Automatic Programming 6. New York: Pergamon 1970, p. 105–181
Gilmore, P. C.: Purely functional programs as recursions. IBM Research Report, Oct. 1972
Gilmore, P. C.: A Completeness theorem for programs. IBM Report, Nov. 1972
Landin, P. J.: A correspondence between ALGOL 60 and Church's lambda notation. Comm. ACM 8, 89–101, 158–165 (1965)
deBakker, J. W.: Formal definition of programming languages. Mathematical Centre, Amsterdam, Mathematical Centre Tracts 16, 1967
Boyle, J. M., Grau, A. A.: An algorithmic semantics for ALGOL 60 identifier denotation. J. ACM 17, 361–382 (1970)
Scott, D., Strachey, C.: Towards a mathematical semantics for computer languages. In: Proc. Symposium on Computers and Automata, Brooklyn Polytechnic Institute Microwave Res. Inst. Symposia Series, Vol. 21, 1972
Knuth, D.: Semantics of context-free languages. Mathematical Systems Theory 2, 127–145 (1968)
Floyd, R. W.: Assigning meanings to programs. In: Schwartz, J. T. (ed.): Proc. of Symposium in Applied Mathematics 19, Mathematical Aspects of Computer Science. Providence (R.I.): Am. Math. Soc. 1967, p. 19–32
Manna, Z.: The correctness of programs. J. Computer and System Sciences 3, 119–127 (1969)
Park, D.: Fixpoint induction and proofs of program semantics. In: Meltzer, B. and Michie, D. (eds.): Machine Intelligence, Vol. 5. Edinburgh: University Press 1970, p. 59–78
Hoare, C. A. R.: An axiomatic basis for computer programming. Comm. ACM 12, 576–583 (1969)
Fang, Isu: FOLDS, A declarative formal language definition system. Stanford University, Report CS-72-329, December 1972
Blum, E. K.: The semantics of programming languages, Part I. TRW Technical Report TPR-TR-1, Dec. 1969; Part II: SEMANOL: A programming system for the semantics of programming languages. TRW Systems Group Technical Report TPR-TR-2, Dec. 1970
Blum, E. K.: Formal semantics of programming languages, TRW Report TPRTR-6, Aug. 1973; Formal semantics of programming languages, IRIA Seminar Reviews May, 1974
Knuth, D.: The art of computer programming, Vol. 1. Reading (Mass.): AddisonWesley 1968
Steel, T. B. Jr. (ed.): Formal language description languages. Amsterdam: NorthHolland 1966
Hoare, C. A. R., Wirth, N.: An axiomatic definition of the programming language PASCAL. Acta Informatica 2, 335–355 (1973)
Caraciollo di Forino, A.: Generalized Markov algorithms and automata. In: Caianiello, E. R. (ed.): Automata Theory. New York: Academic Press 1966, p. 115–130
Branquardt, P., Lewi, J., Sintzoff, M., Wodon, P. L.: The composition of semantics in ALGOL 68. Comm. ACM 14, 697–708 (1971)
Neuhold, E. J.: The formal description of programming languages. IBM Systems J. 10, 86–113 (1971)
A standard for language implementation — SEMANOL specification of JOVIL. TRW Systems Report, 26 March 1973
Hopcroft, J, Ullman, J.: Formal languages and their relation to automata. Reading (Mass.): Addison-Wesley 1969
Allen, C. D., Chapman, D. N., Jones, C. B.: A formal definition of ALGOL 60. IBM U.K. Laboratories Report TR 12.105, Aug. 1972
Ollongren, A.: On the Vienna method and notation for the formal definition of programming languages. Centraal Reken-Institut, Rijkuniversitet te Leiden, Technisch Report Jan. 1971
Alber, K., Oliva, P.: Translation of PL/I into abstract syntax. IBM Laboratory Vienna, Tech. Report TR 25.086, June 1968
Bekic, H., Walk, K.: Formalization of storage properties. In: Engeler, E. (ed.): Symposium on Semantics of Algorithmic Languages. Lecture Notes Mathematics 188. Berlin-Heidelberg-New York: Springer 1971, p. 28–61
Walk, K.: Modelling of storage properties of higher-level languages. International J. of Computer and Information Sciences 2, 1–24 (1973)
Lee, J. A. N.: Computer semantics. New York: Van Nostrand Reinhold 1972
Anderson, E. R., Belz, F. C., Blum, E. K.: SEMANOL 73, A metalanguage for programming the semantics of programming languages. TRW Systems Group Report TPR-TR-7, June 14, 1974
Bekic, H., Bjorner, D., Henhapl, W., Jones, C. B., Lucas, P.: A formal definition of a PL/I subset. Parts I and II. IBM Laboratory Vienna, Technical Report TR25.139, Dec. 20, 1974
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Anderson, E.R., Belz, F.C. & Blum, E.K. SEMANOL (73) a metalanguage for programming the semantics of programming languages. Acta Informatica 6, 109–131 (1976). https://doi.org/10.1007/BF00268496
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00268496