Language "SIMPLE"
*/ Syntax START : start ::= pgm Semantics start[[_:start]] : =>values
Rule
start[[ Pgm ]] = initialise-binding initialise-storing initialise-giving finalise-failing finalise-throwing run[[ Pgm ]]
[ #1 Lexical Syntax #2 Expressions #3 Statements #4 Declarations #5 Programs #A Disambiguation ]
/* CBS-beta/Languages-beta/SIMPLE/SIMPLE-cbs released 2018-07-07
* Status:
- abstract syntax: complete, derived from [K Overview and SIMPLE Case Study]
- dynamic semantics: complete except for concurrency constructs
- static semantics: not specified
- disambiguation: incomplete
* Tests:
- 53 small programs
- high coverage (to be verified)
* Evolution:
- initial version
* References:
[K Overview and SIMPLE Case Study]:
http://dx.doi.org/10.1016/j.entcs.2014.05.002
* Keywords:
- imperative, illustrative, simple, disambiguation, K framework
* Main contributors:
- Thomas van Binsbergen, Peter Mosses, Neil Sculthorpe
*/
/*
The SIMPLE language is described in the following publication: K Overview and SIMPLE Case Study. Grigore Rosu and Traian Florin Serbanuta. K'11, ENTCS 304, pp 3-56, 2014. http://dx.doi.org/10.1016/j.entcs.2014.05.002 Our CBS definition does not include the concurrency aspects of SIMPLE, as fundamental constructs for concurrency are not yet available in the funcon repository, but all other SIMPLE language constructs are specified. Note that our defintion uses a more precise abstract syntax grammar than presented in the above publication. In particular, rather than allowing arbitrary expressions as variable declarators and l-expressions, we introduce specialised productions. We also make use of "?" (optional) to avoid the need for multiple productions for variations of the same syntactic construct.