Revisiting Elementary Denotational Semantics

07/12/2017
by   Jeremy G. Siek, et al.
0

Operational semantics have been enormously successful, in large part due to its flexibility and simplicity, but they are not compositional. Denotational semantics, on the other hand, are compositional but the lattice-theoretic models are complex and difficult to scale to large languages. However, there are elementary models of the λ-calculus that are much less complex: by Coppo, Dezani-Ciancaglini, and Salle (1979), Engeler (1981), and Plotkin (1993). This paper takes first steps toward answering the question: can elementary models be good for the day-to-day work of language specification, mechanization, and compiler correctness? The elementary models in the literature are simple, but they are not as intuitive as they could be. To remedy this, we create a new model that represents functions literally as finite graphs. Regarding mechanization, we give the first machine-checked proof of soundness and completeness of an elementary model with respect to an operational semantics. Regarding compiler correctness, we define a polyvariant inliner for the call-by-value λ-calculus and prove that its output is contextually equivalent to its input. Toward scaling elementary models to larger languages, we formulate our semantics in a monadic style, give a semantics for System F with general recursion, and mechanize the proof of type soundness.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/31/2023

Game semantics for the constructive μ-calculus

We define game semantics for the constructive μ-calculus and prove its c...
research
08/31/2020

Can determinism and compositionality coexist in RML?

Runtime verification (RV) consists in dynamically verifying that the eve...
research
05/12/2022

Direct Foundations for Compositional Programming

The recently proposed CP language adopts Compositional Programming: a ne...
research
08/14/2020

Can determinism and compositionality coexist in RML? (extended version)

Runtime verification (RV) consists in dynamically verifying that the eve...
research
02/19/2019

Elementary-base cirquent calculus II: Choice quantifiers

Cirquent calculus is a novel proof theory permitting component-sharing b...
research
09/05/2018

An Elementary Proof of a Classical Information-Theoretic Formula

A renowned information-theoretic formula by Shannon expresses the mutual...
research
05/31/2019

Interaction Trees: Representing Recursive and Impure Programs in Coq (Work In Progress)

We present "interaction trees" (ITrees), a general-purpose data structur...

Please sign up or login with your details

Forgot password? Click here to reset