Application Languages in Software Production
David A. Ladd
(ladd@research.att.com)
J. Christopher Ramming
(jcr@research.att.com)
AT&T Bell Laboratories
Abstract
PRL5 is an application-oriented language used to maintain the
integrity of databases in the AT&T 5ESSTM telecommunications switch.
PRL5 is unusual in that it was explicitly designed to eliminate a
number of different coding and inspection steps rather than simply to
improve individual productivity. Because PRL5 replaced an earlier
high-level language named PRL, which in turn replaced a combination of
English and C on the same project, it is possible to trace the effect
of several fundamentally different languages on this single project.
The linguistic evolution has been away from languages describing
computation toward a "declarative" high-level language that has been
deliberately restricted to accommodate the requirements of certain
analyses.
Algorithms for checking database constraints are no longer specified
by human developers; instead, code is generated from static
representations of the constraints themselves. These constraint
descriptions can be used in more than one way, whereas a program to
check constraints is useful only for performing that particular
computation. In effect, PRL5 allows the re-use of project information
at a high level, before it has been specialized into particular
implementations.
The effects of this re-use on quality, interval, and cost are
tangible. A key lesson is that application-oriented languages should
not be designed to describe computation, they should be designed to
express useful facts from which one or more computations can be
derived.
Download the full text of this paper in
ASCII (33,381 bytes) and
POSTSCRIPT (121,700 bytes) form.
To Become a USENIX Member, please see our
Membership Information.