Skip to main content

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: 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.
  • Generated Generics
  • Pattern-Matching in Java-TX
  • Parallelisierung der Typunifikation
  • Java-TX-Compiler in Java-TX

Abgeschlossene Projekte

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

Abgeschlossende Studien-, Bachelor- und Masterarbeiten

Veröffentlichungen

  • Martin Plümicke, Daniel Holle: Principal generics in Java-TX (pdf)
    In Proceedings of the 22. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'23) , pages 122-143, 25.-27. September 2023 in Vaals, Niederlande

  • Andreas Stadelmeier, Martin Plümicke: Type Inference for Java: Unification of Type Constraints Involving Existential Types (pdf)
    In Proceedings of the 22. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'23) , pages 159-174, 25.-27. September 2023 in Vaals, Niederlande

  • 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
    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, 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.

  • Optimization of the Java Type Unification (pdf)
    At the 37th Workshop on (Constraint) Logic Programming, WLP 2023, Berlin, Germany, September 26, 2023
  • Florian Steurer, Martin Plümicke: Erweiterung und Neuimplementierung der Java Typunifikation
    In Proceedings of the 35th Annual Meeting of the GI Working Group Programming Languages and Computing Concepts, May 2.-4., 2018, Bad Honnef
  • Martin Plümicke: Java Type Unification with Wildcards
    In Proceedings of the 17th International Conference, INAP 2007, and 21st Workshop on Logic Programming, WLP 2007, Würzburg, Germany, October 4-6, 2007, Revised Selected Papers
  • Martin Plümicke: Type Unification in Generic-Java
    In Proceedings of 18th International Workshop on Unification, pages , Cork, Ireland, July 5. 2004

Laboringenieur

Studienarbeiter

Aktuelles

Verstärkung für das Forschungsteam

Daniel Holle unterstützt für zwei Semester als wissenschaftliche Hilfskraft das Forschungsteam. 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