Code Generation Activity: Difference between revisions
From Event-B
Jump to navigationJump to search
imported>Andy |
imported>Andy |
||
Line 23: | Line 23: | ||
=== Metamodels === | === Metamodels === | ||
* In the plug-in we define several meta-models: | * In the plug-in we define several meta-models: | ||
** CompositeControl: for the control flow (algorithmic) constructs such as branch, loop and sequence etc. | ** 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. We make use of the composite control plug-in | ** 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. | ** IL1 Meta-model: defines an abstraction of common programming language constructs for use in translations to implementations. | ||
Revision as of 13:11, 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 Metamodel to IL1 translation rules [[1]]
- Ready for experiments [4 May 2010] subject to decomposition into:
- Algorithmic structures
- Math. language
- Versions for Shared/Non-shared data
- Ready for experiments [4 May 2010] subject to decomposition into:
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