Check out the new USENIX Web site.

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.