Whole Platform 1.0.0 Build 20140807.1325

An open source technology for engineering the production of software
Based on the idea that programming is an activity concerning the development of domain languages, the Whole Platform provides an Eclipse-based Language Workbench for developing new languages, manipulating them using domain notations and transforming them using a generative model driven approach.

In using the Whole Platform, business knowledge can be expressed with domain specific languages and made independent of the technologies used to realize the products.

The introduction of domain notations and languages enables the problem domain experts to work together with the programming experts for the development of the software products: the latter write the generators and the former write the business knowledge.

The Whole Platform enforces an economy of scale. The fact that the generators are coupled to the domain languages and not to a particular business knowledge expressed with them, means that the effort of the software development is not spent in a singular product but rather in building a software product line.

The languages bundled with the Whole Platform include:
· modeling languages;
· query and transformation languages;
· data integration languages for grammars, XSD, RDB and Java libraries;
· and popular languages such as Java and XML.

NOTE: Whole Platform is released and licensed under the terms of the GNU Lesser General Public License.

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 a code on top of the Java frameworks. The code generated feels hand written because of the extensive use of the well-known Design Patterns.
  • Metaprogramming:
  • Native support. Each Whole language can be used at a template level and, if it has an executable semantics, it can also be used at a 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 flavors: 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:
August 10th, 2014, 5:49 GMT
file size:
235.1 MB
license type:
developed by:
Riccardo Solmi
operating system(s):
Mac OS X
binary format:
Universal Binary
Home \ Developer Tools
Whole Platform
Download Button

In a hurry? Add it to your Download Basket!

user rating



Rate it!
What's New in version 1.0.0 Build 20090422.1345
  • General
  • Improved test suites of Queries and XSD languages.
  • IDE
read full changelog

Add your review!