Sprach-Design und Compilerbau für Multiparadigmen-Sprachen

Programmiersprachen werden oft an Hand von Programmierparadigmen klassifiziert, beispielsweise in imperative, funktionale, logische, constraint-basierte, objektorientierte und aspektorientierte Sprachen. Dabei charakterisiert ein Paradigma Stil, Konzepte und Methoden einer Sprache zur Beschreibung von Zuständen und Abläufen und zur Lösung von Problemen. Auf diese Weise unterstützen verschiedene Paradigmen die Programmierung von Applikationen unterschiedlicher Anwendungsgebiete. Zum Beispiel erlauben objektorientierte Sprachen dem Programmierer sein Programm als Kollektion interagierender Objekte zu betrachten, Datenbank-Programmiersprachen ermöglichen die Verwaltung und strukturierte Handhabung großer Datenmengen und logische sowie constraint-basierte Programmiersprachen eignen sich besonders, um Such- und Optimierungsprobleme zu beschreiben.

Da reale Anwendungen oft Aspekte verschiedener solcher Bereiche in sich vereinen, ist eine Kombination von Konzepten verschiedener Paradigmen in Multiparadigmen- Programmiersprachen vorteilhaft und erwünscht. Beispiele multiparadigmatischer Sprachen sind Ada zur verteilten, nebenläufigen, imperativen und objektorientierten Programmierung, Common Lisp in Verbindung mit dem Common Lisp Object System zur funktionalen, imperativen und objektorientierten Programmierung, zahlreiche Constraint-Bibliotheken, wie z.B. Choco und Gecode, zur Integration von Constraints in Sprachen anderer Paradigmen und auch die Microsoft-Softwareplattform .NET zur Integration von Anwendungen, die in verschiedenen Programmiersprachen geschrieben wurden.

Im Bereich der Multiparadigmen-Programmierung beschäftigen wir uns mit der Integration von Constraints in deklarative und imperative Sprachen (Multiparadigm Constraint Programming), sowohl in der Theorie als auch mit dem Ziel der Implementierung von Sprachen und entsprechenden Übersetzungswerkzeugen. Beispiele für solche Sprachen sind

  • die funktionallogische Sprache Brooks, die die Integration von verschiedenen Narrowing-Strategien erlaubt,
  • die constraint-imperative Sprache Turtle und die C++-Bibliothek Turtle++ zur constraint-imperativen Programmierung sowie
  • die Sprache CCFL.

Unsere Webseite verwendet Cookies. Diese haben zwei Funktionen: Zum einen sind sie erforderlich für die grundlegende Funktionalität unserer Website. Zum anderen können wir mit Hilfe der Cookies unsere Inhalte für Sie immer weiter verbessern. Hierzu werden pseudonymisierte Daten von Website-Besuchern gesammelt und ausgewertet. Das Einverständnis in die Verwendung der technisch nicht notwendigen Cookies können Sie jeder Zeit wiederrufen. Weitere Informationen erhalten Sie auf unseren Seiten zum Datenschutz.

Erforderlich

Diese Cookies werden für eine reibungslose Funktion unserer Website benötigt.

Statistik

Für den Zweck der Statistik betreiben wir die Plattform Matomo, auf der mittels pseudonymisierter Daten von Websitenutzern der Nutzerfluss analysiert und beurteilt werden kann. Dies gibt uns die Möglichkeit Websiteinhalte zu optimieren.

Name Zweck Ablauf Typ Anbieter
_pk_id Wird verwendet, um ein paar Details über den Benutzer wie die eindeutige Besucher-ID zu speichern. 13 Monate HTML Matomo
_pk_ref Wird benutzt, um die Informationen der Herkunftswebsite des Benutzers zu speichern. 6 Monate HTML Matomo
_pk_ses Kurzzeitiges Cookie, um vorübergehende Daten des Besuchs zu speichern. 30 Minuten HTML Matomo