VLDB 2026 Research / reviewers in the wild / expert
Martin Sulzmann
dblp:94/756
· DBLP profile ↗
44ranked-venue papers
22as first author
5since 2021 · last 2023
0000-0002-8165-3403ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 34 · 14 first-author · 4 since 2021Theory of computation · 15 · 11 first-author · 1 since 2021Artificial intelligence and machine learning · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | A type-directed, dictionary-passing translation of method overloading and structural subtyping in Featherweight Generic GoabstractAbstract Featherweight Generic Go (FGG) is a minimal core calculus modeling the essential features of the programming language Go. It includes support for overloaded methods, interface types, structural subtyping, and generics. The most straightforward semantic description of the dynamic behavior of FGG programs is to resolve method calls based on runtime type information of the receiver. This article shows a different approach by defining a type-directed translation from ${\textrm{FGG}^{-}}$ to an untyped lambda-calculus. ${\textrm{FGG}^{-}}$ includes all features of FGG but type assertions. The translation of an ${\textrm{FGG}^{-}}$ program provides evidence for the availability of methods as additional dictionary parameters, similar to the dictionary-passing approach known from Haskell type classes. Then, method calls can be resolved by a simple lookup of the method definition in the dictionary. Every program in the image of the translation has the same dynamic semantics as its source ${\textrm{FGG}^{-}}$ program. The proof of this result is based on a syntactic, step-indexed logical relation. The step index ensures a well-founded definition of the relation in the presence of recursive interface types and recursive methods. Although being non-deterministic, the translation is coherent. Martin Sulzmann, Stefan Wehr |
J. Funct. Program. | 1 |
| 2022 | Semantic Preservation for a Type Directed Translation Scheme of Featherweight Go
Martin Sulzmann, Stefan Wehr |
MPC | 1 |
| 2022 | Special issue on revised and extended versions of papers presented at the 22nd Brazilian Symposium on Programming Languages (SBLP 2018)
Carlos Camarão 0001, Martin Sulzmann |
Sci. Comput. Program. | 2 |
| 2021 | A Dictionary-Passing Translation of Featherweight Go
Martin Sulzmann, Stefan Wehr |
APLAS | 1 |
| 2021 | Preface
John P. Gallagher, Martin Sulzmann |
Sci. Comput. Program. | 2 |
| 2020 | Efficient, near complete, and often sound hybrid dynamic data race predictionabstractDynamic data race prediction aims to identify races based on a single program run represented by a trace. The challenge is to remain efficient while being as sound and as complete as possible. Efficient means a linear run-time as otherwise the method unlikely scales for real-world programs. We introduce an efficient, near complete and often sound dynamic data race prediction method that combines the lockset method with several improvements made in the area of happens-before methods. By near complete we mean that the method is complete in theory but for efficiency reasons the implementation applies some optimizations that may result in incompleteness. The method can be shown to be sound for two threads but is unsound in general. Experiments show that our method works well in practice. Martin Sulzmann, Kai Stadtmüller |
MPLR | 1 |
| 2019 | Solving of Regular Equations Revisited
Martin Sulzmann, Kenny Zhuo Ming Lu |
ICTAC | 1 |
| 2019 | Predicting all data race pairs for a specific scheduleabstractWe consider the problem of data race prediction where the program's behavior is represented by a trace. A trace is a sequence of program events recorded during the execution of the program. We employ the schedulable happens-before relation to characterize all pairs of events that are in a race for the schedule as manifested in the trace. Compared to the classic happens-before relation, the schedulable happens-before relations properly takes care of write-read dependencies and thus avoids false positives. The challenge is to efficiently identify all (schedulable) data race pairs. We present a refined linear time vector clock algorithm to predict many of the schedulable data race pairs. We introduce a quadratic time post-processing algorithm to predict all remaining data race pairs. This improves the state of the art in the area and our experiments show that our approach scales to real-world examples. Thus, the user can systematically examine and fix all program locations that are in a race for a particular schedule. Martin Sulzmann, Kai Stadtmüller |
MPLR | 1 |
| 2019 | Derivatives and partial derivatives for regular shuffle expressions
Martin Sulzmann, Peter Thiemann 0001 |
J. Comput. Syst. Sci. | 1 |
| 2018 | LTL Semantic Tableaux and Alternating \omega ω -automata via Linear Factors
Martin Sulzmann, Peter Thiemann 0001 |
ICTAC | 1 |
| 2018 | Two-Phase Dynamic Analysis of Message-Passing Go Programs Based on Vector ClocksabstractUnderstanding the runtime behavior of concurrent programs is a challenging task. A popular approach is to establish a happens-before relation via vector clocks. Thus, we can identify bugs and performance bottlenecks, for example, by checking if two conflicting events may happen concurrently. We employ a two-phase method to derive vector clock information for a wide range of concurrency features that includes all of the message-passing features in Go. The first phase (instrumentation and tracing) yields a runtime trace that records all events related to message-passing concurrency that took place. The second phase (trace replay) is carried out of fline and replays the recorded traces to infer vector clock information. Trace replay operates on thread-local traces. Thus, we can observe behavior that might result from some alternative schedule. Our approach is not tied to any specific language. We have built a prototype for the Go programming language and provide empirical evidence of the usefulness of our method. Martin Sulzmann, Kai Stadtmüller |
PPDP | 1 |
| 2017 | A Computational Interpretation of Context-Free Expressions
Martin Sulzmann, Peter Thiemann 0001 |
APLAS | 1 |
| 2016 | Static Trace-Based Deadlock Analysis for Synchronous Mini-Go
Kai Stadtmüller, Martin Sulzmann, Peter Thiemann 0001 |
APLAS | 2 |
| 2016 | Forkable Regular Expressions
Martin Sulzmann, Peter Thiemann 0001 |
LATA | 1 |
| 2016 | Derivative-Based Diagnosis of Regular Expression Ambiguity
Martin Sulzmann, Kenny Zhuo Ming Lu |
CIAA | 1 |
| 2015 | Derivatives for Regular Shuffle Expressions
Martin Sulzmann, Peter Thiemann 0001 |
LATA | 1 |
| 2015 | From \omega -Regular Expressions to Büchi Automata via Partial Derivatives
Peter Thiemann 0001, Martin Sulzmann |
LATA | 2 |
| 2014 | A Flexible and Efficient ML Lexer Tool Based on Extended Regular Expression Submatching
Martin Sulzmann, Pippijn van Steenhoven |
CC | 1 |
| 2014 | On Termination, Confluence and Consistent CHR-based Type InferenceabstractAbstract We consider the application of Constraint Handling Rules (CHR) for the specification of type inference systems, such as that used by Haskell. Confluence of CHR guarantees that the answer provided by type inference is correct and consistent. The standard method for establishing confluence relies on an assumption that the CHR program is terminating. However, many examples in practice give rise to non-terminating CHR programs, rendering this method inapplicable. Despite no guarantee of termination or confluence, the Glasgow Haskell Compiler (GHC) supports options that allow the user to proceed with type inference anyway, e.g. via the use of theUndecidableInstancesflag. In this paper we formally identify and verify a set of relaxed criteria, namelyrange-restrictedness,local confluence, andground termination, that ensure the consistency of CHR-based type inference that maps to potentially non-terminating CHR programs. Gregory J. Duck, Rémy Haemmerlé, Martin Sulzmann |
Theory Pract. Log. Program. | 3 |
| 2013 | Traceability and evidence of correctness of EDSL abstractionsabstractOne of the main advantages of an EDSL (embedded domain-specific language) is that new abstractions can be coded quickly and easily in the EDSL's host language and are automatically transformed to the basic EDSL primitives. In the context of formal software certification, it is paramount that evidence for the correctness of these abstractions are provided and that the low-level code resulting from the EDSL primitives can be traced to some higher-level artifacts, i.e. some concrete programming abstractions, software requirements etc. We have built an EDSL-based tool-chain for implementing and testing mission critical applications which supports measures to guarantee traceability and provides evidence of correctness of EDSL abstractions. We give an overview of our EDSL approach and practical experiences applying them in the industrial context. Martin Sulzmann, Jürgen Nicklisch-Franken, Axel Zechner |
PEPM | 1 |
| 2012 | Regular expression sub-matching using partial derivativesabstractRegular expression sub-matching is the problem of finding for each sub-part of a regular expression a matching sub-string. Prior work applies Thompson and Glushkov NFA methods for the construction of the matching automata. We propose the novel use of derivatives and partial derivatives for regular expression sub-matching. Our benchmarking results show that the run-time performance is promising and that our approach can be applied in practice. Martin Sulzmann, Kenny Zhuo Ming Lu |
PPDP | 1 |
| 2011 | OutsideIn(X) Modular type inference with local assumptionsabstractAbstract Advanced type system features, such as GADTs, type classes and type families, have proven to be invaluable language extensions for ensuring data invariants and program correctness. Unfortunately, they pose a tough problem for type inference when they are used as local type assumptions. Local type assumptions often result in the lack of principal types and cast the generalisation of local let-bindings prohibitively difficult to implement and specify. User-declared axioms only make this situation worse. In this paper, we explain the problems and – perhaps controversially – argue for abandoning local let-binding generalisation. We give empirical results that local let generalisation is only sporadically used by Haskell programmers. Moving on, we present a novel constraint-based type inference approach for local type assumptions. Our system, called OutsideIn(X) , is parameterised over the particular underlying constraint domain X, in the same way as HM(X). This stratification allows us to use a common metatheory and inference algorithm. OutsideIn(X) extends the constraints of X by introducing implication constraints on top. We describe the strategy for solving these implication constraints, which, in turn, relies on a constraint solver for X. We characterise the properties of the constraint solver for X so that the resulting algorithm only accepts programs with principal types, even when the type system specification accepts programs that do not enjoy principal types. Going beyond the general framework, we give a particular constraint solver for X = type classes + GADTs + type families, a non-trivial challenge in its own right. This constraint solver has been implemented and distributed as part of GHC 7. Dimitrios Vytiniotis, Simon L. Peyton Jones, Tom Schrijvers, Martin Sulzmann |
J. Funct. Program. | 4 |
| 2011 | Concurrent goal-based execution of Constraint Handling RulesabstractAbstract We introduce a systematic, concurrent execution scheme for Constraint Handling Rules (CHR) based on a previously proposed sequential goal-based CHR semantics. We establish strong correspondence results to the abstract CHR semantics, thus guaranteeing that any answer in the concurrent, goal-based CHR semantics is reproducible in the abstract CHR semantics. Our work provides the foundation to obtain efficient, parallel CHR execution schemes. Edmund Soon Lee Lam, Martin Sulzmann |
Theory Pract. Log. Program. | 2 |
| 2009 | Complete and decidable type inference for GADTsabstractGADTs have proven to be an invaluable language extension, for ensuring data invariants and program correctness among others. Unfortunately, they pose a tough problem for type inference: we lose the principal-type property, which is necessary for modular type inference. Tom Schrijvers, Simon L. Peyton Jones, Martin Sulzmann, Dimitrios Vytiniotis |
ICFP | 3 |
| 2008 | Actors with Multi-headed Message Receive Patterns
Martin Sulzmann, Edmund Soon Lee Lam, Peter Van Weert |
COORDINATION | 1 |
| 2008 | Type checking with open type functionsabstractWe report on an extension of Haskell with open type-level functions and equality constraints that unifies earlier work on GADTs, functional dependencies, and associated types. The contribution of the paper is that we identify and characterise the key technical challenge of entailment checking; and we give a novel, decidable, sound, and complete algorithm to solve it, together with some practically-important variants. Our system is implemented in GHC, and is already in active use. Tom Schrijvers, Simon L. Peyton Jones, Manuel M. T. Chakravarty, Martin Sulzmann |
ICFP | 4 |
| 2008 | Transactions in Constraint Handling Rules
Tom Schrijvers, Martin Sulzmann |
ICLP | 2 |
| 2008 | Parallel execution of multi-set constraint rewrite rulesabstractMulti-set constraint rewriting allows for a highly parallel computational model and has been used in a multitude of application domains such as constraint solving, agent specification etc. Rewriting steps can be applied simultaneously as long as they do not interfere with each other.We wish that the underlying constraint rewrite implementation executes rewrite steps in parallel on increasingly popular becoming multi-core architectures. We design and implement efficient algorithms which allow for the parallel execution of multi-set constraint rewrite rules. Our experiments show that we obtain some significant speed-ups on multi-core architectures Martin Sulzmann, Edmund Soon Lee Lam |
PPDP | 1 |
| 2008 | HM(X) type inference is CLP(X) solvingabstractAbstract The HM(X) system is a generalization of the Hindley/Milner system parameterized in the constraint domain X. Type inference is performed by generating constraints out of the program text, which are then solved by the domain-specific constraint solver X. The solver has to be invoked at the latest when type inference reaches a let node so that we can build a polymorphic type. A typical example of such an inference approach is Milner's algorithm W. We formalize an inference approach where the HM(X) type inference problem is first mapped to a CLP(X) program. The actual type inference is achieved by executing the CLP(X) program. Such an inference approach supports the uniform construction of type inference algorithms and has important practical consequences when it comes to reporting type errors. The CLP(X) style inference system, where X is defined by Constraint Handling Rules, is implemented as part of the Chameleon system. Martin Sulzmann, Peter J. Stuckey |
J. Funct. Program. | 1 |
| 2007 | Observable Confluence for Constraint Handling Rules
Gregory J. Duck, Peter J. Stuckey, Martin Sulzmann |
ICLP | 3 |
| 2007 | Understanding functional dependencies via constraint handling rulesabstractAbstract Functional dependencies are a popular and useful extension to Haskell style type classes. We give a reformulation of functional dependencies in terms of Constraint Handling Rules (CHRs). In previous work, CHRs have been employed for describing user-programmable type extensions in the context of Haskell style type classes. Here, we make use of CHRs to provide for the first time a concise result that under some sufficient conditions, functional dependencies allow for sound, complete and decidable type inference. The sufficient conditions imposed on functional dependencies can be very limiting. We show how to safely relax these conditions and suggest several sound extensions of functional dependencies. Our results allow for a better understanding of functional dependencies and open up the opportunity for new applications. Martin Sulzmann, Gregory J. Duck, Simon L. Peyton Jones, Peter J. Stuckey |
J. Funct. Program. | 1 |
| 2006 | Type Processing by Constraint Reasoning
Peter J. Stuckey, Martin Sulzmann, Jeremy Wazny |
APLAS | 2 |
| 2006 | Principal Type Inference for GHC-Style Multi-parameter Type Classes
Martin Sulzmann, Tom Schrijvers, Peter J. Stuckey |
APLAS | 1 |
| 2006 | Extracting programs from type class proofsabstractStandard presentations of type class translation schemes exhibit some surprising problems when translating Haskell 98 programs. We suggests ways how to fix these problems based on a formal framework for extracting programs from type class proofs. Our description includes type improvement and recursive dictionaries -- something which has not been formally studied before. Thus, we are able to advance the state of art of translating type classes and open up the possibility for new type class applications. Martin Sulzmann |
PPDP | 1 |
| 2005 | A theory of overloadingabstractWe present a novel approach to allow for overloading of identifiers in the spirit of type classes. Our approach relies on a combination of the HM(X) type system framework with Constraint Handling Rules (CHRs). CHRs are a declarative language for writing incremental constraint solvers, that provide our scheme with a form of programmable type language. CHRs allow us to precisely describe the relationships among overloaded identifiers. Under some sufficient conditions on the CHRs we achieve decidable type inference and the semantic meaning of programs is unambiguous. Our approach provides a common formal basis for many type class extensions such as multiparameter type classes and functional dependencies. Peter J. Stuckey, Martin Sulzmann |
ACM Trans. Program. Lang. Syst. | 2 |
| 2004 | An Implementation of Subtyping Among Regular Expression Types
Kenny Zhuo Ming Lu, Martin Sulzmann |
APLAS | 2 |
| 2004 | Sound and Decidable Type Inference for Functional Dependencies
Gregory J. Duck, Simon L. Peyton Jones, Peter J. Stuckey, Martin Sulzmann |
ESOP | 4 |
| 2004 | Improving type error diagnosisabstractAll in-text\treferences\tunderlined\tin\tblue\tare\tlinked\tto\tpublications\ton\tResearchGate, letting you\taccess\tand\tread\tthem\timmediately. Peter J. Stuckey, Martin Sulzmann, Jeremy Wazny |
Haskell | 2 |
| 2003 | Resource Usage Verification
Kim Marriott, Peter J. Stuckey, Martin Sulzmann |
APLAS | 3 |
| 2003 | Interactive type debugging in HaskellabstractProceedings of the 2003 ACM SIGPLAN Haskell Workshop Peter J. Stuckey, Martin Sulzmann, Jeremy Wazny |
Haskell | 2 |
| 2002 | Exception analysis for non-strict languagesabstractIn this paper we present the first exception analysis for a non-strict language. We augment a simply-typed functional language with exceptions, and show that we can define a type-based inference system to detect uncaught exceptions. We have implemented this exception analysis in the GHC compiler for Haskell, which has been recently extended with exceptions. We give empirical evidence that the analysis is practical. Kevin Glynn, Peter J. Stuckey, Martin Sulzmann, Harald Søndergaard |
ICFP | 3 |
| 2002 | A theory of overloadingabstractWe present a minimal extension of the Hindley/Milner system to allow for overloading of identifiers. Our approach relies on a combination of the HM(X) type system framework with Constraint Handling Rules (CHRs). CHRs are a declarative language for writing incremental constraint solvers. CHRs allow us to precisely describe the relationships among overloaded identifiers. Under some sufficient conditions on the CHRs we achieve decidable type inference and the semantic meaning of programs is unambiguous. Our approach allows us to combine open and closed world overloading. We also show how to deal with overlapping definitions. Peter J. Stuckey, Martin Sulzmann |
ICFP | 2 |
| 2001 | Effective Strictness Analysis with HORN Constraints
Kevin Glynn, Peter J. Stuckey, Martin Sulzmann |
SAS | 3 |
| 1996 | The Tableau-based Theorem Prover 3TAP Version 4.0
Bernhard Beckert, Reiner Hähnle, Peter Oel, Martin Sulzmann |
CADE | 4 |