The EEL Compiler
(using Aspect Oriented Programming in mission critical applications)
The Secure Internet Gateway System (SIGS) project at GTE Laboratories (now Verizon) has a component whose purpose is to perform validation of incoming requests from customers. These validations are generally simple, and have the form of: "field name must be always present", "field date must be a valid date type", "if field name is present, then field telephone_no must be also present", "field customer-id must be in the list of valid customer ids", etc. Traditionally, these 'edit rules' are buried in different parts of a COBOL, C, or C++ application, which make maintenance costs extremely high.
The case was made, therefore, to abstract the concept of "editing" and define a very simple, high-level language in which these validation rules can be expressed. In this way, business-analysts can write/debug the rules themselves, at a conceptual level.
In order for these 'high-level rules' to be performed, they need to be translated into some form the computer can understand. Therefore, the Edit Engine was built as a framework where these rules can be 'plugged-in'. In other words, the interfaces of the Rule objects (and all other objects in the system, for that matter), were defined at abstract layers so that specialization by subclassing can take place at a later stage. Still, a compiler from 'Edit Engine Language' to C++ was necessary. This compiler was built using aspect-oriented programming, in its Demeter/Java incarnation.