Fachbereich Informatik
Deutsch
English

Fachbereich Informatik



Language-Oriented Programming (SS 2012)

  

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 most popular nowadays - not only due to OMG's "Model-Driven Architecture (MDA)" initiative or Microsoft's "Software factories" approach. 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.

Also refer to the module description in the module handbook.

Lecture

Lectures and lab sessions will be interwoven. The lecture is structured as follows (current and older lectures for download):

  1. Introduction
  2. Lisp crash course
  3. Functional programming
  4. Advanced object-oriented programming
  5. Business information systems
  6. Database queries
  7. Logic programming
  8. Logic programming applications
  9. Workflows
  10. Implementing DSLs: Macros
  11. Questions and Answers

 Video Recordings of lecture: https://lernen.h-da.de/enrol/instances.php?id=2271

No lecture / lab on Fri. April 27th (CERC conference)
Lecture / lab on Fri. May 25th
 

Laboratory

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, we will be implementing an prototype application in the insurance domain as a case study.

Please, bring your own notebook if you own one. You need h_da WLAN access.

Assignments:

  1. Introduction
  2. Lisp crash course
  3. Functional programming
  4. Advanced object-oriented programming
  5. Business information systems
  6. Database queries
  7. Logic programming
  8. Insurance rules
  9. Workflows
  10. Implementing a DSL
  11. Questions and answers

 

Tasks in insurance project.

Infrastructure, Material

 

I recommend the following references:

 

Oral examination

The oral exminations will be on Mo. July 2nd and Fr. July 13th. -> Schedule

letzte Aktualisierung: 07.09.2012 - Verantwortung: Prof. Dr. Bernhard Humm
Newsbox