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.
Complang
   About Us
   Research
   Lehre
   Service
      Robotics
      Library
      Talks 2017
      Talks 2016
      Talks 2015
      Talks 2014
      Talks 2013
      Talks 2012
      Talks 2011
      Talks 2010
      Talks 2009
      Talks 2008
      Talks 2007
      Talks 2006
      Talks 2005
      Talks 2004
Sitemap
Contact
Fast Access:
Previous Talk
Next Talk
Faculty of Informatics
Vienna University of Technology
top | HTML 4.01 | last update: 2017-02-13 (Webmaster)