Lambda the Ultimate

inactiveTopic Beyond Objects: Generative Programming
started 9/18/2002; 1:14:33 AM - last post 9/18/2002; 1:14:33 AM
jon fernquest - Beyond Objects: Generative Programming  blueArrow
9/18/2002; 1:14:33 AM (reads: 1351, responses: 0)
Beyond Objects: Generative Programming
Although abstract ideas or math in papers is always more satisfying when accompanied by source code (in Haskell for instance), loose definitions with the broadest possible applicability across programming paradigms are also sometimes useful. For instance: to free oneself from the tyranny of ideas imposed by mainstream object-oriented programming languages like C++ or Java. This paper provides some useful broad definitions:

..humans organize knowledge into sets of interrelated concepts ... concepts can be modeled as objects quite adequately...objects can be organized into inheritance and containment hierarchies which capture the relationships between the corresponding concepts ... A domain is defined as an area of knowledge or activity characterized by a set of concepts and terminology understood by practitioners in that area [UML1.0], i.e. an area of expertise. ... 1. A concern is a domain used as a decomposition criterion for a system or another domain with that concern. Concerns can be used during analysis, design, implementation, and refactoring. 2. An aspect is a partial specification of a concept or a set of concepts with respect to a concern. ... The concerns used in decomposition should yield aspects which are loosely coupled, (nearly) orthogonal, and highly declarative.

At the end of the paper a table compares different domain engineering technologies. (Beyond Objects: Generative Programming, Czarnecki, Eisenecker, and Steyaert)

Posted to Software-Eng by jon fernquest on 9/18/02; 1:22:04 AM