Namespace-based Language Modelling
Although few of us design general-purpose programming languages, experienced programmers regularly design Domain-Specific Programming Languages (DSLs) for specialized domains like telecommunications, avionics, graphics, text processing, databases, bioinformatics, gaming, and so on.
Language design should follow a methodology, just like software development does. But language design based on denotational semantics or small-step operational semantics has failed --- the techniques are too formal and artificial.
This talk shows how to use namespaces (dictionaries) as the main semantic concept for designing, explaining, and implementing a programming language. Combined with Strachey's suggestions for application-domain selection and Tennent's language-extension principles, we obtain a semantics methodology that is a practical alternative to formal semantics.
In the talk, the methodology is applied to a simple example to explore the choices available to a DSL designer.