
TL;DR
This paper presents a systematic algebraic approach to designing programming languages from their denotational semantics, demonstrated through a layered virtual language with complex type systems and SQL integration.
Contribution
It introduces a novel algebraic framework for language design from denotations to syntax, including a set-theoretic model and a detailed language example with rich types and SQL features.
Findings
Successful construction of a layered language model with denotational semantics
Integration of SQL-like types and constraints into the language model
Demonstration of the approach through a comprehensive language example
Abstract
The paper is devoted to showing how to systematically design a programming language in 'reverse order', i.e. from denotations to syntax. This construction is developed in an algebraic framework consisting of three many-sorted algebras: of denotations, of an abstract syntax and of a concrete syntax. These algebras are constructed in such a way that there is a unique homomorphism from concrete syntax to denotations, which constitutes the denotational semantics of the language. Besides its algebraic framework, the model is set-theoretic, i.e. the denotational domains are just sets, rather than Scott's reflexive domains. The method is illustrated by a layer-by-layer development of a virtual language Lingua: an applicative layer, an imperative layer (with recursive procedures) and an SQL layer where Lingua is regarded as an API (Application Programming Interface) for an SQL engine. The…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
