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.
Here are some key features of "Whole Platform":
· 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.
· 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.
· 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.
· 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.
· Java 2 Standard Edition Runtime Environment
What's New in This Release: [ read full changelog ]
· 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
· [Semantics] Redesigned signature types to be more suitable for defining transformations
· [Semantics] Added LanguageType to represent any type of a given language
· [Semantics] Added TypedVariable to add a formal name to a category in a signature
· [Semantics] Added implicit name semantics for function application and rules
· [Semantics] Added entity pattern semantics to the EntityType
· [Semantics] Rewritten at the domain level and improved content assist
· [Semantics] Added normalizer, interpreter and translator (to Queries)
· [Text] Restored ability to nest Documents in Documents and Rows in Rows
· [Workflows] Added support for iterators as results of the invoke activities Notations
· [Semantics] Improved tabular style for rules and templates
· [Semantics] Improved amalgamation of template constructs
· [Text] Reduced visibility of all but text characters
· [Text] Added boxes for nested Documents and Rows Frameworks
· [Iterators] Added a CollectionIterator to wrap iterables not returning IEntities
· [Imp Language] Added a Java and a Text generator written using Semantics
· Bugs fixed
· [Models] Fixed unique name normalization across entities and features