Whole Platform 1.0.0.v20110512-1609

A technology for engineering the production of software.
Whole Platform
  1 Screenshot
Whole Platform project is a technology for engineering the production of software.

We think that programming is an activity concerning the development of domain languages; so, we provide a platform for developing new languages, manipulating them using domain notations and transforming them to executable code.

Using the Whole Platform, the problem domain experts can work together with the programming experts for the development of software products.

The Whole Platform includes a modeling framework, a generative system, a family of languages, and domain editors integrated with the Eclipse platform.

The languages boundled with the Platform include popular languages such as Java and XML together with some new domain languages used for modeling the structure, the behavior, the persistence and the notations of a language.

Main features:

  • Architecture:
  • Extensible. The architecture provides an API for language extension. You can add/remove languages, notations, persistences and operations.
  • Java frameworks and domain languages. All the expressive power of the Whole Platform is available as standard Java frameworks. Part of this expressive power is also available through a family of domain languages.
  • Generative. The Whole modeling languages generate code on top of the Java frameworks. Together with the extensive use of wellknown Design Patterns in frameworks, the code generated feels hand written.
  • Metaprogramming:
  • Native support. Each Whole language can be used at template level and, if it has an executable semantics, it can be also used at base or host level.
  • Staging support for visitors. Staging support is available for behavior defined using the visitors traversal framework.
  • Mixing template languages. A single artifacts generator can use multiple template languages.
  • Persistence:
  • Stream based persistence. The Persistence syntax of a model is pluggable. Both stream based and model based persistence methods (kits) are supported. The streaming API looks like the building events produced by the Director participant of the Builder Design Pattern.
  • Java code and XML default serializers. The standard persistence kits are based on a streaming API and are available in two flavor: Java and XML. The Java code, when executed, fires a stream of building events.
  • Stream based behavior. Model behavior can be defined directly on top of the streaming API without prior building of the model.
  • Multiple languages support. Programs written using multiple languages are supported even on a single source file.
  • Versioning support. Facilities for versioning metamodels and migrate/import existing models are provided.
  • Editing:
  • GEF based editors for Eclipse. Model based visual editors for Eclipse can be added to a Whole language even using separate plugins.
  • Rich graphical user interfaces. Multiple kinds of notations are supported including grammar layouts for text oriented languages, math layout for mathematical expressions, tree and graph layouts for diagram oriented languages.
  • Multiple notations for a language. For each language multiple notations can be defined and deployed in a modular way. The notation can be changed while editing.
  • Mixing notations. Multiple notations can be mixed even on a single editor view. This feature is especially useful for metaprogramming using concrete syntaxes for template languages.

last updated on:
May 16th, 2011, 6:40 GMT
developed by:
Riccardo Solmi
license type:
LGPL (GNU Lesser General Public License) 
ROOT \ Programming \ Code Generators
Whole Platform
Download Button

In a hurry? Add it to your Download Basket!

user rating 17



Rate it!
What's New in This Release:
  • IDE:
  • Improved "Copy Entity Path" action to use typed feature steps Languages
  • [Actions] Added the features needed to improve the modularization of Actions
  • [Actions] Added the ActionCall construct to programmatically invoke an action
read full changelog

Add your review!