Extensibility in programming language design
- Author(s): Standish, Thomas A.
- et al.
This paper assesses the value of including extensibility as a feature of a programming language design. Extensibility means permitting language users to define new language features. Starting with a base language and using various definition facilities an extensible language user can create new notations, new data structures, new operations, and, sometimes, new regimes of control. Given enough insight and craftsmanship, the extensible language user can often create language extensions that are well-adapted to given intended application areas and are useful for writing concise, clear algorithms that are free from contamination with low-level detail. However, experience has revealed that this approach is not as promising as was first hoped. The paper explores the various types of extensibility that have been introduced in the extensible language movement, and it attempts to assess the practical limitations on the use of extensibility. It concludes that extensibility has many more dimensions than was first expected and that extensibility is not the revolutionary idea that some once hoped it would be.