Construct Your Own Favorite Programming Language
Source: Utrecht University
As long as we have computers, we have to have programming languages. It started from FORTRAN in 1958 with which a whole genealogy of language designs can be constructed and one may wonder why computer scientists are not making up their mind to define the definite language which unifies all good ideas thought up thus far. This paper discusses how one can create their own programming language. It starts out by observing that a new language in principle does not add anything to what we can express already (e.g., using plain machine code). It may only, albeit dramatically, improve the ease with which programmers can express themselves. Sometimes this new expressiveness is so huge that one can speak of a new paradigm - examples of languages introducing such new paradigms are Prolog (logic programming), Simula67 (object-oriented Programming), Lisp (functional programming), ML (type inferencing) and SASL (lazy evaluation). Most Domain Specific Programming Languages (DSLs) still look like a normal programming language, i.e. they require a linear, character-based representation of their programs. People working with model-based development are however used to more graphical representations (such as UML), and thus the question arises whether one can provide more domain-specific representations. A final observation is that with the gradual merging of type checking, program verification, providing editing feedback and code generation, the need for incrementally evaluated systems grows. With this, analysing large artefacts over and over again becomes infeasible.