Namespace-based Language Modelling

David Schmidt
University Distinguished Professor
Kansas State University
Thursday, November 4th 2010, 2:00pm
302 Building, Room 105


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.