Zum Hauptinhalt springen

Forschungsschwerpunkt Typsysteme für objektorientierte Programmiersprachen

In objektorientierten Sprachen wie Java, C#, Scala oder C++ ist es zwingend erforderlich, den Typ einer Variablen, die Argument- und Return-Typen einer Methode festzulegen. Es gibt allenfalls lokale Typinferenzen, die es für einen sehr eingeschränkten Bereich erlauben Typen wegzulassen. Demgegenüber haben funktionale Sprachen wie Haskell oder CAML schon seit sehr langer Zeit globale Typinferenzsysteme, die es erlauben, alle Typen wegzulassen, ohne die Eigenschaft statische Typisierung zu verlieren.

Der Forschungsschwerpunkt Typsysteme für objektorientierte Programmiersprachen beschäftigt sich hauptsächlich mit der Programmiersprache Java und dem Versuch, diese um eine globale Typinferenz zu erweitern.

Java-TX

Ein an der Dualen Hochschule entwickelter Typinferenzalgorithmus soll Java Programmieren einfacher und effizienter machen. Er kann für Programmierer*innen automatisch die bestmögliche Typisierung errechnen und einsetzen. Dadurch ist es auch möglich, den Java Quellcode ohne Typangaben zu schreiben.

Die daraus entstandene Programmiersprache Java-TX (TX steht für Type eXtended) erweitert Java um:

  • Globale Typinferenz
  • Echte Funktionstypen, wie sie aus Scala oder C# bekannt sind
  • Allgemeinste Typen
  • Durchschnittstypen

Laufende Projekte

  • Typinferenz für Featherweight Java
  • Generated Generics
  • Parametrisierte Typen im Java-Byte-Code: Ein gemeinsames Projekt mit dem Arbeitsbereich Programmiersprachen des Instituts für Informatik der Universität Freiburg. Im Rahmen der DHBW Innovationsprogramm Forschung wird hier eine kooperative Promotion durchgeführt.
  • Java ohne Wildcards

Abgeschlossene Projekte

  • Entwicklung eines Java-Typunifikationsalgorithmus
  • Integration von echten Funktionstypen in Java

Abgeschlossende Studien- und Masterarbeiten

Veröffentlichungen

  • Andreas Stadelmeier, Martin Plümicke, Peter Thiemann, Global Type Inference for Featherweight Generic Java (PDF), Long version, arxiv  In Proceedings of the 36th European Conference on Object-Oriented Programming (ECOOP 2022), pages 28:1–28:27 (June 6 - July 7, 2022)
  • Fayez Abu Alia and Martin Plümicke: Minimal set of generated generics in Java-TX (PDF)
    In Proceedings of the 20. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'19) , pages 1-14, 23.-25. September 2019 in Baiersbronn (Baden-Württemberg), Deutschland
  • Martin Plümicke: Java-TX: The Language (PDF)
    In Proceedings of the 36. Workshop der GI-Fachgruppe "Programmiersprachen und Rechenkonzepte", pages 11-23 (6. - 8. Mai 2019, Bad Honnef)
  • Martin Plümicke, Andreas Stadelmeier: Introducing Scala-like function types into Java-TX (PDF)
    In Proceedings of the 14th International Conference on Managed Languages & Runtimes (ManLang, formerly PPPJ), ACM International Conference Proceeding Series, ISBN 978-1-4503-0935-6, Prague, Czech Republic, September 26-27, 2017
  • Martin Plümicke: More type inference in Java-8
    In Lecture Notes in Computer Science 8974, PSI' 14, Ershov Informatics Conference Perspectives of System Informatics, pages , June 24-27, 2014, St. Petersburg, Russia
  • Adding overloading to Java type inference (PDF)
    Im Gemeinsamen Tagungsband der Workshops der Tagung Software Engineering 2015 der 8. Arbeitstagung Programmiersprachen (ATPS 2015) , pages 127-132, 18. März 2015 in Dresden
  • Martin Plümicke: Well-typings for Javaλ (PDF)
    In Proceedings of the 9th international symposium on Principles and practice of programming in Java ACM International Conference Proceeding Series, ISBN 978-1-4503-0935-6, Kongens Lyngby, Denmark, August 24-26, 2011
  • Martin Plümicke: Intersection Types in Java (PDF)
    In Proceedings of the 6th international symposium on Principles and practice of programming in Java ACM International Conference Proceeding Series; Vol. 347 Modena, Italy, September 9-11, 2008
  • Martin Plümicke: Typeless Programming in Java 5.0 with Wildcards (PDF)
    In Proceedings of the 5th international symposium on Principles and practice of programming in Java ACM International Conference Proceeding Series; Vol. 272 Monte de Caparica/Lisbon, Portugal, September 5-7, 2007
  • Martin Plümicke, Jörg Bäuerle: Typeless programming in Java 5.0 (PDF)
    In Proceedings of the 4th international symposium on Principles and practice of programming in Java ACM International Conference Proceeding Series; Vol. 178 Mannheim, Germany, August 30 - September 1, 2006.

  • Andreas Stadelmeier, Martin Plümicke, Peter Thiemann, Global Type Inference for Featherweight Generic Java - Prototype Implementation (Artifact) In Special Issue of the 36th European Conference on Object-Oriented Programming (ECOOP 2022), pages 18:1–18:4 (June 6 - July 7, 2022)
  • Fayez Abu Alia: Bytecode generation in Java-TX (PDF)
    In Proceedings of the 35th Annual Meeting of the GI Working Group Programming Languages and Computing Concepts, May 2.-4., 2018, Bad Honnef
  • Andreas Stadelmeier Java type inference as an Eclipse plugin (PDF)
    In Proceedings der 45. Jahrestagung der Gesellschaft für Informatik, Informatik 2015, Informatik, Energie und Umwelt, 28. September - 2. Oktober 2015 in Cottbus, Deutschland

Wissenschaftliche Hilfskräfte

Studienarbeiter

Aktuelles

Studienarbeit zum Forschungsprojekt Java-TX im Studiengang Informatik

Etienne Zink, Student im 6. Semester des Studiengangs Informatik, hat sich in seiner Studienarbeit mit dem Thema „Heterogene Übersetzung echter Funktionstypen in Java-TX“ beschäftigt. Lesen Sie weiter

Habilitation über die Programmiersprache Java abgeschlossen

Prof. Dr. habil. Martin Plümicke hat am 25. April 2022 an der Universität Tübingen erfolgreich seine Habilitation über die Programmiersprache Java abgeschlossen. Lesen Sie weiter