An experiment with denotational semantics

05/04/2019
by   Blikle Andrzej, et al.
0

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 latter is given a denotational semantics as well. The langue is equipped with a strong typing mechanism which covers basic types (numbers, Booleans, etc.), lists, arrays, record and their arbitrary combinations plus SQL-like types: rows, tables and databases. The model of types includes SQL integrity constraints.

READ FULL TEXT
research
07/25/2019

Applying Constraint Logic Programming to SQL Semantic Analysis

This paper proposes the use of Constraint Logic Programming (CLP) to mod...
research
09/11/2022

Formal Semantics of the Kconfig Language

The Kconfig language defines a set of symbols that are assigned a value ...
research
02/10/2019

Antidote SQL: Relaxed When Possible, Strict When Necessary

Geo-replication poses an inherent trade-off between low latency, high av...
research
08/09/2019

Functional programming with lambda-tree syntax

We present the design of a new functional programming language, MLTS, th...
research
03/28/2023

Ideograph: A Language for Expressing and Manipulating Structured Data

We introduce Ideograph, a language for expressing and manipulating struc...
research
02/25/2020

A Type Checker for a Logical Framework with Union and Intersection Types

We present the syntax, semantics, and typing rules of Bull, a prototype ...
research
09/23/2021

Pregroup Grammars, their Syntax and Semantics

Pregroup grammars were developed in 1999 and stayed Lambek's preferred a...

Please sign up or login with your details

Forgot password? Click here to reset