imported>Andy |
|
Line 1: |
Line 1: |
− | === The Code Generation Demonstrator Feature ===
| |
− | First release: 30 November 2010:
| |
| | | |
− | available from: https://sourceforge.net/projects/codegenerationd/files/
| |
− |
| |
− | The zip file contains a windows XP bundle, and a Windows V7 bundle. Alternatively, if you wish to build using an update-site, this is also included in the zip file, along with some notes on installation. However, note that the demonstrator tool is only compatible with Rodin 1.3.
| |
− |
| |
− | A simple shared buffer example is provided. This will form the basis of a tutorial (which is work in progress). The WindowsBundles directory contains a Rodin 1.3.1 platform with the Code Generation plug-ins, together with a patch plug-in. The patch plug-in is required to correct an inconsistency in the org.eventb.emf.persistence plug-in. For the bundles, simply extract the appropriate zip file into a directory and run the rodin.exe. The plug-ins are pre-installed so no further configuration should be necessary. When using the update-site the example projects, and the project forming the basis of a simple tutorial, are provided in the accompanying zip file. These should be imported manually.
| |
− |
| |
− | Mac users - no bundled version available at present, but use the update site in the 'advanced' folder.
| |
− |
| |
− | '''A step-by-step tutorial will be available soon!!'''
| |
− |
| |
− | === About the Initial Release ===
| |
− | The Code Generation (CG) Feature in the initial release is a demonstration tool; a proof of concept, rather than a prototype. The tool has no static checker and, therefore, there will be a heavy reliance on docs and dialogue to facilitate exploration of the tools and concepts.
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | The SVN repository for code generation resides here:
| |
− |
| |
− | svn+ssh://svn.ecs.soton.ac.uk/projects/deploy-exploratory/trunk/CodeGeneration
| |
− |
| |
− | The SVN repository for tagged builds is here:
| |
− |
| |
− | svn+ssh://svn.ecs.soton.ac.uk/projects/deploy-exploratory/tags/CodeGeneration
| |
− |
| |
− | === Status ===
| |
− | * Demonstrator plug-in,
| |
− | ** Rodin 1.3.1 version is ready for release.
| |
− | ** Integration Testing under way.
| |
− |
| |
− | * The Code Generation feature 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 (IL1).
| |
− | ** 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.
| |
− |
| |
− | * For the next release, our target is
| |
− | ** Rodin 2.0 compatibility.
| |
− | ** Introduction of sensed variables.
| |
− | ** Event grouping in shared machines mapping to branching statements in protected objects.
| |
− | ** Accommodation of duplicate event names in tasking developments.
| |
− |
| |
− |
| |
− |
| |
− | === 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 [[http://wiki.event-b.org/images/Translation.pdf]]
| |