Institute of Computer Languages
Compilers and Languages Group
Talks 2006 - Christian Heinlein
The Compilers and Languages Group invites you to a talk given by
Dr. Christian Heinlein
Universität Ulm, Deutschland
on
Verbesserte prozedurale Programmiersprachen
Date: |
Tuesday, 27. Juni 2006
|
---|
Time: |
16:00 (s.t.) |
---|
Location: |
TU Wien,
Elektrotechnik, Sahulka-Hörsaal EI 3, Gusshausstraße 25-29 (Altbau), 2. Stock
|
---|
Abstract:
Trotz ihrer weiten Verbreitung und allgemein hohen Akzeptanz, leiden
objektorientierte Programmiersprachen (und damit auch ihre Benutzer)
an einigen unangenehmen Problemen, für die es trotz intensiver
Forschungsarbeit über viele Jahre noch keine rundum
zufriedenstellenden Lösungen gibt. Unter anderem sind dies das
"Expression problem", das "Binary method problem", das "Diamond
inheritance problem" und Probleme mit sog. "Crosscutting concerns".
Da viele dieser Probleme in klassischen prozeduralen
Programmiersprachen überhaupt nicht existieren, weil sie mit Vererbung
und dynamischem Binden zusammenhängen, stellt sich die berechtigte
Frage, ob sie nicht einfach durch eine Rückkehr zu diesen Sprachen
überwunden werden können, sofern die genannten Konzepte anderweitig
zur Verfügung gestellt werden können. Und tatsächlich erhält man
durch relativ einfache Verallgemeinerungen der beiden Kernkonzepte
prozeduraler Sprachen - Datenstrukturen und Prozeduren - verbesserte
prozedurale Programmiersprachen, die objektorientierten Sprachen
bzgl. Ausdrucksmächtigkeit und Flexibilität nicht nur ebenbürtig,
sondern sogar überlegen sind. Unter anderem lassen sich für bestehende
Typen nachträglich Obertypen definieren, virtuelle und nicht-virtuelle
Vererbung können problemlos miteinander kombiniert werden, und Objekte
können ihren Typ zur Laufzeit ändern, um beispielsweise eine
Entwicklung von einer Person zu einem Studenten und wieder zurück zu
,,durchleben``. Trotz dieser Flexibilität, die ansonsten bestenfalls
von dynamisch getypten Sprachen angeboten wird, sind verbesserte
prozedurale Sprachen statisch typsicher.
Die angesprochene Verallgemeinerung von Prozeduren deckt neben
"single", "multiple" und "predicate-based method dispatch" auch
"before", "after" und "around advice" aspektorientierter Sprachen ab,
ohne hierfür zusätzliche spezialisierte Sprachmittel einführen zu
müssen. Damit sind verbesserte prozedurale Sprachen insbesondere
geeignet, bestehende Software-Systeme nachträglich nicht-invasiv
(d.h. ohne bestehenden Code zu modifizieren oder neu übersetzen zu
müssen) in ihrer Funktionalität zu erweitern oder zu modifizieren und
damit dem Problem der "unanticipated software evolution" zu begegnen.
About Dr. Christian Heinlein
Dr. Christian Heinlein promovierte 2000 an der Universität Ulm und ist
seitdem dort als Wissenschaftlicher Assistent tätig. Im Rahmen seines
Habilitationsverfahrens beschäftigt er sich mit Konzepten für
imperative Programmiersprachen, insbesondere zur Unterstützung
modularer Erweiterungen bestehender Software-Systeme.