Monday, June 3, 2013

Code transformation experiments aimed at extending the syntax supported by the enclosure interpreter

During the past week Adam, Kevin and Jan have been working on extending the syntax supported by Acumen's enclosure semantics. The overall approach is to do this by transforming the source program into a form compatible with the enclosure interpreter. Two approaches have been pursued. The first is based on Acumen to Acumen code transformation, whereby incompatible constructs are translated into compatible ones. The other approach first computes the control flow graph of the source program and then performs reductions on this graph in order to arrive at a hybrid automaton corresponding to the source program. Initial manual experiments indicate that both approaches are able to handle simple models (expressed using a restricted but larger subset of the full Acumen syntax than is currently supported) but it remains to be shown how general they are. An illustration of the graph transformation based approach is included below, showing the reduction steps for a simple single-mode bouncing ball model: