Programming Languages

Prof. Dr. Klaus Ostermann

Photo of Klaus Ostermann

Klaus Ostermann
Universität Tübingen
WSI - Programmiersprachen
Sand 13
72076 Tübingen
Germany

Telephone
+49 - (0) 70 71 - 29 - 75457
Telefax
+49 - (0) 70 71 - 29 - 50 82
E-Mail
klaus.ostermann(at)uni-tuebingen.de
Office
B217/218
Office hours
by appointment

Publications on Google Scholar

If you want to apply for an internship, PhD position etc., please read this.

If you want to do a thesis (Bsc, Msc, BEd, MEd etc.) in our group, please read this.

If you want to communicate with me securely, you can find my PGP key here.

Recent Community Service

POPL 2023 (PC), OOPSLA 2023 (PC), ECOOP 2022 (PC), FLOPS 2022 (PC), OOPSLA 2021 (PC), GPCE 2021 (PC), PLDI 2020 (PC), ECOOP 2020 (PC), ICFP 2019 (PC), POPL 2018 (PC), PLDI 2018 (EPC), ASE 2018 (PC), Scala 2018 (PC)

Past involvements can be found here.

I'm a member of IFIP WG 2.16 and 2.11

Research Interests

  • Functional Programming Languages
  • Design and Implementation of Programming Languages
  • Types and Modules
  • Software Development Tools
  • Progam Analysis and Transformation
  • Software Architecture und Patterns
  • Object-Oriented Programming

Publications

Back to Direct Style: Typed and Tight

by Marius Müller, Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2023.

Learn More

From Capabilities to Regions: Enabling Efficient Compilation of Lexical Effect Handlers

by Marius Müller, Philipp Schuster, Jonathan Lindegaard Starup, Klaus Ostermann, and Jonathan Immanuel Brachthäuser

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2023.

Learn More

A Typed Continuation-Passing Translation for Lexical Effect Handlers

by Philipp Schuster, Jonathan Immanuel Brachthäuser, Marius Müller, and Klaus Ostermann

In Proc. Conf. Programming Language Design and Implementation (PLDI), 2022.

Learn More

All About That Stack: A Unified Treatment of Regions and Control Effects

by Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann

Technical report. University of Tübingen, Germany, 2021.

Learn More

Decomposition Diversity with Symmetric Data and Codata

by Klaus Ostermann, Julian Jabs, David Binder, and Ingo Skupin

In Proceedings of Symposium on Principles of Programming Languages (POPL 2020), 2020.

Learn More

Effekt: Capability-Passing Style for Type- and Effect-Safe, Extensible Effect Handlers in Scala

by Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann

In Journal of Functional Programming 30: , 2020.

Learn More

Compiling Effect Handlers in Capability-Passing Style

by Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann

In Proc. Int’l Conf. Functional Programming (ICFP). ACM Press, 2020.

Learn More

Effekt: Lightweight Effect Polymorphism for Handlers (Technical Report)

by Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann

Technical report. University of Tübingen, Germany, 2020.

Learn More

Effects as Capabilities: Effect Handlers and Lightweight Effect Polymorphism

by Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2020.

Learn More

Zero-cost Effect Handlers by Staging (Technical Report)

by Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann

Technical report. University of Tübingen, Germany, 2019.

Learn More

Effect Handlers for the Masses

by Jonathan Brachthäuser, Philipp Schuster, and Klaus Ostermann

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2018.

Learn More

Dualizing Generalized Algebraic Data Types by Matrix Transposition

by Klaus Ostermann and Julian Jabs

In Proc. Europ. Symposium on Programming (ESOP). Lecture Notes in Computer Science, 2018.

Learn More

System F-Omega with Equirecursive Types for Datatype-Generic Programming

by Yufei Cai, Paolo G. Giarrusso, and Klaus Ostermann

In Proceedings of Symposium on Principles of Programming Languages (POPL 2016), pages 30–43, 2016.

Learn More

Parsing with First-Class Derivatives

by Jonathan Brachthäuser, Tillmann Rendel, and Klaus Ostermann

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2016.

Learn More

Automatic Refunctionalization to a Language with Copattern Matching: With Applications to the Expression Problem

by Tillmann Rendel, Julia Trieflinger, and Klaus Ostermann

In Proceedings of International Conference on Functional Programming, pages 269–279. ACM, 2015.

Learn More

A Theory of Changes for Higher-Order Languages — Incrementalizing λ-Calculi by Static Differentiation

