Code Generation Activity: Difference between revisions

From Event-B
Jump to navigationJump to search
imported>Andy
imported>Andy
Line 28: Line 28:


=== Translation Rules ===
=== Translation Rules ===
* Tasking Metamodel to IL1 translation rules [[http://wiki.event-b.org/images/Translation.pdf]]
* Tasking to IL1/Event-B translation rules [[http://wiki.event-b.org/images/Translation.pdf]]
** Ready for experiments [4 May 2010] subject to decomposition into:
*** Algorithmic structures
*** Math. language
*** Versions for Shared/Non-shared data


=== TODO ===
=== TODO ===

Revision as of 13:12, 22 November 2010

Development Repository

The SVN repository for development of the code generation plug-in is here:

svn+ssh://svn.ecs.soton.ac.uk/projects/deploy-exploratory/trunk/CodeGeneration

Other information can be found here:

svn+ssh://svn.ecs.soton.ac.uk/projects/deploy-exploratory/CodeGeneration

Completed/Ongoing Work

  • Demonstration plug-in,
    • ready for deployment.
    • deployment/Integration Testing under way.
  • The plug-in consists of,
    • a tasking Development Generator.
    • a tasking Development Editor (Based on an EMF Tree Editor).
    • a translator, from Tasking Development to Common Language Model.
    • a translator, from the Tasking Development to Event-B model of the implementation.
    • a pretty Printer for the Tasking Development.
    • a pretty Printer for Common Language Model, which generates Ada Source Code.

Metamodels

  • In the plug-in we define several meta-models:
    • CompositeControl: for the control flow (algorithmic) constructs such as branch, loop and sequence etc. These constructs may be used in the specification of either sequential or concurrent systems.
    • Tasking Meta-model: defines the tasking model where we attach tasking specific details, such as task priority, task type. The tasking structures provide the ability to define single tasking or multi-tasking (concurrent) systems. We make use of the composite control plug-in to specify the flow of control.
    • IL1 Meta-model: defines an abstraction of common programming language constructs for use in translations to implementations.

Translation Rules

  • Tasking to IL1/Event-B translation rules [[1]]

TODO

  • Control flow modelling assistant
  • Infrastructure plugin
  • Initial version of:
    • IL1 to Ada backend plugin
  • Small experiments: several small models, reader/writer, heater control, circular buffer