PPL - an extensible language that failed

  • Authors:
  • Thomas A. Standish

  • Affiliations:
  • Harvard University

  • Venue:
  • Proceedings of the international symposium on Extensible languages
  • Year:
  • 1971

Quantified Score

Hi-index 0.01

Visualization

Abstract

PPL, a conversational extensible language, has been running on the DEC PDP-10 for over a year now. Its applications have included: matrix, vector, polynomial, rational and complex arithmetic; formula, list, string, tree and graph manipulation; significant programs in real-time radar air traffic control simulation and parser generation for context-free languages; and a host of useful conversational tasks in population biology, algebra word problems and optimization of programs. Indeed, the parser for another extensible language(ECL) was generated in PPL(using the De Remer algorithm). PPL is now used by over 450 students in Harvard's introductory programming course. Needless to say, for me and a number of others, PPL is the preferred medium for writing programs and serves as an important and enjoyable tool of thought. To me, PPL is rich, highly versatile and easy to use As is the case for most other languages, PPL evokes both adoring remarks from its proponents and the usual scorn from its detractors. In analogy to the process of stellar evolution, if there is such a thing as a “main sequence” for the life of programming languages, PPL seems well launched on it (though programming languages probably die by fizzling out, not by exploding). Yet PPL is a failure. A few years ago, the vision of extensible languages held by some was that users could rapidly and cheaply extend the base of an extensible language to encompass the data, the operations, the notation and the control natural to many diverse application areas. In short, one was supposed to be able to manufacture personalized languages of reasonable efficiency and substantial utility with great ease just by applying some easily learned extension techniques. It was thought that just as programmers decree the organization of processes (by defining and calling subroutines),they should also decree appropriate organizations for data and for notation, in order to attain more clarity and efficiency.