by Yufei Cai, Paolo G. Giarrusso, Tillmann Rendel, and Klaus Ostermann

In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2014.

Learn More

Evolution of Software Systems with Extensible Languages and DSLs

by Sebastian Erdweg, Stefan Fehrenbach, and Klaus Ostermann

In IEEE Software 31(5): , 2014.

Learn More

Variability Mining: Consistent Semi-automatic Detection of Product-Line Features

by Christian Kästner, Alexander Dreiling, and Klaus Ostermann

In IEEE Trans. Software Eng. 40(1): , 2014.

Learn More

Projectional editing of variational software

by Eric Walkingshaw and Klaus Ostermann

In Generative Programming: Concepts and Experiences, GPCE’14, Vasteras, Sweden, September 15-16, 2014, pages 29–38, 2014.

Learn More

Layout-sensitive Generalized Parsing

by Sebastian Erdweg, Tillmann Rendel, Christian Kästner, and Klaus Ostermann

In Proceedings of Conference on Software Language Engineering (SLE). Springer-Verlag, 2013.

Learn More

Reify Your Collection Queries for Modularity and Speed!

by Paolo G. Giarrusso, Klaus Ostermann, Michael Eichberg, Ralf Mitschke, Tillmann Rendel, and Christian Kästner

In Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD), pages 1–12. ACM, 2013.

Learn More

Variability Mining: Consistent Semiautomatic Detection of Product-Line Features

by Christian Kästner, Alexander Dreiling, and Klaus Ostermann

In IEEE Transactions on Software Engineering, 2013.

Learn More

Software Evolution to Domain-Specific Languages

by Stefan Fehrenbach, Sebastian Erdweg, and Klaus Ostermann

In Proceedings of Conference on Software Language Engineering (SLE), 2013.

Learn More

Layout-sensitive Language Extensibility with SugarHaskell

by Sebastian Erdweg, Felix Rieger, Tillmann Rendel, and Klaus Ostermann

In Proceedings of Haskell Symposium. ACM Press, 2012.

Learn More

A Variability-Aware Module System

by Christian Kästner, Klaus Ostermann, and Sebastian Erdweg

Technical report 01/2012. Department of Mathematics and Computer Science, Philipps University Marburg, 2012.

Learn More

A Variability-Aware Module System

by Christian Kästner, Klaus Ostermann, and Sebastian Erdweg

In Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM Press, 2012.

Learn More

Toward Variability-Aware Testing

by Christian Kästner, Alexander von Rhein, Sebastian Erdweg, Jonas Pusch, Sven Apel, Tillmann Rendel, and Klaus Ostermann

In Proceedings of the Fourth Workshop on Feature-Oriented Software Development (FOSD), 2012.

Learn More

Partial Preprocessing C Code for Variability Analysis

by Christian Kästner, Paolo G. Giarrusso, and Klaus Ostermann

In Proceedings of the Fifth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS), pages 137–140. ACM, 2011.

Learn More

Revisiting Information Hiding: Reflections on Classical and Nonclassical Modularity

by Klaus Ostermann, Paolo G. Giarrusso, Christian Kästner, and Tillmann Rendel

In Proceedings of the 25th European Conference on Object-Oriented Programming (ECOOP) 6813: . Springer-Verlag, 2011.

Learn More

SugarJ: Library-Based Language Extensibility

by Sebastian Erdweg, Lennart C.L. Kats, Tillmann Rendel, Christian Kästner, Klaus Ostermann, and Eelco Visser

In Companion of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 187–188. ACM Press, 2011.

Learn More

Library-Based Model-Driven Software Development with SugarJ

by Sebastian Erdweg, Lennart C.L. Kats, Tillmann Rendel, Christian Kästner, Klaus Ostermann, and Eelco Visser

In Companion of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 17–18. ACM Press, 2011.

Learn More

Variability-Aware Parsing in the Presence of Lexical Macros and Conditional Compilation

by Christian Kästner, Paolo G. Giarrusso, Tillmann Rendel, Sebastian Erdweg, Klaus Ostermann, and Thorsten Berger

In Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 805–824. ACM Press, 2011.

Learn More

SugarJ: Library-based Syntactic Language Extensibility

by Sebastian Erdweg, Tillmann Rendel, Christian Kästner, and Klaus Ostermann

In Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 391–406. ACM Press, 2011.

Learn More

The Road to Feature Modularity?

