Language "SIMPLE"

#5 Programs

Syntax
  Pgm : pgm ::= decls

Semantics
  run[[ Decls:pgm ]] : =>values
    = scope(
    	collateral(declarations[[ Decls ]]),
    	sequential(
    	  initialisations[[ Decls ]],
    	  apply(assigned(bound("main")), tuple( ))))

Syntax
  Decls : decls ::= decl decls?
Semantics
  declarations[[ _:decls ]] : (=>environments)+
Rule
  declarations[[ Decl ]] = declare[[ Decl ]]
Rule
  declarations[[ Decl Decls ]] = declare[[ Decl ]], declarations[[ Decls ]]

Semantics
  initialisations[[ _:decls ]] : (=>null-type)+
Rule
  initialisations[[ Decl ]] = initialise[[ Decl ]]
Rule
  initialisations[[ Decl Decls ]] =
  	initialise[[ Decl ]], initialisations[[ Decls ]]