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 Typinferenz, die es für einen sehr eingeschränkten Bereich erlaubt Typen wegzulassen. Demgegenüber haben funktionale Sprache 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 globale Typinferenz zu erweitern.
Java-TX
Ein an der Dualen Hochschule entwickelter Typinferenzalgorithmus soll Java Programmieren einfacher und effizienter machen.
Er kann für den/die Programmierer*in 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
- Java ohne Wildcards
Abgeschlossene Projekte
- Entwicklung eines Java-Typunifikationsalgorithmus
- Integration von echten Funktionstypen in Java
Abgeschlossende Studien- und Masterarbeiten
Innovationsprogramm Forschung
Im Rahmen des Innovationsprogramms Forschung besteht ein gemeinsames Projekt "Parametrisierte Typen im Java-Byte-Code" mit dem Lehrstuhl Peter Thiemann an der Universität Freiburg . Hierzu konnte der der Wiss. Mitarbeiter Andreas Stadelmeier angestellt werden. Im Rahmen diese Projekts schreibt Herr Stadelmeier seine Dissertation.
Veröffentlichungen
Typinferenz
- 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.
Typunifikation
- Florian Steurer, Martin Plümicke: Erweiterung und Neuimplementierung der Java Typunifikation (PDF)
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 (POSTSCRIPT)
In Proceedings of 18th International Workshop on Unification, pages , Cork, Ireland, July 5. 2004
Implementierung
- 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