by Christian Kästner, Sven Apel, and Klaus Ostermann

In Proceedings of the Third Workshop on Feature-Oriented Software Development (FOSD), pages 5:1–5:8. ACM Press, 2011.

Learn More

Growing a Language Environment with Editor Libraries

by Sebastian Erdweg, Lennart C. L. Kats, Tillmann Rendel, Christian Kästner, Klaus Ostermann, and Eelco Visser

In Proceedings of the 10th International Conference on Generative Programming and Component Engineering (GPCE), pages 167–176. ACM Press, 2011.

Learn More

Variability Mining with LEADT

by Christian Kästner, Alexander Dreiling, and Klaus Ostermann

Technical report 01/2011. Department of Mathematics and Computer Science, Philipps University Marburg, 2011.

Learn More

Reifying and Optimizing Collection Queries for Modularity

by Paolo G. Giarrusso, Klaus Ostermann, Michael Eichberg, Tillmann Rendel, and Christian Kästner

In Companion of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM Press, 2011.

Learn More

Testing object-oriented programs using dynamic aspects and non-determinism

by Michael Achenbach and Klaus Ostermann

In Workshop on Testing Object-Oriented Systems. ACM, 2010.

Learn More

Growing a dynamic aspect language in Ruby

by Michael Achenbach and Klaus Ostermann

In Workshop on Domain-Specific Aspect Languages (DSAL). ACM, 2010.

Learn More

Modular Logic Metaprogramming

by Karl Klose and Klaus Ostermann

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM, 2010.

Learn More

Modular Domain-Specific Language Components in Scala

by Christian Hofer and Klaus Ostermann

In Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE). ACM, 2010.

Learn More

Invertible Syntax Descriptions: Unifying Parsing and Pretty Printing

by Tillmann Rendel and Klaus Ostermann

In Proceedings of the 3th ACM SIGPLAN Haskell Symposium, pages 1–12. ACM, 2010.

Learn More

A Meta Aspect Protocol for Developing Dynamic Analyses

by Michael Achenbach and Klaus Ostermann

In Proceedings of the Runtime Verification Conference, 2010.

Learn More

Detecting Dependences and Interactions in Feature-Oriented Design

by Sven Apel, Wolfgang Scholz, Christian Lengauer, and Christian Kästner

In Proceedings of the 21st IEEE International Symposium on Software Reliability Engineering (ISSRE), pages 161–170. IEEE Computer Society, 2010.

Learn More

Featherweight TeX and Parser Correctness

by Sebastian Thore Erdweg and Klaus Ostermann

In Proceedings of International Conference on Software Language Engineering (SLE) 6563: . Springer, 2010.

Learn More

Typed Self-Representation

by Tillmann Rendel, Klaus Ostermann, and Christian Hofer

In Proc. Conf. Programming Language Design and Implementation (PLDI), 2009.

Learn More

A Classification Framework for Pointcut Languages in Runtime Monitoring

by Karl Klose and Klaus Ostermann

In International Conference on Objects, Models, Components, Patterns (TOOLS-Europe’09), 2009.

Learn More

Engineering Abstractions in Model Checking and Testing

by Michael Achenbach and Klaus Ostermann

In Ninth IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM’09), 2009.

Learn More

Nominal and Structural Subtyping in Component-Based Programming

by Klaus Ostermann

In Journal of Object Technology 7(1): , 2008.

Learn More

Reasoning about Aspects With Common Sense

by Klaus Ostermann

In Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD). ACM Press, 2008.

Learn More

Polymorphic Embedding of DSLs

by Christian Hofer, Klaus Ostermann, Tillmann Rendel, and Adriaan Moors

In Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE). ACM, 2008.

Learn More

Automatic Incrementalization of Prolog based Static Analyses

by Michael Eichberg, Matthias Kahl, Diptikalyan Saha, Mira Mezini, and Klaus Ostermann

In Proceedings of Practical Aspects of Declarative Languages, 9th International Symposium (PADL), pages 109–123. Springer-Verlag Heidelberg, 2007.

Learn More

Partial Evaluation of Pointcuts

by Karl Klose, Klaus Ostermann, and Michael Leuschel

In Proceedings of Practical Aspects of Declarative Languages, 9th International Symposium (PADL). Springer-Verlag Heidelberg, 2007.

Learn More

Aspects and Modular Reasoning in Nonmonotonic Logic

by Klaus Ostermann

In Workshop on Foundations of Aspect-Oriented Languages (FOAL’07), Vancouver, Canada, 2007.

Learn More

On the relation of aspects and monads

by Christian Hofer and Klaus Ostermann

In Workshop on Foundations of Aspect-Oriented Languages (FOAL’07), Vancouver, Canada, 2007.

Learn More

Clustering for Generating Framework Top-Level Views

by Thorsten Schäfer, Ivica Aracic, Matthias Merz, Mira Mezini, and Klaus Ostermann

In Proceedings of 14th Conference on Reverse Engineering (WCRE’07). IEEE Computer Society Press, 2007.

Learn More

Dependent Classes

by Vaidas Gasiunas, Mira Mezini, and Klaus Ostermann

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2007.

Learn More

A virtual class calculus

by Erik Ernst, Klaus Ostermann, and William R. Cook

In ACM SIGPLAN-SIGSOFT Symposium on Principles of Programming Languages (POPL’06), ACM SIGPLAN Not. 41(1): . ACM, 2006.

Learn More

Overview of CaesarJ

by Ivica Aracic, Vaidas Gasiunas, Mira Mezini, and Klaus Ostermann

In Transactions on AOSD I, LNCS 3880: . Springer, 2006.

Learn More

Integrating and Scheduling an Open Set of Static Analyses

by Michael Eichberg, Mira Mezini, Sven Kloppenburg, Klaus Ostermann, and Benjamin Rank

In Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE CS, 2006.

Learn More

Software Extension and Integration with Type Classes

by Ralf Lämmel and Klaus Ostermann

In ACM Conference on Generative Programming and Component Engineering (GPCE’06). ACM, 2006.

Learn More

Back to the Future: Pointcuts as Predicates over Traces

by Karl Klose and Klaus Ostermann

In Workshop on Foundations of Aspect-Oriented Languages (FOAL’05), Chicago, USA, 2005.

Learn More

Expressive Pointcuts for Increased Modularity

by Klaus Ostermann, Mira Mezini, and Christoph Bockisch

In Proceedings of the European Conference on Object-Oriented Programming (ECOOP) 3586: . Springer-Verlag, 2005.

Learn More

Aspektorientierte Softwareentwicklung mit CaesarJ

by Iris Groher, Vaidas Gasiunas, Christa Schwanninger, and Klaus Ostermann

In Java Spektrum Dec 2005, 2005.

Learn More

A Comparison of Program Generation with Aspect-Oriented Programming

by Mira Mezini and Klaus Ostermann

In Proceedings of the EU-NSF Strategic Research Workshop on Unconventional Programming Paradigms. Springer Verlag, LNCS 3566, 2005.

Learn More

Virtual machine support for dynamic join points.

by Christoph Bockisch, Michael Haupt, Mira Mezini, and Klaus Ostermann

In Conference on Aspect-Oriented Software Development, pages 83–92, 2004.

Learn More

Simple Dependent Types: Concord

by Paul Jolly, Sophia Drossopoulou, Christopher Anderson, and Klaus Ostermann

In Workshop on Formal Techniques for Java-like Programs at ECOOP 2004, 2004.

Learn More

Bessere Software durch Querschneidende Module

by Klaus Ostermann

In Ausgezeichnete Informatikdissertationen 2004, 2004.

Learn More

XIRC: A Kernel for Cross-Artifact Information Engineering in Software Development Environments

by Michael Eichberg, Mira Mezini, Klaus Ostermann, and Thorsten Schäfer

In Eleventh Working Conference on Reverse Engineering, pages 182–191. IEEE Computer Society, 2004.

Learn More

Variability Management with Feature-Oriented Programming and Aspects

by Mira Mezini and Klaus Ostermann

In Foundations of Software Engineering (FSE-12). ACM SIGSOFT, 2004.

Learn More

Pointcuts as Functional Queries

by Michael Eichberg, Mira Mezini, and Klaus Ostermann

In Programming Languages and Systems: Second Asian Symposium, APLAS 2004, pages 366–382. Springer-Verlag Heidelberg, 2004.

Learn More

Untangling Crosscutting Models with Caesar

by Mira Mezini and Klaus Ostermann

In Aspect-Oriented Software Development. Addison-Wesley, 2004.

Learn More

Modules for Crosscutting Models

by Mira Mezini and Klaus Ostermann

In Invited Paper at 8th International Conference on Reliable Software Technologies 2655. Springer, 2003.

Learn More

