Skip to main content

Showing 1–33 of 33 results for author: Thiemann, P

Searching in archive cs. Search in all archives.
.
  1. arXiv:2502.20070  [pdf, ps, other

    cs.PL

    Partial Orders for Precise and Efficient Dynamic Deadlock Prediction

    Authors: Bas van den Heuvel, Martin Sulzmann, Peter Thiemann

    Abstract: Deadlocks are a major source of bugs in concurrent programs. They are hard to predict, because they may only occur under specific scheduling conditions. Dynamic analysis attempts to identify potential deadlocks by examining a single execution trace of the program. A standard approach involves monitoring sequences of lock acquisitions in each thread, with the goal of identifying deadlock patterns.… ▽ More

    Submitted 27 February, 2025; originally announced February 2025.

  2. arXiv:2408.14031  [pdf, ps, other

    cs.PL

    Law and Order for Typestate with Borrowing

    Authors: Hannes Saffrich, Yuki Nishida, Peter Thiemann

    Abstract: Typestate systems are notoriously complex as they require sophisticated machinery for tracking aliasing. We propose a new, transition-oriented foundation for typestate in the setting of impure functional programming. Our approach relies on ordered types for simple alias tracking and its formalization draws on work on bunched implications. Yet, we support a flexible notion of borrowing in the prese… ▽ More

    Submitted 25 September, 2024; v1 submitted 26 August, 2024; originally announced August 2024.

  3. arXiv:2307.09855  [pdf, ps, other

    cs.PL

    Cross-thread critical sections and efficient dynamic race prediction methods

    Authors: Martin Sulzmann, Peter Thiemann

    Abstract: The lock set method and the partial order method are two main approaches to guarantee that dynamic data race prediction remains efficient. There are many variations of these ideas. Common to all of them is the assumption that the events in a critical section belong to the same thread. We have evidence that critical sections in the wild do extend across thread boundaries even if the surrounding a… ▽ More

    Submitted 12 October, 2023; v1 submitted 19 July, 2023; originally announced July 2023.

    Comments: Revised POPL'24 submission. 1. WCP is sound and show that WCP soundness proof can be adapted. 2. Cross-thread critical sections arise in practice, though the impact is not drastic. This in line with other works (like WCP) that advance the state of the art

  4. Parameterized Algebraic Protocols

    Authors: Andreia Mordido, Janek Spaderna, Peter Thiemann, Vasco T. Vasconcelos

    Abstract: We propose algebraic protocols that enable the definition of protocol templates and session types analogous to the definition of domain-specific types with algebraic datatypes. Parameterized algebraic protocols subsume all regular as well as most context-free and nested session types and, at the same time, replace the expensive superlinear algorithms for type checking by a nominal check that runs… ▽ More

    Submitted 7 April, 2023; originally announced April 2023.

    ACM Class: D.3.1

  5. arXiv:2303.01278  [pdf, other

    cs.PL

    Intrinsically Typed Sessions With Callbacks

    Authors: Peter Thiemann

    Abstract: All formalizations of session types rely on linear types for soundness as session-typed communication channels must change their type at every operation. Embedded language implementations of session types follow suit. They either rely on clever typing constructions to guarantee linearity statically, or on run-time checks that approximate linearity. We present a new language embedded implementati… ▽ More

    Submitted 2 March, 2023; originally announced March 2023.

    Comments: 27 pages; in submission

    MSC Class: 68N18 ACM Class: D.1.1; D.3.3; F.3.3

  6. Polymorphic Typestate for Session Types

    Authors: Hannes Saffrich, Peter Thiemann

    Abstract: Session types provide a principled approach to typed communication protocols that guarantee type safety and protocol fidelity. Formalizations of session-typed communication are typically based on process calculi, concurrent lambda calculi, or linear logic. An alternative model based on context-sensitive typing and typestate has not received much attention due to its apparent restrictions. However,… ▽ More

    Submitted 14 August, 2023; v1 submitted 31 October, 2022; originally announced October 2022.

    Comments: 29 pages. Short version appears in PPDP 2023

    MSC Class: 68N15 ACM Class: D.3.1; D.3.3

  7. arXiv:2205.08768  [pdf, other

    cs.PL

    Global Type Inference for Featherweight Generic Java

    Authors: Andreas Stadelmeier, Martin Plümicke, Peter Thiemann

    Abstract: Java's type system mostly relies on type checking augmented with local type inference to improve programmer convenience. We study global type inference for Featherweight Generic Java (FGJ), a functional Java core language. Given generic class headers and field specifications, our inference algorithm infers all method types if classes do not make use of polymorphic recursion. The algorithm is const… ▽ More

    Submitted 19 May, 2022; v1 submitted 18 May, 2022; originally announced May 2022.

    Comments: 33 pages, abridged version appears in ECOOP 2022

    MSC Class: 68N15 ACM Class: D.3.1; F.3.3

  8. arXiv:2108.11867  [pdf, other

    cs.PL

    A Typed Programmatic Interface to Contracts on the Blockchain

    Authors: Thi Thu Ha Doan, Peter Thiemann

    Abstract: Smart contract applications on the blockchain can only reach their full potential if they integrate seamlessly with traditional software systems via a programmatic interface. This interface should provide for originating and invoking contracts as well as observing the state of the blockchain. We propose a typed API for this purpose and establish some properties of the combined system. Specifically… ▽ More

    Submitted 29 August, 2021; v1 submitted 26 August, 2021; originally announced August 2021.

    Comments: 19 pages + 8 pages appendix. Appears in APLAS 2021. Extended version with proofs in appendix

    MSC Class: 68N15

  9. arXiv:2108.08027  [pdf, other

    cs.PL

    Generation of TypeScript Declaration Files from JavaScript Code

    Authors: Fernando Cristiani, Peter Thiemann

    Abstract: Developers are starting to write large and complex applications in TypeScript, a typed dialect of JavaScript. TypeScript applications integrate JavaScript libraries via typed descriptions of their APIs called declaration files. DefinitelyTyped is the standard public repository for these files. The repository is populated and maintained manually by volunteers, which is error-prone and time consumin… ▽ More

    Submitted 18 August, 2021; originally announced August 2021.

    Comments: Appears in MPLR 2021

    MSC Class: 68N15

  10. arXiv:2106.06658  [pdf, ps, other

    cs.PL

    Polymorphic Lambda Calculus with Context-Free Session Types

    Authors: Bernardo Almeida, Andreia Mordido, Peter Thiemann, Vasco T. Vasconcelos

    Abstract: Context-free session types provide a typing discipline for recursive structured communication protocols on bidirectional channels. They overcome the restriction of regular session type systems to tail recursive protocols. This extension enables us to implement serialisation and deserialisation of tree structures in a fully type-safe manner. We present the theory underlying the language FreeST 2,… ▽ More

    Submitted 2 August, 2022; v1 submitted 11 June, 2021; originally announced June 2021.

  11. Relating Functional and Imperative Session Types

    Authors: Hannes Saffrich, Peter Thiemann

    Abstract: Imperative session types provide an imperative interface to session-typed communication. In such an interface, channel references are first-class objects with operations that change the typestate of the channel. Compared to functional session type APIs, the program structure is simpler at the surface, but typestate is required to model the current state of communication throughout. Following an ea… ▽ More

    Submitted 14 September, 2022; v1 submitted 16 October, 2020; originally announced October 2020.

    ACM Class: D.1.3; D.3.1; F.3.2

    Journal ref: Logical Methods in Computer Science, Volume 18, Issue 3 (September 15, 2022) lmcs:8815

  12. Duality of Session Types: The Final Cut

    Authors: Simon J. Gay, Peter Thiemann, Vasco T. Vasconcelos

    Abstract: Duality is a central concept in the theory of session types. Since a flaw was found in the original definition of duality for recursive types, several other definitions have been published. As their connection is not obvious, we compare the competing definitions, discuss tradeoffs, and prove some equivalences. Some of the results are mechanized in Agda.

    Submitted 2 April, 2020; originally announced April 2020.

    Comments: In Proceedings PLACES 2020, arXiv:2004.01062

    ACM Class: D.3.1; D.3.3; F.3.3

    Journal ref: EPTCS 314, 2020, pp. 23-33

  13. Label-Dependent Session Types

    Authors: Peter Thiemann, Vasco T. Vasconcelos

    Abstract: Session types have emerged as a typing discipline for communication protocols. Existing calculi with session types come equipped with many different primitives that combine communication with the introduction or elimination of the transmitted value. We present a foundational session type calculus with a lightweight operational semantics. It fully decouples communication from the introduction and… ▽ More

    Submitted 11 November, 2019; v1 submitted 2 November, 2019; originally announced November 2019.

    Comments: POPL 2020

    Journal ref: Proc. ACM Program. Lang. 4, POPL, Article 67 (January 2020)

  14. arXiv:1908.09681  [pdf, ps, other

    cs.PL

    Kindly Bent to Free Us

    Authors: Gabriel Radanne, Hannes Saffrich, Peter Thiemann

    Abstract: Systems programming often requires the manipulation of resources like file handles, network connections, or dynamically allocated memory. Programmers need to follow certain protocols to handle these resources correctly. Violating these protocols causes bugs ranging from type mismatches over data races to use-after-free errors and memory leaks. These bugs often lead to security vulnerabilities. W… ▽ More

    Submitted 25 June, 2020; v1 submitted 26 August, 2019; originally announced August 2019.

    Comments: ICFP 2020

  15. arXiv:1908.02940  [pdf, ps, other

    cs.PL

    Intrinsically-Typed Mechanized Semantics for Session Types

    Authors: Peter Thiemann

    Abstract: Session types have emerged as a powerful paradigm for structuring communication-based programs. They guarantee type soundness and session fidelity for concurrent programs with sophisticated communication protocols. As type soundness proofs for languages with session types are tedious and technically involved, it is rare to see mechanized soundness proofs for these systems. We present an executab… ▽ More

    Submitted 8 August, 2019; originally announced August 2019.

    Comments: Appears in PPDP 2019

  16. Gradual Session Types

    Authors: Atsushi Igarashi, Peter Thiemann, Yuya Tsuda, Vasco T. Vasconcelos, Philip Wadler

    Abstract: Session types are a rich type discipline, based on linear types, that lifts the sort of safety claims that come with type systems to communications. However, web-based applications and microservices are often written in a mix of languages, with type disciplines in a spectrum between static and dynamic typing. Gradual session types address this mixed setting by providing a framework which grants se… ▽ More

    Submitted 16 September, 2019; v1 submitted 15 September, 2018; originally announced September 2018.

    Comments: Preprint of an article to appear in Journal of Functional Programming

    Journal ref: J. Funct. Prog. 29 (2019) e17

  17. arXiv:1710.06678  [pdf, ps, other

    cs.FL

    LTL Semantic Tableaux and Alternating $ω$-automata via Linear Factors

    Authors: Martin Sulzmann, Peter Thiemann

    Abstract: Linear Temporal Logic (LTL) is a widely used specification framework for linear time properties of systems. The standard approach for verifying such properties is by transforming LTL formulae to suitable $ω$-automata and then applying model checking. We revisit Vardi's transformation of an LTL formula to an alternating $ω$-automaton and Wolper's LTL tableau method for satisfiability checking. We… ▽ More

    Submitted 18 October, 2017; originally announced October 2017.

  18. arXiv:1708.07366  [pdf, ps, other

    cs.FL cs.LO cs.PL

    A Computational Interpretation of Context-Free Expressions

    Authors: Martin Sulzmann, Peter Thiemann

    Abstract: We phrase parsing with context-free expressions as a type inhabitation problem where values are parse trees and types are context-free expressions. We first show how containment among context-free and regular expressions can be reduced to a reachability problem by using a canonical representation of states. The proofs-as-programs principle yields a computational interpretation of the reachability… ▽ More

    Submitted 24 August, 2017; originally announced August 2017.

  19. arXiv:1703.10331  [pdf, ps, other

    cs.PL

    Static Contract Simplification

    Authors: Matthias Keil, Peter Thiemann

    Abstract: Contracts and contract monitoring are a powerful mechanism for specifying properties and guaranteeing them at run time. However, run time monitoring of contracts imposes a significant overhead. The execution time is impacted by the insertion of contract checks as well as by the introduction of proxy objects that perform delayed contract checks on demand. Static contract simplification attacks th… ▽ More

    Submitted 30 March, 2017; originally announced March 2017.

    Comments: Technical Report

  20. arXiv:1612.00669  [pdf, other

    cs.PL

    Transaction-based Sandboxing for JavaScript

    Authors: Matthias Keil, Peter Thiemann

    Abstract: Today's JavaScript applications are composed of scripts from different origins that are loaded at run time. As not all of these origins are equally trusted, the execution of these scripts should be isolated from one another. However, some scripts must access the application state and some may be allowed to change it, while preserving the confidentiality and integrity constraints of the application… ▽ More

    Submitted 17 January, 2017; v1 submitted 2 December, 2016; originally announced December 2016.

    Comments: Technical Report

  21. arXiv:1610.06832  [pdf, ps, other

    cs.FL

    Partial Derivatives for Context-Free Languages: From $μ$-Regular Expressions to Pushdown Automata

    Authors: Peter Thiemann

    Abstract: We extend Antimirov's partial derivatives from regular expressions to $μ$-regular expressions that describe context-free languages. We prove the correctness of partial derivatives as well as the finiteness of the set of iterated partial derivatives. The latter are used as pushdown symbols in our construction of a nondeterministic pushdown automaton, which generalizes Antimirov's NFA construction.

    Submitted 2 January, 2017; v1 submitted 21 October, 2016; originally announced October 2016.

    Comments: 22 pages = 15 pages + bibliography + proofs; accepted by FoSSaCS 2017

    MSC Class: 68Q45

  22. arXiv:1608.08330  [pdf, ps, other

    cs.PL

    Static Trace-Based Deadlock Analysis for Synchronous Mini-Go

    Authors: Kai Stadtmüller, Martin Sulzmann, Peter Thiemann

    Abstract: We consider the problem of static deadlock detection for programs in the Go programming language which make use of synchronous channel communications. In our analysis, regular expressions extended with a fork operator capture the communication behavior of a program. Starting from a simple criterion that characterizes traces of deadlock-free programs, we develop automata-based methods to check for… ▽ More

    Submitted 2 September, 2016; v1 submitted 30 August, 2016; originally announced August 2016.

  23. arXiv:1605.00817  [pdf, ps, other

    cs.FL

    Derivatives for Enhanced Regular Expressions

    Authors: Peter Thiemann

    Abstract: Regular languages are closed under a wealth of formal language operators. Incorporating such operators in regular expressions leads to concise language specifications, but the transformation of such enhanced regular expressions to finite automata becomes more involved. We present an approach that enables the direct construction of finite automata from regular expressions enhanced with further op… ▽ More

    Submitted 3 May, 2016; originally announced May 2016.

    Comments: To appear in CIAA 2016

    MSC Class: 68Q45

  24. arXiv:1510.07293  [pdf, ps, other

    cs.FL cs.LO cs.PL

    Forkable Regular Expressions

    Authors: Martin Sulzmann, Peter Thiemann

    Abstract: We consider forkable regular expressions, which enrich regular expressions with a fork operator, to establish a formal basis for static and dynamic analysis of the communication behavior of concurrent programs. We define a novel compositional semantics for forkable expressions, establish their fundamental properties, and define derivatives for them as a basis for the generation of automata, for ma… ▽ More

    Submitted 8 December, 2015; v1 submitted 25 October, 2015; originally announced October 2015.

    Comments: 12 pages plus technical appendix, to appear in LATA 2016

  25. Combining behavioural types with security analysis

    Authors: Massimo Bartoletti, Ilaria Castellani, Pierre-Malo Deniélou, Mariangiola Dezani-Ciancaglini, Silvia Ghilezan, Jovanka Pantovic, Jorge A. Pérez, Peter Thiemann, Bernardo Toninho, Hugo Torres Vieira

    Abstract: Today's software systems are highly distributed and interconnected, and they increasingly rely on communication to achieve their goals; due to their societal importance, security and trustworthiness are crucial aspects for the correctness of these systems. Behavioural types, which extend data types by describing also the structured behaviour of programs, are a widely studied approach to the enforc… ▽ More

    Submitted 8 October, 2015; originally announced October 2015.

    Journal ref: Journal of Logical and Algebraic Methods in Programming, Elsevier, 2015, pp.18

  26. arXiv:1504.08110  [pdf, other

    cs.PL

    TreatJS: Higher-Order Contracts for JavaScript

    Authors: Matthias Keil, Peter Thiemann

    Abstract: TreatJS is a language embedded, higher-order contract system for JavaScript which enforces contracts by run-time monitoring. Beyond providing the standard abstractions for building higher-order contracts (base, function, and object contracts), TreatJS's novel contributions are its guarantee of non-interfering contract execution, its systematic approach to blame assignment, its support for contract… ▽ More

    Submitted 30 April, 2015; originally announced April 2015.

    Comments: Technical Report

    ACM Class: D.2.4

  27. arXiv:1504.08100  [pdf, other

    cs.PL

    Transparent Object Proxies for JavaScript

    Authors: Matthias Keil, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann

    Abstract: Proxies are the swiss army knives of object adaptation. They introduce a level of indirection to intercept select operations on a target object and divert them as method calls to a handler. Proxies have many uses like implementing access control, enforcing contracts, virtualizing resources. One important question in the design of a proxy API is whether a proxy object should inherit the identity… ▽ More

    Submitted 30 April, 2015; originally announced April 2015.

    Comments: Technical Report

    ACM Class: D.3.3

  28. arXiv:1502.01278  [pdf, ps, other

    cs.PL

    A Falsification View of Success Typing

    Authors: Robert Jakob, Peter Thiemann

    Abstract: Dynamic languages are praised for their flexibility and expressiveness, but static analysis often yields many false positives and verification is cumbersome for lack of structure. Hence, unit testing is the prevalent incomplete method for validating programs in such languages. Falsification is an alternative approach that uncovers definite errors in programs. A falsifier computes a set of inputs… ▽ More

    Submitted 5 February, 2015; v1 submitted 4 February, 2015; originally announced February 2015.

    Comments: extended version

  29. arXiv:1410.3227  [pdf, other

    cs.FL

    Symbolic Solving of Extended Regular Expression Inequalities

    Authors: Matthias Keil, Peter Thiemann

    Abstract: This paper presents a new solution to the containment problem for extended regular expressions that extends basic regular expressions with intersection and complement operators and consider regular expressions on infinite alphabets based on potentially infinite character sets. Standard approaches deciding the containment do not take extended operators or character sets into account. The algorithm… ▽ More

    Submitted 13 October, 2014; originally announced October 2014.

    Comments: Technical Report

  30. arXiv:1312.5429  [pdf, ps, other

    cs.PL

    On the Proxy Identity Crisis

    Authors: Matthias Keil, Peter Thiemann

    Abstract: A proxy, in general, is an object mediating access to an arbitrary target object. The proxy is then intended to be used in place of the target object. Ideally, a proxy is not distinguishable from other objects. Running a program with a proxy leads to the same outcome as running the program with the target object. Even though the approach provides a lot of power to the user, proxies come with a lim… ▽ More

    Submitted 19 December, 2013; originally announced December 2013.

    Comments: Position Paper

  31. arXiv:1312.3184  [pdf, ps, other

    cs.PL

    Efficient Dynamic Access Analysis Using JavaScript Proxies

    Authors: Matthias Keil, Peter Thiemann

    Abstract: JSConTest introduced the notions of effect monitoring and dynamic effect inference for JavaScript. It enables the description of effects with path specifications resembling regular expressions. It is implemented by an offline source code transformation. To overcome the limitations of the JSConTest implementation, we redesigned and reimplemented effect monitoring by taking advantange of JavaScrip… ▽ More

    Submitted 11 December, 2013; originally announced December 2013.

    Comments: Technical Report

  32. arXiv:1306.5061  [pdf, ps, other

    cs.PL

    Towards Tree Automata-based Success Types

    Authors: Robert Jakob, Peter Thiemann

    Abstract: Error detection facilities for dynamic languages are often based on unit testing. Thus, the advantage of rapid prototyping and flexibility must be weighed against cumbersome and time consuming test suite development. Lindahl and Sagonas' success typings provide a means of static must-fail detection in Erlang. Due to the constraint-based nature of the approach, some errors involving nested tuples a… ▽ More

    Submitted 21 June, 2013; originally announced June 2013.

    Comments: Abstract presented at HOPA 2013

  33. arXiv:1305.6721  [pdf, ps, other

    cs.PL

    Type-based Dependency Analysis for JavaScript

    Authors: Matthias Keil, Peter Thiemann

    Abstract: Dependency analysis is a program analysis that determines potential data flow between program points. While it is not a security analysis per se, it is a viable basis for investigating data integrity, for ensuring confidentiality, and for guaranteeing sanitization. A noninterference property can be stated and proved for the dependency analysis. We have designed and implemented a dependency analysi… ▽ More

    Submitted 29 May, 2013; originally announced May 2013.

    Comments: Technical Report