Exact recursive probabilistic programming
Recursive calls over recursive data are useful for generating probability distributions, and
probabilistic programming allows computations over these distributions to be expressed in a …
probabilistic programming allows computations over these distributions to be expressed in a …
Deriving Dependently-Typed OOP from First Principles
D Binder, I Skupin, T Süberkrüb… - Proceedings of the ACM …, 2024 - dl.acm.org
The expression problem describes how most types can easily be extended with new ways to
produce the type or new ways to consume the type, but not both. When abstract syntax trees …
produce the type or new ways to consume the type, but not both. When abstract syntax trees …
Dualizing generalized algebraic data types by matrix transposition
K Ostermann, J Jabs - … and Systems: 27th European Symposium on …, 2018 - Springer
We characterize the relation between generalized algebraic datatypes (GADTs) with pattern
matching on their constructors one hand, and generalized algebraic co-datatypes …
matching on their constructors one hand, and generalized algebraic co-datatypes …
Structural refinement types
D Binder, I Skupin, D Läwen, K Ostermann - Proceedings of the 7th ACM …, 2022 - dl.acm.org
Static types are a great form of lightweight static analysis. But sometimes a type like List is
too coarse–we would also like to work with its refinements like non-empty lists, or lists …
too coarse–we would also like to work with its refinements like non-empty lists, or lists …
Decomposition diversity with symmetric data and codata
D Binder, J Jabs, I Skupin, K Ostermann - Proceedings of the ACM on …, 2019 - dl.acm.org
The expression problem describes a fundamental trade-off in program design: Should a
program's primary decomposition be determined by the way its domain objects are …
program's primary decomposition be determined by the way its domain objects are …
Data-Codata Symmetry and its Interaction with Evaluation Order
D Binder, J Jabs, I Skupin, K Ostermann - arXiv preprint arXiv:2211.13004, 2022 - arxiv.org
Data types and codata types are, as the names suggest, often seen as duals of each other.
However, most programming languages do not support both of them in their full generality …
However, most programming languages do not support both of them in their full generality …
Introduction and elimination, left and right
K Ostermann, D Binder, I Skupin, T Süberkrüb… - Proceedings of the …, 2022 - dl.acm.org
Functional programming language design has been shaped by the framework of natural
deduction, in which language constructs are divided into introduction and elimination rules …
deduction, in which language constructs are divided into introduction and elimination rules …
Decomposition Without Regret
Programming languages are embracing both functional and object-oriented paradigms. A
key difference between the two paradigms is the way of achieving data abstraction. That is …
key difference between the two paradigms is the way of achieving data abstraction. That is …
Formal languages, formally and coinductively
D Traytel - Logical Methods in Computer Science, 2017 - lmcs.episciences.org
Traditionally, formal languages are defined as sets of words. More recently, the alternative
coalgebraic or coinductive representation as infinite tries, ie, prefix trees branching over the …
coalgebraic or coinductive representation as infinite tries, ie, prefix trees branching over the …
Programming with Symmetric Data and Codata Types
D Binder - 2024 - tobias-lib.ub.uni-tuebingen.de
The lambda calculus and algebraic data types are the two pillars on which the theory of
statically typed functional programming languages is built. The lambda calculus was …
statically typed functional programming languages is built. The lambda calculus was …