Modules for Hierarchical and Crosscutting Models

by Klaus Ostermann

PhD thesis. Technische Universität Darmstadt, Dep. of Computer Science, 2003.

Learn More

On Aspectualizing Component Models

by R. Pichler, Klaus Ostermann, and Mira Mezini

In Software Practice and Experience 33(10): , 2003.

Learn More

Dynamically Composable Collaborations with Delegation Layers

by Klaus Ostermann

In Proceedings of the 16th European Conference on Object-Oriented Programming (ECOOP), Malaga, Spain 2374: . Springer-Verlag, 2002.

Learn More

Integrating Independent Components with On-Demand Remodularization

by Mira Mezini and Klaus Ostermann

In Proceedings of OOPSLA ’02, Sigplan Notices, 37 (11), pages 52–67, 2002.

Learn More

Conquering Aspects with Caesar

by Mira Mezini and Klaus Ostermann

In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD), pages 90–100. ACM, 2002.

Learn More

Joint efforts to dispel an approaching modularity crisis

by Stephan Herrmann, Mira Mezini, and Klaus Ostermann

In Sixth International Workshop on Component-Oriented Programming (WCOP), 2001.

Learn More

Object-Oriented Composition is Tangled

by Klaus Ostermann and Mira Mezini

In Workshop on Advanced Separation of Concerns at ECOOP, 2001.

Learn More

Object-Oriented Composition Untangled

by Klaus Ostermann and Mira Mezini

In Proceedings of ACM 16th Annual Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA ’01) 36(10), 2001.

Learn More

Implementing Reusable Collaborations with Delegation Layers

by Klaus Ostermann and Mira Mezini

In First Workshop on Language Mechanisms for Programming Software Components at OOPSLA, 2001.

Learn More

Independent Extensibility - an open challenge for AspectJ and Hyper/J

by Klaus Ostermann and Günter Kniesel

In Workshop on Aspects and Dimensions of Concern at ECOOP, 2000.

Learn More

Supporting Extension of Components with new Paradigms

by Lutz Dominick and Klaus Ostermann

In Workshop on Advanced Separation of Concerns at OOPSLA, 2000.

Learn More

Open Thesis Topics

Porting PyGame to Racket

PyGame is a popular library for game development in Python. The purpose of this thesis is to port PyGame to Racket and, more specifically, to the BSL and ISL teaching languages in Racket. However, the task is not just to port the library (with adequate performance); rather, it should be ported in such a way that it fits to the functional programming style emphasized by our Informatik 1 lectures (e.g. by adapting it to the “universe teachpack” style of interactive programming). If this thesis is successful, we plan to consider its use for the Tübingen Informatik 1 lecture.

Further Information

Read more ...

Internalizing the sequent calculus dualities

Gentzen’s sequent calculus is a foundation of modern logic and, more recently, programming language design. It is known for being more symmetric than natural deduction, a deduction calculus that is biased on proofs and truth, whereas sequent calculus does symmetrically support proofs/truth and refutations/falsity.

Read more ...

Implementing the Knuth/Plass line breaking algorithm in Haskell

Your job is to re-implement the Knuth-Plass line breaking algorithm, which is used in the TeX and LaTeX text processing systems, in Haskell. To this end, we use an existing library for DVI files, which already contains a simple line breaking algorithm. An optional goal of this thesis is to write the thesis report using the code developed in this thesis.

Further Information

Read more ...

Refactoring Macros

Macros are code transformers, but the result of these transformations is usually not intended to be seen, let alone edited, by the programmer. In this Msc thesis we want to explore the usage of macros as user-extensible refactoring tools, such as “extract function” or “convert to CPS”. Practically, we envision an IDE integration where programmers can select a block of code and then select a macro that will transform the selected block of code, which then gets replaced by the result of the macro invocation. We plan to implement refactoring macros on top of the Racket language and the DrRacket IDE.

Read more ...

Static Typing for Snap!

Snap! is an educational visual programming language in the tradition of Scratch, but extended with features for abstraction, such as higher-order functions and user-defined data types. The purpose of this thesis is to add a static type system with type inference to Snap, in the style of Hindley-Milner type systems – the backbone of static typing in functional programming. The main challenge of this thesis, beyond implementing the type system, is to design visual metaphors for static typing that fit to the pedagogy of Snap and adapt the type Hindley-Milner system to the particular features offered by Snap!.

Read more ...

Web-basierte Visualisierung mittelalterlicher Musiknotation

