Software Practices Lab Homepage
Information Fragments
Registration-Based Abstraction
Summarizing Software Artifacts
past projects...
Reading Group
SPL Wiki [local access]

Explicit Context/Elide


Many design concepts can be expressed only indirectly in source code. A single concept often results in a verbose amount of code scattered across the system structure. Explicit programming enables a developer to introduce newvocabulary into the source to capture a design concept explicitly. A vocabulary item introduced by a developer encapsulates the implementation details associated with a design concept, reducing the scattering of code needed to express the concept. A vocabulary item appears in the code where the conceptis needed; uses of the vocabulary may thus remain scattered through the code.

Explicit Programming provides a useful engineering point balancing modularization and separation in (at least) two cases. First, when a design concept is tightly coupled with particular constructs in a program, separation is unlikely to lead to any benefits of reusability or comprehensibility. Second,concepts that emerge as a system evolves can be encapsulated and recorded, paving the way for later separation when conditions warrant the separation.

We have implemented a tool, called ELIDE (Extension Language for Iterative Design Encoding) to support Explicit Programming in Java.

For more information visit our main Elide page


  • Avi Bryant
  • Andrew Catton
  • Kris De Volder
  • Gail Murphy


Avi Bryant, Andrew Catton, Kris De Volder and Gail C. Murphy. "Explicit Programming", AOSD 2002.


Demonstration at OOPSLA 2001