Skip to main content
    • Aa
    • Aa
  • Get access
    Check if you have access via personal or institutional login
  • Cited by 13
  • Cited by
    This article has been cited by the following publications. This list is generated based on data provided by CrossRef.

    Eisenberg, Richard A. and Stolarek, Jan 2014. Promoting functions to type families in Haskell. ACM SIGPLAN Notices, Vol. 49, Issue. 12, p. 95.

    Sjöberg, Vilhelm and Weirich, Stephanie 2015. Programming up to Congruence. ACM SIGPLAN Notices, Vol. 50, Issue. 1, p. 369.

    Popescu, Andrei and Roşu, Grigore 2015. Term-generic logic. Theoretical Computer Science, Vol. 577, p. 1.

    Bettini, Lorenzo 2016. Implementing type systems for the IDE with Xsemantics. Journal of Logical and Algebraic Methods in Programming, Vol. 85, Issue. 5, p. 655.

    Weirich, Stephanie 2014. Computing Handbook, Third Edition.

    STANSIFER, PAUL and WAND, MITCHELL 2016. Romeo: A system for more flexible binding-safe programming. Journal of Functional Programming, Vol. 26,

    Sjöberg, Vilhelm and Weirich, Stephanie 2015. Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL '15. p. 369.

    Torrini, Paolo and Schrijvers, Tom 2015. Reasoning about modular datatypes with Mendler induction. Electronic Proceedings in Theoretical Computer Science, Vol. 191, p. 143.

    Stansifer, Paul and Wand, Mitchell 2014. Romeo. ACM SIGPLAN Notices, Vol. 49, Issue. 9, p. 53.

    Stump, Aaron Sjöberg, Vilhelm and Weirich, Stephanie 2010. Termination Casts: A Flexible Approach to Termination with General Recursion. Electronic Proceedings in Theoretical Computer Science, Vol. 43, p. 76.

    Grewe, Sylvia Erdweg, Sebastian Wittmann, Pascal and Mezini, Mira 2015. 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!) - Onward! 2015. p. 137.

    BREITNER, JOACHIM EISENBERG, RICHARD A. PEYTON JONES, SIMON and WEIRICH, STEPHANIE 2016. Safe zero-cost coercions for Haskell. Journal of Functional Programming, Vol. 26,

    Felty, Amy Momigliano, Alberto and Pientka, Brigitte 2015. An Open Challenge Problem Repository for Systems Supporting Binders. Electronic Proceedings in Theoretical Computer Science, Vol. 185, p. 18.


Ott: Effective tool support for the working semanticist

  • DOI:
  • Published online: 26 January 2010

Semantic definitions of full-scale programming languages are rarely given, despite the many potential benefits. Partly this is because the available metalanguages for expressing semantics – usually either for informal mathematics or the formal mathematics of a proof assistant – make it much harder than necessary to work with large definitions. We present a metalanguage specifically designed for this problem, and a tool, Ott, that sanity-checks such definitions and compiles them into proof assistant code for Coq, HOL, and Isabelle/HOL, together with code for production-quality typesetting, and OCaml boilerplate. The main innovations are (1) metalanguage design to make definitions concise, and easy to read and edit; (2) an expressive but intuitive metalanguage for specifying binding structures; and (3) compilation to proof assistant code. This has been tested in substantial case studies, including modular specifications of calculi from the TAPL text, a Lightweight Java with Java JSR 277/294 module system proposals, and a large fragment of OCaml (OCamllight, 310 rules), with mechanised proofs of various soundness results. Our aim with this work is to enable a phase change: making it feasible to work routinely, without heroic effort, with rigorous semantic definitions of realistic languages.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

S. Blazy & X. Leroy (2009) Mechanized semantics for the Clight subset of the C language, J. Autom. Reasoning, 43 (3): 263288.

S. Blazy , Z. Dargaye & X. Leroy (2006) Formal Verification of a C compiler front-end. In FM 2006: Formal Methods, 14th International Symposium on Formal Methods, J. Misra , T. Nipkow & E. Sekerinski (eds), Lecture Notes in Computer Science, vol. 4085. Springer-Verlag, Hamilton, Canada, pp. 460475.

L. Cardelli , S. Martini , J. C. Mitchell & A. Scedrov (1994) An extension of system F with subtyping, Inf. Comput., 109 (1/2): 456.

P.-L. Curien & G. Ghelli (1991) Subtyping + Extensionality: Confluence of beta-eta-top reduction in F<=. In Theoretical Aspects of Computer Software, International Conference, TACS '91, Proceedings, T. Ito & A. R. Meyer (eds), Lecture Notes in Computer Science, vol. 526. Springer, Sendai, Japan, pp. 731749.

C. Fournet , G. Gonthier , J.-J. Lévy , L. Maranget & D. Rémy (1996) A calculus of mobile agents. In CONCUR '96, Concurrency Theory, 7th International Conference, Proceedings, U. Montanari & V. Sassone (eds), Lecture Notes in Computer Science, vol. 1119. Springer, Pisa, pp. 406421.

K. E. Gray (2008) Safe cross-language inheritance. In ECOOP 2008 – Object-Oriented Programming, 22nd European Conference, Proceedings, J. Vitek (ed.), Lecture Notes in Computer Science, vol. 5142. Springer, Paphos, Cyprus, pp. 5275.

E. Gunter & S. Maharaj (1995) Studying the ML module system in HOL. The Computer Journal: Special Issue on Theorem Proving in Higher Order Logics, 38 (2): 142151.

G. Klein & T. Nipkow (2006) A machine-checked model for a Java-like language, virtual machine, and compiler, ACM Trans. Program. Lang. Syst., 28 (4): 619695.

P. Klint (1993) A meta-environment for generating programming environments, ACM Trans. Softw. Eng. Method., 2 (2): 176201.

D. Terrasse (1995) Encoding natural semantics in Coq. In Algebraic Methodology and Software Technology, 4th International Conference, AMAST '95, Proceedings, V. S. Alagar & M. Nivat (eds), Lecture Notes in Computer Science, vol. 936. Springer, Montreal, pp. 230244.

C. Urban (2008) Nominal techniques in Isabelle/HOL, J. Autom. Reasoning, 40 (4): 327356.

V. Vafeiadis & M. Parkinson (2007) A marriage of rely/guarantee and separation logic. In CONCUR 2007 - Concurrency Theory, 18th International Conference, Proceedings, L. Caires & V. T. Vasconcelos (eds), Lecture Notes in Computer Science, vol. 4703. Springer, Lisbon, pp. 256271.

Y. Xiao , A. Sabry & Z. M. Ariola (2001) From syntactic theories to interpreters: Automating the proof of unique decomposition, Higher Order Symbol. Comput., 14 (4): 387409.

M. Zalewski & S. Schupp (2009) A semantic definition of Separate type checking in C++ with concepts. J. Object Technol. 8 (5): 105132.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *