5 research outputs found
ConSORT: Context- and Flow-Sensitive Ownership Refinement Types for Imperative Programs
We present ConSORT, a type system for safety verification in the presence of
mutability and aliasing. Mutability requires strong updates to model changing
invariants during program execution, but aliasing between pointers makes it
difficult to determine which invariants must be updated in response to
mutation. Our type system addresses this difficulty with a novel combination of
refinement types and fractional ownership types. Fractional ownership types
provide flow-sensitive and precise aliasing information for reference
variables. ConSORT interprets this ownership information to soundly handle
strong updates of potentially aliased references. We have proved ConSORT sound
and implemented a prototype, fully automated inference tool. We evaluated our
tool and found it verifies non-trivial programs including data structure
implementations
Programming Languages and Systems
This open access book constitutes the proceedings of the 29th European Symposium on Programming, ESOP 2020, which was planned to take place in Dublin, Ireland, in April 2020, as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The actual ETAPS 2020 meeting was postponed due to the Corona pandemic. The papers deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
Faithful Translations between Polyvariant Flows and Polymorphic Types
Recent work has shown equivalences between various type systems and flow logics. Ideally, the translations upon which such equivalences are based should be faithful in the sense that information is not lost in roundtrip translations from flows to types and back or from types to flows and back. Building on the work of Nielson & Nielson and of Palsberg & Pavlopoulou, we present the first faithful translations between a class of finitary polyvariant flow analyses and a type system supporting polymorphism in the form of intersection and union types. Additionally, our flow/type correspondence solves several open problems posed by Palsberg & Pavlopoulou: (1) it expresses call-string based polyvariance (such as k-CFA) as well as argument based polyvariance; (2) it enjoys a subject reduction property for flows as well as for types; and (3) it supports a flow-oriented perspective rather than a type-oriented one.
Faithful Translations between Polyvariant Flows and Polymorphic Types
Recent work has shown equivalences between various type systems and flow logics. Ideally, the translations upon which such equivalences are based should be faithful in the sense that information is not lost in round-trip translations from flows to types and back or from types to flows and back. Building on the work of Nielson & Nielson and of Palsberg & Pavlopoulou, we present the first faithful translations between a class of finitary polyvariant flow analyses and a type system supporting polymorphism in the form of intersection and union types. Additionally, our flow/type correspondence solves several open problems posed by Palsberg & Pavlopoulou: (1) it expresses callstring based polyvariance (such as k-CFA) as well as argument based polyvariance; (2) it enjoys a subject reduction property for flows as well as for types; and (3) it supports a flow-oriented perspective rather than a type-oriented one. 2