The Ott tool for writing definitions of programming languages and calculi
Browse cluster: OCaml Systems and Utilities →Ott is a tool for writing formal definitions of programming languages and calculi. It accepts concise, readable ASCII notation describing language syntax and semantics, then generates output in multiple formats: LaTeX for typeset definitions, and formal specifications for Coq, HOL, Isabelle/HOL, Lem, and OCaml, along with experimental support for Menhir parsers. The tool can also function as a filter to parse and replace embedded language terms in LaTeX or proof assistant source files. Ott is implemented in OCaml and depends on the ocamlgraph library. The project has been principally developed by Peter Sewell, Francesco Zappa Nardelli, and Scott Owens at the University of Cambridge and INRIA, with contributions from numerous researchers. The distribution includes substantial examples, most notably a formal specification of OCaml's core language by Scott Owens and colleagues.