Ulf's Home-Page of Programming Language Design

Analysis Requirements & Principles architecture:
building blocks: Features surface:
Defining PLs Language
foundational safety: type systems, etc. flexibilized: polymorphism, etc.
Disclaimer: These pages started 07 Nov 97 as a loose collection of things I came across, and are permanently under construction.
This home-page is about the design and development of programming languages, and not about programming language tools (e.g. parsers, compilers, interpreters).

Note that programming languages are in fact languages: (1) They use symbols unrelated to their meaning. (2) The order of the symbols is not arbitrary. (3) The meaning of symbols depends on the context (overloading is an extreme case). (4) They have morphemes (c.f. Jabberwocky).
C.f. the ethymology of PL symbols and keywords.

If you know further references, please don't hesitate to tell me (Ulf Schünemann), likewise if you have any suggestions.


The organization of subjects is inspired by the software development process.

Abbreviations: ADT = abstract data type; HOF = Higher order functions; LC = lambda-calculus; LNCS = Lecture Notes of Computer Science (series from Springer); OB = object-based; OO = object-oriented; OTOH = on the other hand; PL = programming language; SW = software.

Other Links

Literature and Links

The Programming Language Research Community

Teaching About Programming Languages

The Teaching About Programming Languages Project

An (incomplete) list of Courses in Principles and Implementation of Programming Languages. I just want to add:

Constructing Language Processors

Only a very few links:
Analysis Requirements & Principles Paradigms Abstractions Structure Features foundational safety flexible typing Syntactics Defining PLs Language List
Ulf Schünemann 071197, 011099