MEI (Music Encoding Initiative) hat sich inzwischen als Format zur Musik-Codierung in der musikwissenschaftlichen Forschung etabliert. Es deckt neben der gebräuchlichen Musiknotation (Common Western Music Notation) auch Notationsformen älterer Musik (z.B. die sogenannten Neumen des Gregorianischen Chorals) ab. Das MEI Neumes Module wurde in Zusammenarbeit zwischen dem WSI und dem Musikwissenschaftlichen Institut Tübingen im Projekt Tübingen entwickelt. Eine Diplomarbeit am WSI (Gregor Schräder) entwickelte als web-basiertes Visualiertungstool den MEI Neumes Viewer. In der Arbeit soll die bisherige im MEI Neumes-Viewer verwendete “Eierkohlen”-Notation um weitere mittelalterliche Notationen (Neumennotation, Quadratnotation) erweitert werden. Als Vorbild könnte der Open-Source TeX-Dialekt Gregorio dienen.

Read more ...

Grafischer Eingabe-Editor für MEI-Neumes

MEI (Music Encoding Initiative) hat sich inzwischen als Format zur Musik-Codierung in der musikwissenschaftlichen Forschung etabliert. Es deckt neben der gebräuchlichen Musiknotation (Common Western Music Notation) auch Notationsformen älterer Musik (z.B. die sogenannten Neumen des Gregorianischen Chorals) ab. Das MEI Neumes Module wurde in Zusammenarbeit zwischen dem WSI und dem Musikwissenschaftlichen Institut Tübingen im Projekt TüBingen entwickelt.

Read more ...

Probabilistic Programming for Algorithmic Trading

Probabilistic programming is often advertized as “democratizing machine learning”, because it provides a very simple but expressive model of statistical inference. The purpose of this thesis is to validate that claim by applying it to algorithmic trading of securities. More specifically, we want to apply it for “auto-tuning” of parameters for trading strategies. In the thesis, no actual trading will take place, but we will evaluate the approach with historical ticker data.

Read more ...

Contract inference for relationally parametric polymorphic contracts

Guha et al have developed a way to specify relationally parametric polymorphism in contracts and check conformance at runtime. These ideas were realized in the Racket programming language. Currently, the utility of parametric contracts is limited due to the fact that parametric contracts must be instantiated explicitly in many circumstances; implicit instantiation only works for primitive types.

Read more ...

Embedded Probabilistic Programming with Continuous Variable Distributions

Probabilistic programming languages are programming languages which have special support to describe probabilistic models, and then perform inference in these models. They are attractive because they unify the expressive power of a general-purpose programming language with probabilistic modeling and reasoning.

Read more ...

DSLs for Machine Learning

We are collaborating with Christopher Ré from Stanford University to improve the interface to the DeepDive machine learning system. More specifically, we aim to phrase the interface to DeepDive as an embedded domain-specific language with the eventual goal to integrate machine learning so closely and seamlessly into ordinary programs that it is as simple to define a function or data structure via machine learning than to define a function via ordinary programming. The goal of this thesis is to to make the first steps towards that goal. Concretely, the first step would consist in embedding DeepDive into a statically typed programming language such as Scala.

Read more ...

Assigned Thesis Topics

Implementing a Monadic Testsuite Driver

Ordinary wisdom says that the individual tests in a testsuite should be independent of each other. That is, each test should be able to run independently of any other test, and in any order. This independence allows the testsuite driver to execute tests in parallel and easily summarize the results using a tests passed / tests failed metric.

Read more ...

Highcharts for Scala

Highcharts is a Javascript library for visualizing data. The purpose of this thesis is to develop an adapter of Highcharts for Scala, such that data in the Scala runtime can be visualized with the same ease as with dedicated data science languages such as Mathlab or R.

Read more ...

Finished Thesis Topics

Software-supported piano practice

Pianists perform a variety of exercises to improve the evenness and precision of their playing, including scales, arpeggios, and octaves. The purpose of this thesis is to develop an application that supports pianists in two ways: 1) Training the ear to identify uneven scales, arpeggios etc., and 2) Analyze the exercises of the pianist to identify flaws in the execution of the exercises.

Read more ...

Transformation von Präprozessorvarianz auf Laufzeitvarianz

Das Ziel dieser Arbeit ist, eine Softwareproduktlinie der Firma Bosch, die mit C und CPP realisiert wurde, so zu transformieren, dass die Compile-Zeit Variabilität von CPP ersetzt wird durch Laufzeitvariabilität.

