AUTHOR= "Rod M. Burstall and Dave B. MacQueen and Don T. Sannella",
TITLE = "HOPE---An Experimental Applicative Language",
INSTITUTION="University of Edinburgh, Dept. of Computer Science",
NUMBER="CSR-62-80",
YEAR=1980}
@BOOK{PT94,
AUTHOR = {Peter Thiemann} ,
TITLE = {Grundlagen der funktionalen {P}rogrammierung} ,
YEAR = {1994},
PUBLISHER = {Teubner}
}
@InBook{PT941,
AUTHOR = {Peter Thiemann} ,
TITLE = {Grundlagen der funktionalen {P}rogrammierung} ,
YEAR = {1994},
PUBLISHER = {Teubner},
chapter = {11.2}
}
@Book{Wik87,
author = {\AA ke Wikstr\"om},
title = "{F}unctional {P}rogramming {U}sing {S}tandard {ML}",
publisher = "{P}rentice {H}all",
year = "1987"
}
@Book{SSG09,
author = {Bryan O'Sullivan and Donald Bruce Stewart and John Goerzen},
title = {Real World Haskell},
publisher = {O'Reilly},
year = {2009}
}
@Book{BN10,
author = {Marco Block and Adrian Neumann},
title = {Haskell-Intensivkurs: Ein kompakter Einstieg in die funktionale Programmierung},
publisher = {Springer-Verlag},
year = {2011}
}
@Book{PH06,
author = {Peter Pepper and Petra Hofstedt},
title = {Funktionale Programmierung: Sprachdesign und Programmiertechnik},
publisher = {Springer-Verlag},
year = {2006}
}
@Book{BW09,
author = {Federico Biancuzzi and Shane Warden},
title = {Vision\"are der Programmierung -- Die Sprachen und ihre Sch\"opfer},
publisher = {O'Reilly},
year = {2009},
annote = {Deutsche \"Ubersetzung: Thomas Demming}
}
@Book{WaBi09,
author = {Shane Warden and Federico Biancuzzi},
title = {Vision\"a{}re der Programmierung},
publisher = {O'Reilly},
year = {2009}
}
@inproceedings{Tu86,
author="D. A. Turner",
title="Miranda: {A} non-strict functional language with
polymorphic types",
booktitle="Proceedings Functional Programming Languages and Computer
Architecture, Nancy",
series={Lecture notes in computer science},
volume=201,
pages="1--16",
publisher="Springer-Verlag",
year=1986}
@PhdThesis{Weh97,
author = "M. Wehr",
title = "???{O}verloading in {T}ype {T}heory???",
school = "University of Karlsruhe",
year = "1997",
OPTcrossref = "",
OPTkey = "",
OPTaddress = "",
OPTmonth = "",
OPTtype = "",
OPTnote = "",
OPTannote = ""
}
@ARTICLE{haskell-r,
AUTHOR = {Paul Hudak and Simon {Peyton Jones} and Philip Wadler and others},
TITLE = {Report on the Programming Language {Haskell}},
JOURNAL = {SIGPLAN Notices},
YEAR = 1992,
VOLUME = {27},
NUMBER = {5},
PAGES = {R1--R164}
}
@Booklet{haskell-1.3,
author = "John Peterson and Kevin Hammond and others",
title = "Report on the Programming Language {Haskell},
Version 1.3",
year = "1996",
month = "May"
}
@Booklet{haskell-1.4,
author = "John Peterson and Kevin Hammond and others",
title = "Report on the Programming Language {Haskell},
Version 1.4",
year = "1997",
month = "April"
}
@Booklet{haskell98,
title = {Haskell 98 Language and Libraries, The Revised Report},
author = {Simon Peyton Jones (editor)},
ALTauthor = {Simon Peyton Jones [editor] and Lennart Augustsson and Dave Barton and Brian Boutel and Warren Burton and Joseph Fasel and Kevin Hammond and Ralf Hinze and Paul Hudak and John Hughes and Thomas Johnsson and Mark Jones and John Launchbury and Erik Meijer and John Peterson and Alastair Reid and Colin Runciman and Philip Wadler},
title = {Java and scala's type systems are unsound: the existential crisis of null pointers},
doi = {10.1145/2983990.2984004}
}
@article{KB22,
author = {Bierhoff, Kevin},
title = {Wildcards Need Witness Protection},
year = {2022},
issue_date = {October 2022},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {6},
number = {OOPSLA2},
url = {https://doi.org/10.1145/3563301},
doi = {10.1145/3563301},
abstract = {In this paper, we show that the unsoundness discovered by Amin and Tate (2016) in Java’s wildcards is avoidable, even in the absence of a nullness-aware type system. The key insight of this paper is that soundness in type systems that implicitly introduce existential types through subtyping hinges on still making sure there are suitable witness types when introducing existentially quantified type variables. To show that this approach is viable, this paper formalizes a core calculus and proves it sound. We used a static analysis based on our approach to look for potential issues in a vast corpus of Java code and found none (with 1 false positive). This confirms both that Java's unsoundness has minimal practical consequence, and that our approach can avoid it entirely with minimal false positives.},
abstract = {Wildcards have become an important part of Java's type system since their introduction 7 years ago. Yet there are still many open problems with Java's wildcards. For example, there are no known sound and complete algorithms for subtyping (and consequently type checking) Java wildcards, and in fact subtyping is suspected to be undecidable because wildcards are a form of bounded existential types. Furthermore, some Java types with wildcards have no joins, making inference of type arguments for generic methods particularly difficult. Although there has been progress on these fronts, we have identified significant shortcomings of the current state of the art, along with new problems that have not been addressed.In this paper, we illustrate how these shortcomings reflect the subtle complexity of the problem domain, and then present major improvements to the current algorithms for wildcards by making slight restrictions on the usage of wildcards. Our survey of existing Java programs suggests that realistic code should already satisfy our restrictions without any modifications. We present a simple algorithm for subtyping which is both sound and complete with our restrictions, an algorithm for lazily joining types with wildcards which addresses some of the shortcomings of prior work, and techniques for improving the Java type system as a whole. Lastly, we describe various extensions to wildcards that would be compatible with our algorithms.},
author = {Gilad Bracha and Norman Cohen and Christian Kemper and Steve Marx and Martin Odersky and Sven-Eric Panitz and David Stoutamire Kresten Thorup and Philip Wadler},
title = {Adding {G}enerice to the {J}ava {P}rogramming {L}anguage: {P}articipant {D}raft {S}pecification},
journal = {\texttt{http://java.sun.com}},
year = {2001}
}
@Misc{MO02,
author = {Martin Odersky},
title = {Inferred Type Instantiation for {GJ}},
howpublished = {Note sent to the types mailing list},
month = {January},
year = 2002
}
@inproceedings{IV02,
author = {Igarashi, Atsushi and Viroli, Mirko},
title = {On Variance-Based Subtyping for Parametric Types},
booktitle = {Proceedings of the 16th European Conference on Object-Oriented Programming},
author = {Martin Odersky and Philippe Altherr and Vincent Cremet and Gilles Dubochet and Burak Emir and Philipp Haller and St\'ephane Micheloud and Nikolay Mihaylov and Adriaan Moors and Lukas Rytz and Michel Schinz and Erik Stenman and Matthias Zenger},
Optinstitution = {\'{E}cole Polytechnique F\'{e}d\'{e}rale de Lausanne (EPFL), Switzerland},
author = {Martin Odersky and Philippe Altherr and Vincent Cremet and Gilles Dubochet and Burak Emir and Philipp Haller and St\'ephane Micheloud and Nikolay Mihaylov and Adriaan Moors and Lukas Rytz and Michel Schinz and Erik Stenman and Matthias Zenger},
Optinstitution = {\'{E}cole Polytechnique F\'{e}d\'{e}rale de Lausanne (EPFL), Switzerland},
author = {Martin Odersky and Philippe Altherr and Vincent Cremet and Iulian Dragos Gilles Dubochet and Burak Emir and Sean McDirmid and St\'{e}phane Micheloud and Nikolay Mihaylov and Michel Schinz and Erik Stenman and Lex Spoon and Matthias Zenger},
title = {An Overview of the Scala Programming Language},
institution = {\'{E}cole Polytechnique F\'{e}d\'{e}rale de Lausanne (EPFL)},
year = {2006},
note = {LAMP-REPORT-2006-001}
}
@inproceedings{UTO13,
author = {Vlad Ureche and
Cristian Talau and
Martin Odersky},
title = {Miniboxing: improving the speed to code size tradeoff in
parametric polymorphism translations},
booktitle = {OOPSLA},
year = {2013},
pages = {73-92},
ee = {http://doi.acm.org/10.1145/2509136.2509537},
Optcrossref = {DBLP:conf/oopsla/2013},
Optbibsource = {DBLP, http://dblp.uni-trier.de}
}
@PhdThesis{ID10,
author = {Iulian Dragos},
title = {Compiling Scala for Performance},
school = {\'Ecole Polytechnique F\'ed\'erale de Lausanne},
Optnote = {http://\linebreak[1]mail.\linebreak[1]openjdk.\linebreak[1]java.\linebreak[1]net/\linebreak[1]pipermail/\linebreak[1]lambda-dev/\linebreak[1]attachments/\linebreak[1]20100212/\linebreak[1]af8d2cc5/\linebreak[1]attachment-\linebreak[1]0001.txt, Version 0.1.5},
author = {y Widemann, Baltasar Tranc\'{o}n and Lepper, Markus},
title = {LLJava: Minimalist Structured Programming on the Java Virtual Machine [Work-in-Progress Research Paper]},
year = {2016},
isbn = {9781450341356},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/2972206.2972218},
doi = {10.1145/2972206.2972218},
abstract = {There is a wide gap in abstraction level between Java source code and JVM bytecode. Many important software-related tasks, such as specification and implementation of code synthesis procedures, code inspection, software understanding and teaching, can benefit from an adequate, intermediate level of abstraction. Available bytecode assembly/disassembly tools are ad-hoc and fall short of the requirements regarding compositionality and clarity. We report on the design and implementation of the LLJava language that bridges the gap, based on careful analysis of bytecode information and rigorous design.},
journal = {Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools},
author = {Tranc\'{o}n y Widemann, Baltasar and Lepper, Markus},
title = {LLJava Live at the Loop: A Case for Heteroiconic Staged Meta-Programming},
year = {2021},
isbn = {9781450386753},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3475738.3480942},
doi = {10.1145/3475738.3480942},
abstract = {This paper investigates the use of staged meta-programming techniques for the transparent acceleration of embedded domain-specific languages on the Java platform. LLJava-live, the staged API of the low-level JVM language LLJava, can be used to complement an interpreted EDSL with orthogonal and extensible compilation facilities. Compiled JVM bytecode becomes available immediately as an extension of the running host program. The approach is illustrated with a didactic structured imperative programming language, Whilst.},
journal = {Proceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes},
abstract = {With the introduction of Java 5.0 [9] the type system has been extended by parameterized types, type variables, type terms, and wildcards. As a result very complex types can arise. The termVector<vector<abstractlist<integer>>>is for example a correct type in Java 5.0.Considering all that, it is often rather difficult for a programmer to recognize whether such a complex type is the correct one for a given method or not. Furthermore there are methods whose principle types would be intersection types. But intersection types are not implemented in Java 5.0. This means that Java 5.0 methods often don't have the principle type which is contradictive to the OOP-Principle of writing re-usable code.This has caused us to develop a Java 5.0 type inference system which assists the programmer by calculating types automatically. This type inference system allows us, to declare method parameters and local variables without type annotations. The type inference algorithm calculates the appropriate and principle types.We implement the algorithm in Java using the observer design pattern.},
journal = {Proceedings of the 4th International Symposium on Principles and Practice of Programming in Java},
pages = {175--181},
numpages = {7},
keywords = {type inference, program design and implementation, language design, type system, code generation},
location = {Mannheim, Germany},
series = {PPPJ '06},
doi = {10.1145/1168054.1168079}
}
@InProceedings{Plue06_2_old,
author = {Martin Pl{\"u}micke and J{\"o}rg B{\"a}uerle},
title = {Typeless programming in \textsf{{J}ava 5.0}},
booktitle = {4th {I}nternational {C}onference on {P}rinciples and {P}ractices of {P}rogramming in \textsf{{J}ava}},
pages = {175--181},
year = {2006},
editor = {Ralf Gitzel and Markus Aleksey and Martin Schader and Chandra Krintz},
series = {ACM International Conference Proceeding Series},
volume = {178},
month = {August},
publisher = {Mannheim University Press}
}
@inproceedings{PHL06,
author = {Martin Pl{\"u}micke and Timo Holzherr and Arne L{\"u}dtke},
title = {Type--Inference in \textsf{Java}},
booktitle = {Information Technology and Computer Science - ITCS 2006,
Annual Meeting on ITCS at the Berufsakademie Baden-W{\"u}rrtemberg,
Stuttgart, Germany, November 9, 2006. Proceedings},
year = {2008},
editor = {Hans Weghorn},
publisher = {BA-University Stuttgart},
pages = {33-37},
ee = {http://www.ba-stuttgart.de/$\sim$day4it/2006/ITCS2008-Pluemicke.pdf},
note = {(to appear)}
}
@InProceedings{plue07_1,
author = {Martin Pl{\"u}micke},
title = {Formalization of the \textsf{{J}ava} {T}ype {S}ystem},
booktitle = {Programmiersprachen und Rechenkonzepte: 24. Workshop der GI-Fachgruppe ``Programmiersprachen und Rechenkonzepte'', Bad Honnef, 2. - 4. Mai 2007},
pages = {41--50},
year = {2007},
editor = {Michael Hanus and Bernd Bra\ss{}el},
address = {Bad Honnef},
series = {Technische Berichte des Instituts f\"ur Informatik},
title = {\textsf{Java} type unification with wildcards},
booktitle = {Proceedings of 21th {I}nternational {W}orkshop on {U}nification ({U}{N}{I}{F}'07)},
year = {2007},
address = {Paris},
editor = {\'Evelyne Contejean},
month = {July},
xnote = {{\tt http://www.lsv.ens-cachan.fr/unif}}
}
@article{Plue07_3,
author = {Martin Pl{\"u}micke},
title = {Typeless {P}rogramming in \textsf{{J}ava 5.0} with {W}ildcards},
journal = {5th {I}nternational {C}onference on {P}rinciples and {P}ractices of {P}rogramming in {J}ava},
pages = {73--82},
year = {2007},
editor = {Vasco Amaral and Lu\'is Veiga and Lu\'is Marcelino and H. Conrad Cunningham},
series = {ACM International Conference Proceeding Series},
volume = {272},
month = {September},
doi = {10.1145/1294325.1294336}
}
@InProceedings{MartinUnify,
author = {Martin Pl{\"u}micke},
title = {\textsf{Java} type unification with wildcards},
booktitle = {Proceedings of 17th {I}nternational {C}onference on {A}pplications of {D}eclartive {P}rogramming and {K}nowledge {M}anagement (INAP 2007) and 21th {W}orkshop on ({C}onstraint) {L}ogic {P}rogramming ({WLP} 2007)},
year = {2007},
editor = {Dietmar Seipel and Michael Hanus and Armin Wolf and Joachim Baumeister},
title = {\textsf{Java} type unification with wildcards},
booktitle = {Proceedings of 17th {I}nternational {C}onference on {A}pplications of {D}eclartive {P}rogramming and {K}nowledge {M}anagement (INAP 2007) and 21th {W}orkshop on ({C}onstraint) {L}ogic {P}rogramming ({WLP} 2007)},
year = {2007},
editor = {Dietmar Seipel and Michael Hanus and Armin Wolf and Joachim Baumeister},
title = {Implementierung eines {T}ypinferenzalgorithmus f\"ur \textsf{{J}ava 5.0}},
booktitle = {Tagungsband des 14. Kolloquiums Programmiersprachen und Grundlagen der Programmierung},
pages = {141--146},
year = {2007},
editor = {Walter Dosch and Clemens Grelck and Annette St\"umpel},
OPTaddress = {Bad Honnef},
series = {Berichte der Institute f\"ur Informatik und Mathematik},
number = {A--07--07},
OPTmonth = {August},
organization = {Universt\"at zu L\"ubeck},
note = {(in german)}
}
@inproceedings{plue08_1,
author = {Martin Pl{\"u}micke},
title = {Subtyping in \textsf{{J}ava 5.0}},
booktitle = {Information Technology and Computer Science - ITCS 2008,
Annual Meeting on ITCS at the Berufsakademie Baden-W{\"u}rrtemberg,
Stuttgart, Germany, February 20, 2008. Proceedings},
year = {2008},
editor = {Hans Weghorn},
publisher = {BA-University Stuttgart},
pages = {33-37},
ee = {http://www.ba-stuttgart.de/$\sim$day4it/2008/ITCS2008-Pluemicke.pdf}
}
@article{plue09_1,
author = {Martin Pl{\"u}micke},
title = {Java type unification with wildcards},
journal = {17th International Conference, INAP 2007, and 21st Workshop on Logic Programming, WLP 2007, W\"urzburg, Germany, October 4-6, 2007, Revised Selected Papers},
year = {2009},
editor = {Dietmar Seipel and Michael Hanus and Armin Wolf},
Volume = {5437},
publisher = {Springer-Verlag Heidelberg},
pages = {223--240},
SERIES = {Lecture Notes in Artificial Intelligence},
doi= {10.1007/978-3-642-00675-3\_15}
}
@InProceedings{plue08_3,
author = {Martin Pl{\"u}micke},
title = {Resolving of {I}ntersection {T}ypes in {J}ava},
booktitle = {Programmiersprachen und Rechenkonzepte: 25. Workshop der GI-Fachgruppe ``Programmiersprachen und Rechenkonzepte'', Bad Honnef, 5. - 7. Mai 2008},
pages = {45--54},
year = {2008},
editor = {Michael Hanus and Sebastian Fischer},
address = {Bad Honnef},
series = {Technische Berichte des Instituts f\"ur Informatik},
title = {Brian's approach vs. Martin's approach Functional Interfaces vs. function-types in {J}ava 8},
booktitle = {Programmiersprachen und Rechenkonzepte: 29. Workshop der GI-Fachgruppe ``Programmiersprachen und Rechenkonzepte'' Bad Honnef, 2.-4. Mai 2012},
title = {Functional implementation of well-typings in
Java$_{\lambda}$},
OPTcrossref = {},
OPTkey = {},
booktitle = {Draft proceedings of the 24th symposium on implementation and application of functional languages (IFL 2012)},
pages = {403--415},
year = {2012},
editor = {Ralf Hinze},
OPTvolume = {},
number = {RR--12--06},
OPTseries = {},
address = {Wolfson Building, Parks Road, Oxford, OX1 3QD},
OPTmonth = {},
organization = {Department of Computer Science, University of Oxford},
OPTpublisher = {},
OPTnote = {},
OPTannote = {}
}
@TechReport{PS13,
author = {Martin Pl\"umicke and Janin Schlenker},
title = {{IT-S}trategie der {D}ualen {H}ochschule {B}aden-{W}�rttemberg},
institution = {DHBW},
year = {2013},
OPTkey = {},
OPTtype = {},
OPTnumber = {},
OPTaddress = {},
OPTmonth = {},
OPTnote = {},
OPTannote = {}
}
@proceedings{PB13,
title = {PPPJ '13: Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools},
editor = {Martin Pl\"umicke and Walter Binder},
year = {2013},
isbn = {978-1-4503-2111-2},
location = {Stuttgart, Germany},
publisher = {ACM},
address = {New York, NY, USA}
}
@InProceedings{SP13,
author = {Andreas Stadelmeier and Martin Pl\"umicke},
title = {Implementierung eines {T}ypinferenzalgorithmus f\"ur {J}ava-8},
OPTcrossref = {},
OPTkey = {},
booktitle = {Tagungsband des 17. Kolloquiums Programmiersprachen und Grundlagen der Programmierung (KPS'13)},
pages = {127--134},
year = {2014},
editor = {Roswitha Picht and Wolf Zimmermann},
OPTvolume = {},
number = {2014/02},
series = {Technical Report},
OPTaddress = {},
OPTmonth = {},
organization = {University Halle-Wittenberg, Institute of Computer Scinece},
OPTpublisher = {},
note = {(in german)}
}
@Misc{plue14_1,
author = {Martin Pl{\"u}micke},
title = {Type inference in {J}ava},
year = {2014},
note = {}
}
@InProceedings{plue14_2,
author = {Martin Pl{\"u}micke},
title = {Functional {I}nterfaces vs. {F}unction {T}ypes in {J}ava with
{L}ambdas -- {E}xtended {A}bstract},
OPTcrossref = {},
OPTkey = {},
booktitle = {Tagungsband der Arbeitstagung Programmiersprachen (ATPS 2014)},
der Mathematisch–Naturwissenschaftlichen Fakult\"at der Eberhard Karls Universit\"at, T\"ubingen
zur Erlangung der Venia Legendi},
year = {2014},
OPTkey = {},
OPTtype = {},
OPTaddress = {},
OPTmonth = {},
OPTnote = {},
OPTannote = {}
}
@proceedings{DBLP:conf/ershov/2011,
editor = {Edmund M. Clarke and
Irina Virbitskaite and
Andrei Voronkov},
title = {Perspectives of Systems Informatics - 8th International
Andrei Ershov Memorial Conference, PSI 2011, Novosibirsk,
Russia, June 27-July 1, 2011, Revised Selected Papers},
booktitle = {Ershov Memorial Conference},
publisher = {Springer},
series = {Lecture Notes in Computer Science},
volume = {7162},
year = {2012},
isbn = {978-3-642-29708-3},
ee = {http://dx.doi.org/10.1007/978-3-642-29709-0},
bibsource = {DBLP, http://dblp.uni-trier.de}
}
@InProceedings{plue14_3b,
author = {Martin Pl{\"u}micke},
title = {More type inference in {J}ava 8},
OPTcrossref = {},
OPTkey = {},
booktitle = {Perspectives of Systems Informatics - 9th International
Andrei Ershov Memorial Conference, PSI 2014, St. Petersburg,
Russia},
pages = {168--174},
year = {2014},
Opteditor = {},
OPTvolume = {},
Optnumber = {},
Optseries = {Lecture Notes in Computer Science},
Optaddress = {},
OPTmonth = {},
Optorganization = {},
Optpublisher = {Springer},
note = {Preliminary Proceedings},
OPTannote = {}
}
@Unpublished{plue15_2a,
author = {Martin Pl{\"{u}}micke},
title = {More Type Inference in {J}ava 8 (Extended Version)},
year = {2014},
note = {(Short Version is published as \cite{plue15_2})},
}
@article{plue15_2,
author = {Martin Pl{\"{u}}micke},
title = {More Type Inference in {J}ava 8},
journal = {Perspectives of System Informatics - 9th International Ershov Informatics
Conference, {PSI} 2014, St. Petersburg, Russia, June 24-27, 2014.
Revised Selected Papers},
editor = {Andrei Voronkov and Irina Virbitskaite},
volume = {8974},
series = {Lecture Notes in Computer Science},
pages = {248--256},
year = {2015},
publisher = {Springer},
doi = {10.1007/978-3-662-46823-4\_20}
}
@InProceedings{oldplue15_2,
author = {Martin Pl{\"u}micke},
title = {More type inference in {J}ava 8},
OPTcrossref = {},
OPTkey = {},
booktitle = {Perspectives of Systems Informatics -- 9th International
Andrei Ershov Memorial Conference, PSI 2014, St. Petersburg,
Russia},
Optpages = {},
year = {2015},
Opteditor = {},
volume = {8974},
Optnumber = {},
series = {Lecture Notes in Computer Science},
Optaddress = {},
OPTmonth = {},
Optorganization = {},
publisher = {Springer},
note = {(to appear)},
OPTannote = {}
}
@article{plue14_4,
author = {Martin Pl{\"u}micke},
title = {Adding function types to {J}ava 8},
Optcrossref = {},
OPTkey = {},
Optbooktitle = {},
Optpages = {},
year = {2014},
Opteditor = {},
OPTvolume = {},
Optnumber = {},
OPTseries = {},
Optaddress = {},
OPTmonth = {},
Optorganization = {},
OPTpublisher = {},
note = {(Extended Abstract is published as \cite{plue14_2})},
OPTannote = {}
}
@InProceedings{plue14_5,
author = {Martin Pl{\"u}micke},
title = {Integrated {C}ampus-{P}ortal},
OPTcrossref = {},
OPTkey = {},
booktitle = {Novel Methods and Technologies for Enterprise Information Systrem -- ERP Future 2013 Conference, Wien, Austria, November 2013, Revised Papers},
pages = {249--260},
year = {2014},
editor = {Felix Piazolo and Michael Felderer},
volume = {8},
OPTnumber = {},
series = {Lecture Notes in Information Systems and Organisation},
OPTaddress = {},
OPTmonth = {},
OPTorganization = {},
publisher = {Springer},
OPTnote = {(to appear)},
OPTannote = {}
}
@InProceedings{plue14_6,
author = {Martin Pl{\"u}micke},
title = {Generic instances in Java Byte Code},
OPTcrossref = {},
OPTkey = {},
booktitle = {Programmiersprachen und Rechenkonzepte: 31. Workshop der GI-Fachgruppe Programmiersprachen und Rechenkonzepte, Bad Honnef, 28. -- 30. April 2014},
year = {2014},
OPTeditor = {},
OPTvolume = {},
OPTnumber = {},
series = {Technische Berichte der TU Wien},
OPTpages = {},
OPTmonth = {},
OPTaddress = {},
OPTorganization = {},
OPTpublisher = {},
note = {(to appear)},
OPTannote = {}
}
@InProceedings{SP14,
author = {Andreas Stadelmeier and Martin Pl{\"u}micke},
title = {Java type inference as an {E}clipse plugin},
OPTcrossref = {},
OPTkey = {},
booktitle = {Programmiersprachen und Rechenkonzepte: 31. Workshop der GI-Fachgruppe Programmiersprachen und Rechenkonzepte, Bad Honnef, 28. -- 30. April 2014},
year = {2014},
OPTeditor = {},
OPTvolume = {},
OPTnumber = {},
series = {Technische Berichte der TU Wien},
OPTpages = {},
OPTmonth = {},
OPTaddress = {},
OPTorganization = {},
OPTpublisher = {},
note = {(to appear)},
OPTannote = {}
}
@InProceedings{plue15_1,
author = {Andreas Stadelmeier and Martin Pl{\"u}micke},
title = {Adding overloading to Java type inference},
OPTcrossref = {},
OPTkey = {},
booktitle = {Tagungsband der Arbeitstagung Programmiersprachen (ATPS 2015)},
title = {Introducing {S}cala-like functional interfaces into {J}ava},
OPTcrossref = {},
OPTkey = {},
booktitle = {Programmiersprachen und Rechenkonzepte: 32. Workshop der GI-Fachgruppe Programmiersprachen und Rechenkonzepte, Bad Honnef, 4. -- 6. Mai 2015},
year = {2015},
OPTeditor = {},
OPTvolume = {},
OPTnumber = {},
series = {Technische Berichte der TU Wien},
OPTpages = {},
OPTmonth = {},
OPTaddress = {},
OPTorganization = {},
OPTpublisher = {},
note = {(to appear)},
OPTannote = {}
}
@InProceedings{FFSSP15,
author = {Evelyn Fikus and Franziska F\"utterling and Julia Schubert and Andreas Stadelmeier and Martin Pl{\"u}micke},
title = {Bytecode-Generierung eines neuartigen Java Compilers},
booktitle = {Tagungsband des 18. Kolloquium Programmiersprachen und
Grundlagen der Programmierung (KPS'15)},
pages = {602--610},
year = {2015},
editor = {Jens Knoop and M. Anton Ertl},
address = {P\"ortschach},
number = {Bericht 2015-IX-1},
month = {Oktober},
series = {Schriftenreihe des Instituts f\"ur Computersprachen Technische Universit\"at Wien}
}
@InProceedings{plue15_4,
author = {Martin Pl{\"u}micke},
title = {Java Type System -- Proposals for Java 10 or 11},
booktitle = {Tagungsband des 18. Kolloquiums Programmiersprachen und Grundlagen der Programmierung (KPS'15)},
pages = {463--475},
year = {2015},
editor = {Jens Knoop and M. Anton Ertl},
address = {P\"ortschach},
number = {Bericht 2015-IX-1},
month = {Oktober},
series = {Schriftenreihe des Instituts f\"ur Computersprachen Technische Universit\"at Wien}
}
@proceedings{DBLP:conf/se/2016w,
editor = {Wolf Zimmermann and
Lukas Alperowitz and
Bernd Br{\"{u}}gge and
J{\"{o}}rn Fahsel and
Andrea Herrmann and
Anne Hoffmann and
Andreas Krall and
Dieter Landes and
Horst Lichter and
Dirk Riehle and
Ina Schaefer and
Constantin Scheuermann and
Alexander Schlaefer and
Sibylle Schupp and
Andreas Seitz and
Andreas Steffens and
Andr{\'{e}} Stollenwerk and
R{\"{u}}diger Wei{\ss}bach},
title = {Gemeinsamer Tagungsband der Workshops der Tagung Software Engineering
title = {Erweiterung der semantischen Analyse des Java--Compilers},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2003},
note = {(in german)}
}
@manual{MH04,
author = {Markus Haas},
title = {Weiterentwicklung der Java-Codegenerierung zur Ausf\"uhrung von parametrisierten Datentypen},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2004},
note = {(in german)}
}
@Manual{TO04,
author = {Thomas Ott},
title = {Typinferenz in \textsf{Java}},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2004},
note = {(in german)}
}
@manual{JB05,
author = {J{\"o}rg B{\"a}uerle},
title = {Typinferenz in \textsf{Java}},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2005},
note = {(in german)}
}
@Manual{MM05,
author = {Markus Melzer},
title = {Integration der \textsf{Java}--Typeinferenz in eine Programmierumgebung},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2005},
note = {(in german)}
}
@manual{TH06,
author = {Timo Holzherr},
title = {Typinferenz in \textsf{Java}},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2006},
note = {(in german)}
}
@Manual{THo06,
author = {Thomas Hornberger},
title = {Einbindung von \textsf{Java}--Typeinferenz in eine integrierte Entwicklungsumgebung},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2006},
note = {(in german)}
}
@Manual{JS06,
author = {J\"urgen Schmiing},
title = {Migration einer {C}odegenerierungskomponente f\"ur einen \textsf{{J}ava}--Compiler},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2006},
note = {(in german)}
}
@Manual{AL07,
author = {Arne L{\"u}dtke},
title = {\textsf{Java} Typinferenz mit Wildcards},
organization = {BA Stuttgart/Horb},
address = {Studienarbeit},
year = {2007},
note = {(in german)}
}
@Manual{HS08,
author = {Thorsten Hake and Christian Stresing},
title = {Erweiterung des Eclipse Plugins zur Unterst{\"u}tzung der Arbeit mit dem Typinferenz Compiler},
organization = {BA Stuttgart},
address = {Studienarbeit},
year = {2008},
note = {(in german)}
}
@Manual{HS08_2,
author = {Thorsten Hake and Christian Stresing},
title = {Konsolidierung und Vorbereitung des Java--Typinferenz Projekts durch die Erstellung einer Testsuite f{\"u}r ein Open--Source--Projekt},
organization = {BA Stuttgart},
address = {Studienarbeit},
year = {2008},
note = {(in german)}
}
@Manual{MF12,
author = {Maximilian Franck},
title = {DUALIS Planning-Tool -- Erweiterung: Neue Benutzerauthentifizierung via Active Directory \& Optimierungen bei der Bedienung - Implementierung},
organization = {DHBW Stuttgart},
address = {Studienarbeit und Honorararbeit},
year = {2011/12},
note = {(in german)}
}
@Manual{CG12,
author = {Christian Geser},
title = {Apps f\"ur Dualis},
organization = {DHBW Stuttgart Campus Horb},
address = {Studienarbeit},
year = {2012},
note = {(in german)}
}
@Manual{AS13,
title = {Typinferenz in Java 8},
author = {Andreas Stadelmeier},
organization = {DHBW Stuttgart Campus Horb},
address = {Studienarbeit},
year = {2013},
note = {(in german)}
}
@Manual{BR14,
title = {Erstellung eines Parsers f\"ur typloses Java 8},
author = {Benjamin Reich},
organization = {DHBW Stuttgart Campus Horb},
address = {Studienarbeit},
year = {2014},
note = {(in german)}
}
@Manual{MW15,
title = {JavaTX Compiler - Infrastruktur und Typunifikation},
author = {Markus Wotringer},
organization = {DHBW Mannheim},
address = {Studienarbeit},
year = {2015},
note = {(in german)}
}
@misc{FFS15,
author = {Evelyn Fikus and Franziska F\"utterling and Julia Schubert},
title = {Bytecode-{G}enerierung innerhalb eines neuartigen {J}ava {C}ompilers},
institution = {DHBW Stuttgart},
year = {2015},
OPTkey = {},
OPTtype = {},
OPTnumber = {},
OPTaddress = {},
OPTmonth = {},
note = {Seminararbeit},
OPTannote = {}
}
@Manual{FS16,
title = {Implementierung eines Typunifikationsalgorithmus f\"ur Java 8},
author = {Florian Steurer},
organization = {DHBW Stuttgart, Campus Horb},
address = {Studienarbeit},
year = {2016},
note = {(in german)}
}
@Manual{ES16,
title = {Java Bytecode Generierung von \"uberladenen Methoden},
author = {Enrico Schroedter},
organization = {DHBW Stuttgart, Campus Horb},
address = {Studienarbeit},
year = {2016},
note = {(in german)}
}
@Manual{JN17,
title = {Automatisierte Analyse und Visualisierung des Java-TX Quellcodes},
author = {Jan-Elric Neumann},
organization = {DHBW Stuttgart},
address = {Studienarbeit},
year = {2017},
note = {(in german)}
}
@MastersThesis{AS18,
author = {Andreas Stadelmeier},
title = {Java-{T}ypinferenz mithilfe von logikbasierten {F}ormalen {M}ethoden},
school = {Universit\"at T\"ubingen},
year = {2018},
OPTkey = {},
OPTtype = {},
OPTaddress = {},
OPTmonth = {},
note = {(in german)},
OPTannote = {}
}
@Manual{EZ22,
title = {Heterogene {\"U}bersetzung echter {F}unktionstypen in {J}ava-{T}{X}},
author = {Etienne Zink},
organization = {DHBW Stuttgart/Horb},
address = {Studienarbeit},
year = {2022},
note = {(in german)}
}
@Misc{DH22,
author = {Daniel Holle},
title = {Bytecode-{G}enerierer f\"ur ein typloses {J}ava},
title = "Another Look at Parameterization Of Order-Sorted
Algebraic Specifications",
journal = "Journal of Computer and System Sciences",
year = "1994",
volume = "49",
pages = "620--666"
}
@InProceedings{Wa85,
author = "Christoph Walther",
title = "Unification in Many-sorted Theories",
editor = "T. O'Shea",
pages = "383-392",
booktitle = "Advances in Artificial Intelligence -- Proceedings,
Sixth European Conference on Artificial Intelligence",
year = "1985",
publisher = "North Holland"
}
@INPROCEEDINGS{Erw93,
AUTHOR = "Erwig, M.",
TITLE = "Specifying Type Systems with Multi-Level Order-Sorted Algebra",
YEAR = "1993",
BOOKTITLE = "3rd Int. Conf. on Algebraic Methodology and Software
Technology",
SERIES = "",
PAGES = "177--184"}
@INPROCEEDINGS{PT93,
AUTHOR = "Thiemann, Peter",
TITLE = "{A}n {O}verview of the {SODA} System",
YEAR = "1993",
BOOKTITLE = "3rd Int. Conf. on Algebraic Methodology and Software
Technology",
SERIES = "",
PAGES = "185--192"}
@misc{plue04,
author = {Martin Pl{\"u}micke},
title = {Type inference in {\sf Generic--Java}},
year = {2004},
annote = {(to appear)}
}
Semantik
--------
@BOOK{Fe89,
AUTHOR = {Elfriede Fehr},
TITLE = {Semantik von Programmiersprachen},
PUBLISHER = {Springer},
YEAR = {1989}}
@BOOK{Sto89,
AUTHOR = {Stoy, Joseph E.} ,
TITLE = {{Denotational semantics: the Scott-Strachey approach to programming language theory }} ,
YEAR = {1989} ,
PUBLISHER = {MIT Press, Cambridge, Mass.} ,
SERIES = {The MIT Press series in computer science} ,
VOLUME = {} ,
ISBN = {0-262-69076-4} ,
ISSN = {} ,
REPORT = {} ,
POINTER = {Bib.d.Info. F.3.2},
CATEGORY = {} ,
KEYWORDS = {} ,
ENTRY = {es} ,
ABSTRACT = {}
}
Typen
-----
@Article{Hin69,
author = "R. Hindley",
title = "The principle type scheme of an object in
combinatory logic",
journal = "Trans. Am. Math. Soc. 146",
year = "1969",
pages = "29--60",
month = "December"
}
@article{DM82,
author={Luis Damas and Robin Milner},
title={Principal type-schemes for functional programs},
journal={Proc. 9th Symposium on Principles of Programming Languages},
year={1982},
doi={10.1145/582153.582176}
}
@article{Lei83,
author={Daniel Leivant},
title={Polymorphic type inference},
journal={Proc. 10th Symposium on Principles of Programming Languages 1982},
year={1983}}
@article{Mil78,
author={Robin Milner},
title={A theory of type polymorphism in programming},
journal={Journal of Computer and System Sciences},
volume={17},
pages={348-378},
year={1978}}
@InProceedings{My84,
author = {A. Mycroft},
title = {Polymorphic type schemes and recursive definitions},
booktitle = {Proc. 6th Int. Conf. on Programming},
year = {1984},
volume = {LNCS 167},
publisher="Springer Berlin Heidelberg",
address="Berlin, Heidelberg",
pages="217--228",
abstract="An extension to Milner's polymorphic type system is proposed and proved correct. Such an extension appears to be necessary for the class of languages with mutually recursive top-level definitions. We can now ascribe a more general type to such definitions than before.",
isbn="978-3-540-38809-8"
}
@article{Hin92,
author = {J. Roger Hindley},
title = {Types with Intersection: An Introduction},
journal = {Formal Aspects of Computing},
volume = {4},
number = {5},
year = {1992},
pages = {470-486},
bibsource = {DBLP, http://dblp.uni-trier.de}
}
@inproceedings{CG92,
author = {Mario Coppo and Paola Giannini},
title = {A Complete Type Inference Algorithm for Simple Intersection Types},
booktitle = {CAAP '92: Proceedings of the 17th Colloquium on Trees in Algebra and Programming},
year = {1992},
isbn = {3-540-55251-0},
pages = {102--123},
publisher = {Springer-Verlag},
address = {London, UK},
}
@ARTICLE{KW04,
ITRSPAPER = {yes},
CHURCHREPORT = {yes},
DARTTODO = {Mention this.},
AUTHOR = {Assaf J. Kfoury and J. B. Wells},
TITLE = {Principality and Type Inference for Intersection
Types Using Expansion Variables},
JOURNAL = {Theoretical Computer Science},
VOLUME = {311},
NUMBER = {1--3},
PAGES = {1--70},
XNUMBERNOTE = {Elsevier refers to "issues" 1--3, not "number"},
author = {Martin Odersky and Enno Runne and Philip Wadler.},
title = {Two {W}ays to {B}ake {Y}our {P}izza -- {T}ranslating {P}arameterised {T}ypes into {J}ava},
journal = {Proceedings of a Dagstuhl Seminar, Springer Lecture Notes in Computer Science},
year = {2000},
volume = {1766},
pages = {114--132},
}
@InProceedings{CHO92,
author = {Kung Chen and Paul Hudak and Martin Odersky},
title = {Parametric type classes},
booktitle = {Proceedings ACM Conference ob Lisp and Functional Programming},
year = {1992},
month = {June},
pages = {170--181},
annote = {pizza-translation.pdf}
}
@InProceedings{Kae92,
author = {Stefan Kaes},
title = {Type inference in the presence of overloading, subtyping, and recusive types},
booktitle = {Proceedings ACM Conference on Lisp and Functional Programming Languages},
pages = {193--204},
year = {1992},
month = {June}
}
@InProceedings{Jo93,
author = {Mark P. Jones},
title = {A system of constructor classes: {O}verloading and implicite higher-order
polymorphism},
booktitle = {Proceedings of the ACM Conference on Functional Programming Languages
and Computer Architecture},
address = {Copenhagen, Denmark},
pages = {52--61},
year = {1993},
month = {June}
}
@InProceedings{He88,
author = {Fritz Henglein},
title = {Type inference and semi-unification},
booktitle = {Proceedings ACM Conference ob Lisp and Functional Programming},
year = {1988},
address = {New Yourk},
month = {July}
}
@InProceedings{KTU90,
author = "A.J. Kfoury and J. Tiuryn and P. Urzyczyn",
title = "The undecidablity of the semi-unification problem",
booktitle = "Proceedings 22nd Annual ACM Symposium on Theory of Computation (STOC)",
address = "Baltimore, Maryland",
year = "1990",
pages = "468--476",
month = "May"
}
@InProceedings{He93,
author = "Fritz Henglein",
title = "Type Inference with {P}olymorphic {R}ecursion",
booktitle = {ACM Transactions on {P}rogramming {L}anguages and {S}ystems ({TOPLAS})},
pages = {253--289},
year = {1993},
volume = {15(2)},
month = {April}
}
@Article{LY98,
author = {Oukseh Lee and Kwangkeun Yi},
title = {Proofs {A}bout {A} {F}olklore {L}et-{P}olymorphic {T}ype {I}nference {A}lgorithm},
journal = {ACM Transactions on {P}rogramming {L}anguages and {S}ystems ({TOPLAS})},
year = {1998},
note = {to appear}
}
@Article{KTU93,
author = "A.J. Kfoury and J. Tiuryn and P. Urzyczyn",
title = "Type Reconstruction in the {P}resence of {P}olymorphic {R}ecursion",
journal = "ACM Transactions on Programming Languages and Systems",
year = "1993",
volume = "15",
number = "2",
month = "April"
}
@PhdThesis{We93,
author = {Andreas Weber},
title = {Type {S}ystems for {C}omputer {A}lgebra},
school = {University of T{\"u}bingen},
year = {1993}
}
@PhdThesis{Fr94,
author = {Tim Freeman},
title = {Refinement {T}ypes of {ML}},
school = {School of Compter Science, Carnegie Mellon University},
year = {1994}
}
@inproceedings{Mi84,
author = {John C. Mitchell},
title = {Coercion and type inference},
booktitle = {Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages},
year = {1984},
isbn = {0-89791-125-3},
pages = {175--185},
location = {Salt Lake City, Utah, United States},
publisher = {ACM Press},
}
@inproceedings{Re85,
author = {J C Reynolds},
title = {Three approaches to type structure},
booktitle = {Proc. of the international joint conference on theory and practice of software development (TAPSOFT) Berlin, March 25-29, 1985 on Mathematical foundations of software development, Vol. 1: Colloquium on trees in algebra and programming (CAAP'85)},
author = {Mirjam Gardner and Michael Gerbracht and Sabrina Schtopel},
title = {Projekt {DUALIS}fit {P}hase 2 {P}rozessdokumentation},
institution = {MG--consulting},
year = {2012},
note = {(in german)}}
}
@Article{MS08,
author = {Matt Steele},
title = {Simplify Single Sign-on Using ADFS},
journal = {TechNet Magazine},
year = {2008},
note = {{\tt http://\linebreak[1]technet.microsoft.com/\linebreak[1]de-de/\linebreak[1]magazine/2006.07.simplify\%28en-us\%29.aspx}, status 25th september 2013}
}
@Article{JB07,
author = {Jose Barreto},
title = {Integrating SharePoint with other portals and web applications},
journal = {Jose Barreto's Blog},
year = {2007},
note = {{\tt http://\linebreak[1]blogs.technet.com/\linebreak[1]b/\linebreak[1]josebda/\linebreak[1]archive/\linebreak[1]2007/\linebreak[1]04/\linebreak[1]05/\linebreak[1]integrating-sharepoint-with-other-portals-and-web-applications.aspx}, status 25th september 2013}