This is the abstract of the demonstration given at OOPSLA'95, Conference on Object-Oriented Programming, Systems, Languages, and Applications, Austin, Texas, U.S.A., October 14-19, 1995.

ApplFLab: Generality and Domain-specificity in Application Building

Koen De Hondt,Patrick Steyaert
Programming Technology Lab
Computer Science Department
Vrije Universiteit Brussel
ApplFLab (Application Framework Laboratory) is an application development environment that bridges the gap between generality and domain-specificity in application building. Its kernel is a set of general purpose application building tools for instantiating a generic application framework. ApplFLab is unique in its facilities for specialising itself towards domain-specific application builders. A framework developer creates a domain-specific application builder by specialising ApplFLab's underlying application framework and creating customised, domain-specific tools for building applications with his framework. The strength of ApplFLab is that one of ApplFLab's own specialisations --i.e. the application builder for application builders-- makes tool creation as easy as possible.

The demonstration will show how easily a domain-specific application builder is constructed. We will consider a teleshopping framework (the domain model). With the standard application builder, applications are built by dragging visual components from a palette onto a canvas, editing their (visual) properties and connecting them to the domain model. The connection to the domain model is achieved mainly by programming. Herein lies the key difference with a domain-specific application builder. Application building with a domain-specific application builder follows the same scheme as before, except that much less, or no coding is required; simply connecting visual teleshopping components is sufficient. This will also be demonstrated. The technical part of the demonstration shows how the specialisation tools of ApplFLab are used to build domain-specific palettes, teleshopping components and properties editors. We will illustrate the difference between "normal" use of ApplFLab whereby domain-specific components are created by composing standard or other domain-specific components, and "reflective" use of ApplFLab whereby domain-specific components (i.e. meta-level components) are used to edit the properties of other components (i.e. base-level components).