Lem : Reusable engineering of real-world semantics
conference contribution
posted on 2014-12-09, 10:33 authored by Dominic P. Mulligan, Kathryn E. Gray, Peter Sewell, Scott Owens, Tom RidgeRecent years have seen remarkable successes in rigorous engineering: using mathematically rigorous semantic models (not just idealised calculi) of real-world processors, programming languages, protocols, and security mechanisms, for testing, proof, analysis, and design. Building these models is challenging, requiring experimentation, dialogue with vendors or standards bodies, and validation; their scale adds engineering issues akin to those of programming to the task of writing clear and usable mathematics. But language and tool support for specification is lacking. Proof assistants can be used but bring their own difficulties, and a model produced in one, perhaps requiring many person-years effort and maintained over an extended period, cannot be used by those familiar with another. We introduce Lem, a language for engineering reusable large-scale semantic models. The Lem design takes inspiration both from functional programming languages and from proof assistants, and Lem definitions are translatable into OCaml for testing, Coq, HOL4, and Isabelle/HOL for proof, and LaTeX and HTML for presentation. This requires a delicate balance of expressiveness, careful library design, and implementation of transformations - akin to compilation, but subject to the constraint of producing usable and human-readable code for each target. Lem's effectiveness is demonstrated by its use in practice. © 2014 ACM.
History
Citation
ICFP '14 Proceedings of the 19th ACM SIGPLAN international conference on Functional programming, 2014, pp. 175-188Author affiliation
/Organisation/COLLEGE OF SCIENCE AND ENGINEERING/Department of Computer ScienceSource
ICFP '14, 19th ACM SIGPLAN international conference on Functional programming, 2014Version
- AM (Accepted Manuscript)
Published in
ICFP '14 Proceedings of the 19th ACM SIGPLAN international conference on Functional programmingPublisher
Association for Computing Machinery (ACM)isbn
978-1-4503-2873-9Copyright date
2014Available date
2014-12-09Publisher DOI
Publisher version
http://dl.acm.org/citation.cfm?doid=2628136.2628143Language
enAdministrator link
Usage metrics
Categories
No categories selectedKeywords
Licence
Exports
RefWorksRefWorks
BibTeXBibTeX
Ref. managerRef. manager
EndnoteEndnote
DataCiteDataCite
NLMNLM
DCDC