Read more ...

Recording student progress in DrRacket

The purpose of this thesis is to develop a plug-in for the DrRacket development environment that will monitor and log the activity of students. The (appropriately anonymized) collected data will then be used for the scientific evaluation of how beginning programmers work. The main focus of this work is on collecting and representing the developer activity in such a way that interesting analyses can be defined on top of it.

Read more ...

Entwicklung eines Systems zur Suche von DIY-Projektbeschreibungen mit Bildern und Fotos

Das im Rahmen des “Tübinger Softwareprojekts” entwickelte System für Schritt für Schritt Anleitungen soll in dieser Bachelor-Arbeit um eine neuartige Such-Funktionalität erweitert werden. Wir gehen in Zukunft davon aus, dass Nutzer Projektbeschreibungen nicht mehr durch Texteingabe suchen, sondern eher nach Fotos oder Bildern im Internet. Ein Ansatz zur Implementierung der Funktionalität besteht darin, zuerst das Bild zu Verschlagworten und die so erhaltenen Schlagwörter dann als Eingabe einer „klassischen“ Suchmaschine zu verwenden. Hierzu gibt es bereits verschiedene Technologien. Die Aufgabe der Bachelor-Arbeit ist es nun, die vorhandenen Technologien zu identifizieren, zu analysieren und geeignete Technologien auszuwählen. Auf Basis von zu entwickelnden System- und Interaktionskonzepten soll die Implementierung bzw. Systemintegration erfolgen. Ziel ist die prototypische Darstellung einer Suche nach einer DIY-Projektbeschreibung mithilfe eines gemachten Fotos.

Read more ...

Assistenz-Funktionalität für Schritt für Schritt Anleitungen

Das im Rahmen des “Tübinger Softwareprojekts” entwickelte System für Schritt für Schritt Anleitunge soll in dieser Bachelor-Arbeit um eine Assistenz-Funktionalität erweitert werden. Im Allgemeinen sind Assistenten wie beispielsweise Apple Siri oder Microsoft Cortana hinreichend bekannt. Die Herausforderungen bei diesen Assistenten liegen in der Modellierung der Domäne und in der Bereitstellung des Domänenwissens. Zusätzlich muss der Assistent per API in das System eingebunden werden.

Read more ...

Automatic locality-friendly array interface extension of numerical functions through C++ template metaprogramming

Numerical functions often need be invoked on views of vectors or matrixes, derived by selecting some elements or by pre-transforming them. For instance, one might want to prescale matrix elements before applying an existing FFT algorithm on them. Often this must be done by copying the elements to a separate array, and then invoking the original FFT algorithm, but this procedure is not efficient because it uses additional space and therefore has higher impact on data caches.

Read more ...

News

Paper accepted for publication at OOPSLA 2020

Our paper “Effects as Capabilities: Effect Handlers and Lightweight Effect Polymorphism” (Jonathan Brachthäuser
Alumni
Jonathan Immanuel Brachthäuser
, Philipp Schuster
Alumni
Philipp Schuster
and Klaus Ostermann
Head
Klaus Ostermann
) has been accepted for publication at the International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA, 2020).

Read more ...

Presentation at ICFP 2020

Philipp Schuster
Alumni
Philipp Schuster
presents the paper Compiling Effect Handlers in Capability-Passing Style at the International Conference on Functional Programming (ICFP) 2020 virtual event.

Read more ...

Paper accepted for publication in the Journal of Functional Programming

Our paper “Effekt: Capability-Passing Style for Type- and Effect-Safe, Extensible Effect Handlers in Scala” (Jonathan Brachthäuser
Alumni
Jonathan Immanuel Brachthäuser
, Philipp Schuster
Alumni
Philipp Schuster
and Klaus Ostermann
Head
Klaus Ostermann
) has been accepted for been accepted for publication in the Journal of Functional Programming (JFP).

Read more ...

Presentation at the Symposium on Principles of Programming Languages 2020

Ingo Skupin
Researcher
Ingo Skupin
presents the paper Decomposition Diversity with Symmetric Data and Codata at the Symposium on Principles of Programming Languages in New Orleans (USA).

Read more ...

Paper Award at GPCE 2018

At GPCE 2018, we have been awarded a “Most Influential Paper Award” for our 2008 GPCE paper on “Polymorphic Embedding of DSLs” by Hofer, Ostermann, Rendel, and Moors.

