A Model Compiler transforms an executable UML system model into code that can be compiled by normal language compilers into a fully functional system. Several stages or components of the PLASMA Model Compiler translation process may be identified:
- PROTON - Diagram harvester
- Metamodel - Standard form database model
- Architecture - Software virtual machine
- PARSEC - Template engine code generator
- Templates - Architecture transformation
- PULSAR - Event level symbolic debugger
The PLASMA Model Compiler is based on the Shlaer-Mellor translation process for automatic code generation.
The Translation Engine
PARSEC generates source code by executing plain text code template files which specify relational queries on the Metamodel describing the application under development.
At initialisation, PARSEC reads configuration data that describes the tables implementing the Metamodel to be queried. It then proceeds to read the actual relational tables of the Metamodel that are held as a number of text files. Source code files are then generated by executing plain text template files that specify relational queries on the Metamodel.
Development work on PARSEC started during 1994 and it was largely complete by mid 1995. However, since that time it has been improved and refined to meet the requirements of a developing and increasingly sophisticated translation process.
A description of an Archetype Language was given in a paper by Steve Mellor which appeared in the Journal of Object Oriented Programming (JOOP) in October 1994. However, PARSEC was actually created before this article was published.
Beta Development Version
PLASMA*PARSEC is still under development and testing. However, you can download PARSEC, several templates and Metadata which together form the Worked Example Software Package from here.
If you download this Beta version software, you are not only getting an exclusive look at a new software product but are also acting as a member of our Beta Test Team. Therefore, please report any bugs, problems, suggestions or any other observations to firstname.lastname@example.org.