By Martin Churchill, Peter D. Mosses and Paolo Torrini
Abstract:
Semantic specifications of programming languages typically have poor modularity. This hinders reuse of parts of the semantics of one language when specifying a different language – even when the two languages have many constructs in common – and evolution of a language may require major reformulation of its semantics. Such drawbacks have discouraged language developers from using formal semantics to document their designs.
In the PLanCompS project, we have developed a component-based approach to semantics. Here, we explain its modularity aspects, and present an illustrative case study. Our approach provides good modularity, facilitates reuse, and supports co-evolution of languages and their formal semantics. It could be particularly useful in connection with domain-specific languages and language-driven software development.
Presented at Modularity’14, 22–25 April 2014, Lugano, Switzerland.
Note: A revised and extended version of this paper has since been published in Transactions on Aspect-Oriented Software Development XII.
Accompanying material
- Authors’ version of the paper
- Presentation ( condensed version )
- Appendix – Semantic translation to funcons of Caml Light
- Full specification of the Caml Light semantic specification