Conference on Domain-Specific Languages, 1997
Lightweight Languages as Software Engineering Tools
Diomidis Spinellis
University of the Aegean
V. Guruprasad
IBM T.J. Watson Research Center
Abstract
Software subsystems can often be
designed and implemented in
a clear, succinct, and aesthetically pleasing way
using specialized linguistic formalisms.
In cases
where such a formalism is incompatible with
the principal language of implementation,
we have devised specialized lightweight languages.
Such cases include
the use of repeated program code or data,
the specification of complex constants,
the support of a complicated development process,
the implementation of systems
not directly supported by the development environment,
multiparadigm programming,
the encapsulation of system level design,
and
other complex programming situations.
We describe applications and subsystems
that were implemented using this approach
in the areas of
user interface specification,
software development process support,
text processing, and
language implementation.
Finally,
we analyze a number of implementation techniques for
lightweight languages based on
the merciless exploitation of existing
language processors and tools, and
the careful choice of their syntax and semantics.
- View the full text of this paper in
HTML form and
PDF form.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|