Tyrannical Languages Still Preempt System Design
Language implementors frequently make preemptive decisions concerning the exact implementations of language features. These decisions constrain programmers" control over their computations and may tempt them to write involuted code to obtain special (or efficient) effects. In many cases, we can distinguish some properties of a language facility that are essential to the semantics and other properties that are incidental. Recent abstraction techniques emphasize dealing with such distinctions by separating the properties that are necessary to preserve the semantics from the details for which some decisions must be made but many choices are adequate. We suggest here that these abstraction techniques can be applied to the problem of preemptive language decisions by specifying the essential properties of languages facilities in a skeleton base language and defining interfaces that will accept a variety of implementations that differ in other details.