Language-Oriented Programming

Object-oriented programming, service-oriented computing, aspect-oriented programming - all well-known. But what is this thing called "language-oriented programming"?

A programming paradigm which may be paraphrased as programming with domain-specific languages (DSLs). The idea is simple and as old as high-level programming languages: If you have a complex problem to solve choose the language most adequate for the problem and solve it in this language. If such a language does not yet exist then design and implement a suitable language first before solving the problem.

DSLs are popular - not only due to OMG's "Model-Driven Architecture (MDA)" initiative. But code generation is just a halfway step towards the right direction. In this course we want to go much further: Using a rules language for developing complex rating logic, using a business process language for implementing workflows, and designing new DSLs where existing languages do not suffice.

As the base programming language we will be using Lisp, a language most suitable for implementing DLSs. 

Moodle course: , enrolment key: LOP2022

Also refer to the module description in the module handbook.


Lectures will be video recorded. Lectures and lab sessions will be interwoven.

In the lab sessions, you will gain practical experience in programming in different language styles and DSLs as well as implementing and enhancing DSLs. Throughout the semester, you will be implementing a prototype application in  team using different languages. Please, bring your own notebook. 

There will be oral examinations at the end of the semester. 


Prof. Dr. Bernhard Humm

Schöfferstraße 10
64295 Darmstadt
Büro: D19, 2.10