Clean - An Abstract Imperative Programming Language and its Theory (Q7361948)

From MaRDI portal

!

This is the item page for this Wikibase entity, intended for internal use and editing purposes. Please use the normal view instead:

AFP entry Clean
Language Label Description Also known as
default for all languages
No label defined
    English
    Clean - An Abstract Imperative Programming Language and its Theory
    AFP entry Clean

      Statements

      4 October 2019
      0 references
      Frédéric Tuong
      0 references
      Burkhart Wolff
      0 references
      Clean - An Abstract Imperative Programming Language and its Theory (English)
      0 references
      Clean is based on a simple, abstract execution model for an imperative target language. “Abstract” is understood in contrast to “Concrete Semantics”; alternatively, the term “shallow-style embedding” could be used. It strives for a type-safe notion of program-variables, an incremental construction of the typed state-space, support of incremental verification, and open-world extensibility of new type definitions being intertwined with the program definitions. Clean is based on a “no-frills” state-exception monad with the usual definitions of bind and unit for the compositional glue of state-based computations. Clean offers conditionals and loops supporting C-like control-flow operators such as break and return. The state-space construction is based on the extensible record package. Direct recursion of procedures is supported. Clean’s design strives for extreme simplicity. It is geared towards symbolic execution and proven correct verification tools. The underlying libraries of this package, however, deliberately restrict themselves to the most elementary infrastructure for these tasks. The package is intended to serve as demonstrator semantic backend for Isabelle/C, or for the test-generation techniques.
      0 references