Read more ...

Presentation at OOPSLA 2018

Jonathan Brachthäuser
Alumni
Jonathan Immanuel Brachthäuser
presents the paper Effect Handlers for the Masses at the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) in Boston, MA, USA.

Read more ...

Guest Lecture by Philipp Gerhard (iPoint-systems gmbh)

Philipp Gerhard, Software Developer at iPoint-systems gmbh will give an invited guest lecture in Software Engineering and talk about Test Driven Development and Continuous Integration.

Read more ...

Open PhD Student Position, Career Changers Welcome

We have an open position for a PhD student in our group, to be filled immediately.

Read more ...

Guest Lecture by Heiko Hütter (DAASI International)

Heiko Hütter, Project Manager and Scrum expert at DAASI International will talk about Challenges and best practices in multi-project and multi-product setups using Scrum.

Read more ...

Guest Lecture by Amra Avdic (Novatec GmbH)

Amra Avdic, Senior Consultant at Novatec GmbH, will talk about Requirements Engineering and agile Methods.

Read more ...

Industry project fair

Students present their finished projects and our industry partners present project proposals for the next iteration of “Das Tübinger Softwareprojekt”, an industry-acedemia collaboration with the goal of letting students experience a real software project as a programmer during their undergraduate studys, or as a team leader during their graduate studies.

Read more ...

Dubai 100

Our TSP Team “Rehality” was granted to join “Dubai 100”. Starting on 13th of January 2017 they will participate in a intensive 100-day programme designed to accelerate the growth of early-stage startups. Only 10 Teams where given this great opportunity.

Read more ...

Paper accepted at OOPSLA

Our paper “Parsing with First-Class Derivatives” (Jonathan Brachthäuser
Alumni
Jonathan Immanuel Brachthäuser
, Tillmann Rendel
Alumni
Tillmann Rendel
and Klaus Ostermann
Head
Klaus Ostermann
) has been accepted for presentation at the annual conference of Object-oriented Programming, Systems, Languages, and Applications (OOPSLA).

Read more ...

Industry project fair

Students present their finished projects and our industry partners present project proposals for the next iteration of “Das Tübinger Softwareprojekt”, an industry-acedemia collaboration with the goal of letting students experience a real software project as a programmer during their undergraduate studys, or as a team leader during their graduate studies.

Read more ...

School project supported by Vector Stiftung

We are happy to announce that the Vector Stiftung is supporting our project “Denken verstehen lernen”, where we aim to develop and try out a “Computational Thinking” curriculum for elementary schools.

Read more ...

Preprint for POPL paper online

The preprint for our paper on equirecursive types in System Fω, with title “System Fω with Equirecursive Types for Datatype-generic Programming”, is now available online.

Read more ...

Paper accepted at POPL

Our paper on equirecursive types in System Fω, with title “System Fω with Equirecursive Types for Datatype-generic Programming”, has been accepted for presentation at the annual Symposium on Principles of Programming Languages.

Read more ...

Paper accepted at ICFP

Our paper on automatic refunctionalization for a language with copattern matching has been accepted for presentation at the International Conference on Functional Programming.

Read more ...

Software Engineering Project Fair @ PS

Meet us for the software engineering project fair, in which our industry partners present their proposal for this year’s software project offers.

Read more ...

Jugend forscht Reviewing

This year, Klaus Ostermann
Head
Klaus Ostermann
is a reviewer at the state-wide Jugend forscht competition in Baden-Württemberg. We are looking forward to some exciting innovations by junior researchers!

Read more ...

Community Involvement

Klaus Ostermann
Head
Klaus Ostermann
was invited to participate in the following international venues:

Read more ...

Dagstuhl Seminar on Domain-Specific Languages

Klaus Ostermann
Head
Klaus Ostermann
and Tillmann Rendel
Alumni
Tillmann Rendel
attend the Dagstuhl-Seminar on Domain-Specific Languages from February 1 to 6, 2015. Several participants are interested in language design patterns, and Tillmann Rendel
Alumni
Tillmann Rendel
co-organizes a breakout group on the topic with Ulrik Pagh Schultz and Eric Walkingshaw.

Read more ...

Move to Tübingen

Prof. Klaus Ostermann
Head
Klaus Ostermann
and part of his group move to Tübingen University, where Prof. Ostermann now holds the chair of programming languages and software technology.

Read more ...