×

An abstract, reusable, and extensible programming language design architecture. (English) Zbl 1397.68023

Tannen, Val (ed.) et al., In search of elegance in the theory and practice of computation. Essays dedicated to Peter Buneman. Berlin: Springer (ISBN 978-3-642-41659-0/pbk; 978-3-642-41660-6/ebook). Lecture Notes in Computer Science 8000, 112-166 (2013).
Summary: There are a few basic computational concepts that are at the core of all programming languages. The exact elements making out such a set of concepts determine (1) the specific nature of the computational services such a language is designed for, (2) for what users it is intended, and (3) on what devices and in what environment it is to be used. It is therefore possible to propose a set of basic building blocks and operations thereon as combination procedures to enable programming software by specifying desired tasks using a tool-box of generic constructs and meta-operations. Syntax specified through LALR(\(k\)) grammar technology can be enhanced with greater recognizing power thanks to a simple augmentation of yacc technology. Upon this basis, a set of implementable formal operational semantics constructs may be simply designed and generated (syntax and semantics) à la carte, by simple combination of its desired features. The work presented here, and the tools derived from it, may be viewed as a tool box for generating language implementations with a desired set of features. It eases the automatic practical generation of programming language pioneered by Peter Landin’s SECD Machine. What is overviewed constitutes a practical computational algebra extending the polymorphically typed \(\lambda\)-Calculus with object/classes and monoid comprehensions. This paper describes a few of the most salient parts of such a system, stressing most specifically any innovative features – formal syntax and semantics. It may be viewed as a high-level tour of a few reusable programming language design techniques prototyped in the form of a set of composable abstract machine constructs and operations.
For the entire collection see [Zbl 1345.68011].

MSC:

68N15 Theory of programming languages
68N18 Functional programming and lambda calculus
68Q55 Semantics in the theory of computing

Software:

YACC; CCUBE; OPL; XQuery
PDFBibTeX XMLCite
Full Text: DOI