Tomas Petricek, Charles University, Prague
"The objects involved in the processing of a program are divided into classes, each characterized by a mode."
"The principal component of the semantic extension mechanism is a function which permits the definition of new modes."
Language developed by Liskov in mid-1970s
Data definitions in "extensible languages" related to "abstract data types".
[In 1969] there was a conference on Extensible Languages in which almost every famous name in the field attended.
The debate was great and weighty—it was a religious war of unimplemented poorly thought out ideas. (...) But it was all talk—no one had done anything yet.
Influential book published in 1969
Influential book published in 1969
No extensible programming languages in the
table of contents!
The ultimate [objective] is simple and attractive. A single universal programming system [that] includes a base language & a meta-language.
A program [consists of], statements in the meta-language which expand (...) the base
language, [followed by a program in the
derived language.]
Definition mechanisms in extensible languages (1970)
One simple premise underlies the proposals: that a "user" should be capable of modifying the definition of that language, in order to define for himself the particular language which corresponds tb his needs.
Discovery of something new in programming languages has somewhat the same sequence of emotions as falling in love.
Sharp elation followed by euphoria, a feeling of uniqueness, and ultimately the wandering eye (the urge to generalize).
I hope that Extensible Languages will have a
long enough appeal for us in this rapidly changing
world that we can draw from its juices.
Macros and parsing
New look at languages like Simula 67, Algol N
Critical reflections
and failure reports
4 papers on the ECL programming system
Specification of new syntactic forms
Define new information structures
Add operations to new & existing types
Coordination of asynchronous processes
Paraphrase in terms of something known
Orthophrase adding orthogonal feature by "processor surgery"
Metaphrase altering interpretation of an existing thing
There are clearly many at this conference who feel that we are still not there (...). I do not share this opinion. Rather, I think that in a very strong sense "we have arrived".
The belief that "we could make it possible for unsophisticated users to manufacture personalized languages (...) with great ease" was "probably a bit overambitious."
Why extensible languages never caught up?
Tomas Petricek, Charles University, Prague