Skip to main content

Showing 1–10 of 10 results for author: Lhoták, O

Searching in archive cs. Search in all archives.
.
  1. Qualifying System F-sub

    Authors: Edward Lee, Yaoyu Zhao, James You, Kavin Satheeskumar, Ondřej Lhoták, Jonathan Brachthäuser

    Abstract: Type qualifiers offer a lightweight mechanism for enriching existing type systems to enforce additional, desirable, program invariants. They do so by offering a restricted but effective form of subtyping. While the theory of type qualifiers is well understood and present in many programming languages today, polymorphism over type qualifiers is an area that is less examined. We explore how such a p… ▽ More

    Submitted 13 November, 2023; originally announced November 2023.

    Comments: 24 pages

    Journal ref: Proc. ACM Program. Lang. 8, OOPSLA1, Article 115 (April 2024), 30 pages

  2. Simple Reference Immutability for System F-sub

    Authors: Edward Lee, Ondřej Lhoták

    Abstract: Reference immutability is a type based technique for taming mutation that has long been studied in the context of object-oriented languages, like Java. Recently, though, languages like Scala have blurred the lines between functional programming languages and object oriented programming languages. We explore how reference immutability interacts with features commonly found in these hybrid languages… ▽ More

    Submitted 10 July, 2023; originally announced July 2023.

    Comments: 25 pages

  3. arXiv:2207.03402  [pdf, ps, other

    cs.PL

    Scoped Capabilities for Polymorphic Effects

    Authors: Martin Odersky, Aleksander Boruch-Gruszecki, Edward Lee, Jonathan Brachthäuser, Ondřej Lhoták

    Abstract: Type systems usually characterize the shape of values but not their free variables. However, many desirable safety properties could be guaranteed if one knew the free variables captured by values. We describe CCsubBox, a calculus where such captured variables are succinctly represented in types, and show it can be used to safely implement effects and effect polymorphism via scoped capabilities. We… ▽ More

    Submitted 22 July, 2022; v1 submitted 7 July, 2022; originally announced July 2022.

    Comments: 39 pages

  4. arXiv:2105.11896  [pdf, ps, other

    cs.PL

    Tracking Captured Variables in Types

    Authors: Aleksander Boruch-Gruszecki, Jonathan Immanuel Brachthäuser, Edward Lee, Ondřej Lhoták, Martin Odersky

    Abstract: Type systems usually characterize the shape of values but not their free variables. However, there are many desirable safety properties one could guarantee if one could track how references can escape. For example, one may implement algebraic effect handlers using capabilities -- a value which permits one to perform the effect -- safely if one can guarantee that the capability itself does not esca… ▽ More

    Submitted 25 May, 2021; originally announced May 2021.

    Comments: 23 pages, 11 figures

    MSC Class: 68N15 ACM Class: D.3.1

  5. arXiv:1910.12935  [pdf, other

    cs.PL

    Precise Dataflow Analysis of Event-Driven Applications

    Authors: Ming-Ho Yee, Ayaz Badouraly, Ondřej Lhoták, Frank Tip, Jan Vitek

    Abstract: Event-driven programming is widely used for implementing user interfaces, web applications, and non-blocking I/O. An event-driven program is organized as a collection of event handlers whose execution is triggered by events. Traditional static analysis techniques are unable to reason precisely about event-driven code because they conservatively assume that event handlers may execute in any order.… ▽ More

    Submitted 28 October, 2019; originally announced October 2019.

  6. Undecidability of $D_{<:}$ and Its Decidable Fragments

    Authors: Jason Hu, Ondřej Lhoták

    Abstract: Dependent Object Types (DOT) is a calculus with path dependent types, intersection types, and object self-references, which serves as the core calculus of Scala 3. Although the calculus has been proven sound, it remains open whether type checking in DOT is decidable. In this paper, we establish undecidability proofs of type checking and subtyping of $D_{<:}$, a syntactic subset of DOT. It turns ou… ▽ More

    Submitted 14 August, 2019; originally announced August 2019.

  7. arXiv:1904.07298  [pdf, other

    cs.PL

    A Path To DOT: Formalizing Fully Path-Dependent Types

    Authors: Marianna Rapoport, Ondřej Lhoták

    Abstract: The Dependent Object Types (DOT) calculus aims to formalize the Scala programming language with a focus on path-dependent types $-$ types such as $x.a_1\dots a_n.T$ that depend on the runtime value of a path $x.a_1\dots a_n$ to an object. Unfortunately, existing formulations of DOT can model only types of the form $x.A$ which depend on variables rather than general paths. This restriction makes it… ▽ More

    Submitted 13 August, 2019; v1 submitted 15 April, 2019; originally announced April 2019.

  8. arXiv:1706.03814  [pdf, ps, other

    cs.PL

    A Simple Soundness Proof for Dependent Object Types

    Authors: Marianna Rapoport, Ifaz Kabir, Paul He, Ondřej Lhoták

    Abstract: Dependent Object Types (DOT) is intended to be a core calculus for modelling Scala. Its distinguishing feature is abstract type members, fields in objects that hold types rather than values. Proving soundness of DOT has been surprisingly challenging, and existing proofs are complicated, and reason about multiple concepts at the same time (e.g. types, values, evaluation). To serve as a core calculu… ▽ More

    Submitted 12 June, 2017; originally announced June 2017.

  9. arXiv:1705.06629  [pdf, other

    cs.SE

    Who you gonna call? Analyzing Web Requests in Android Applications

    Authors: Marianna Rapoport, Philippe Suter, Erik Wittern, Ondřej Lhoták, Julian Dolby

    Abstract: Relying on ubiquitous Internet connectivity, applications on mobile devices frequently perform web requests during their execution. They fetch data for users to interact with, invoke remote functionalities, or send user-generated content or meta-data. These requests collectively reveal common practices of mobile application development, like what external services are used and how, and they point… ▽ More

    Submitted 18 May, 2017; v1 submitted 18 May, 2017; originally announced May 2017.

  10. arXiv:1611.07610  [pdf, ps, other

    cs.PL

    Mutable WadlerFest DOT

    Authors: Marianna Rapoport, Ondřej Lhoták

    Abstract: The Dependent Object Types (DOT) calculus aims to model the essence of Scala, with a focus on abstract type members, path-dependent types, and subtyping. Other Scala features could be defined by translation to DOT. Mutation is a fundamental feature of Scala currently missing in DOT. Mutation in DOT is needed not only to model effectful computation and mutation in Scala programs, but even to precis… ▽ More

    Submitted 22 November, 2016; originally announced November 2016.