scispace - formally typeset
Open AccessBook

Semantics Engineering with PLT Redex

Reads0
Chats0
TLDR
This text is the first comprehensive presentation of reduction semantics in one volume and introduces the first reliable and easy-to-use tool set for such forms of semantics, and presents a framework for the formulation of language models as PLT Redex models.
Abstract
This text is the first comprehensive presentation of reduction semantics in one volume; it also introduces the first reliable and easy-to-use tool set for such forms of semantics. Software engineers have long known that automatic tool support is critical for rapid prototyping and modeling, and this book is addressed to the working semantics engineer (graduate student or professional language designer). The book comes with a prototyping tool suite to develop, explore, test, debug, and publish semantic models of programming languages. With PLT Redex, semanticists can formulate models as grammars and reduction models on their computers with the ease of paper and pencil. The text first presents a framework for the formulation of language models, focusing on equational calculi and abstract machines, then introduces PLT Redex, a suite of software tools for expressing these models as PLT Redex models. Finally, experts describe a range of models formulated in Redex. PLT Redex comes with the PLT Scheme implementation, available free at http://www.plt-scheme.org/. Readers can download the software and experiment with Redex as they work their way through the book. For more information (including the preface, a sample syllabus, and a quick introduction to Redex), see the Redex website at http://redex.plt-scheme.org/. Matthias Felleisen, Robert Bruce Findler, and Matthew Flatt are the authors (with Shiram Krishnamurthi) of How to Design Programs: An Introduction to Programming and Computing, also published by the MIT Press.

read more

Citations
More filters
Proceedings ArticleDOI

CakeML: a verified implementation of ML

TL;DR: This work has developed and mechanically verified an ML system called CakeML, which supports a substantial subset of Standard ML, and its formally verified compiler can bootstrap itself: it applies the verified compiler to itself to produce a verified machine-code implementation of the compiler.
Proceedings ArticleDOI

The essence of javascript

TL;DR: This work reduces JavaScript to a core calculus structured as a small-step operational semantics, and explicates the desugaring process that turns JavaScript programs into ones in the core.
Proceedings ArticleDOI

Growing solver-aided languages with rosette

TL;DR: ROSETTE is introduced, a framework for designing solver-aided languages that frees designers from having to compile their languages to constraints and describes three case studies of using ROSETTE to implement languages and synthesizers for web scraping, spatial programming, and superoptimization of bitvector programs.
Proceedings ArticleDOI

Abstracting abstract machines

TL;DR: It is demonstrated that the derivational approach to abstract interpretation that yields novel and transparently sound static analyses when applied to well-established abstract machines scales up uniformly to allow static analysis of realistic language features, including tail calls, conditionals, side effects, exceptions, first-class continuations, and even garbage collection.
Journal ArticleDOI

Run your research: on the effectiveness of lightweight mechanization

TL;DR: Redex is a domain-specific language for semantic models that is embedded in the Racket programming language and comes with tools for the semantics engineering life cycle.