VLDB 2026 Research / reviewers in the wild / expert
Julian Mackay
dblp:131/4722
· DBLP profile ↗
9ranked-venue papers
4as first author
4since 2021 · last 2025
0000-0003-3098-3901ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 4 first-author · 4 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Reasoning about External CallsabstractIn today’s complex software, internal trusted code is tightly intertwined with external untrusted code. To reason about internal code, programmers must reason about the potential effects of calls to external code, even though that code is not trusted and may not even be available. The effects of external calls can be limited if internal code is programmed defensively, limiting potential effects by limiting access to the capabilities necessary to cause those effects. This paper addresses the specification and verification of internal code that relies on encapsulation and object capabilities to limit the effects of external calls. We propose new assertions for access to capabilities, new specifications for limiting effects, and a Hoare logic to verify that a module satisfies its specification, even while making external calls. We illustrate the approach though a running example with mechanised proofs, and prove soundness of the Hoare logic. Sophia Drossopoulou, Julian Mackay, Susan Eisenbach, James Noble 0001 |
Proc. ACM Program. Lang. | 2 |
| 2024 | Dafny vs. Dala: Experience with Mechanising Language DesignabstractDala is a design for a concurrent dynamic object-oriented language. A key goal of Dala's design is to avoid data races, by ensuring threads do not share mutable state. In this paper we discuss our experience using the program verification tool Dafny to validate Dala's design. We explain how we modelled salient features of Dala in Dafny, and how Dafny did (or did not) assist our confidence in Dala's design. James Noble 0001, Julian Mackay, Tobias Wrigstad, Andrew Fawcet, Michael Homer |
FTfJP@ECOOP | 2 |
| 2022 | Rusty Links in Local Chains✱abstractRust successfully applies ownership types to control memory allocation. Unfortunately, Rust’s ownership restricts the programs’ topologies to the point where doubly-linked lists cannot be programmed in Safe Rust. We sketch how more flexible “local” ownership could be added to Rust, permitting multiple mutable references to objects, provided each reference is bounded by the object’s lifetime. To maintain thread-safety, locally owned objects must remain thread-local; to maintain memory safety, local objects must remain allocated until their owner’s lifetime expires. James Noble 0001, Julian Mackay, Tobias Wrigstad |
FTfJP@ECOOP | 2 |
| 2022 | Necessity specifications for robustnessabstractRobust modules guarantee to do only what they are supposed to do – even in the presence of untrusted malicious clients, and considering not just the direct behaviour of individual methods, but also the emergent behaviour from calls to more than one method. Necessity is a language for specifying robustness, based on novel necessity operators capturing temporal implication, and a proof logic that derives explicit robustness specifications from functional specifications. Soundness and an exemplar proof are mechanised in Coq. Julian Mackay, Susan Eisenbach, James Noble 0001, Sophia Drossopoulou |
Proc. ACM Program. Lang. | 1 |
| 2020 | Syntactically Restricting Bounded Polymorphism for Decidable Subtyping
Julian Mackay, Alex Potanin, Jonathan Aldrich, Lindsay Groves |
APLAS | 1 |
| 2020 | Holistic Specifications for Robust ProgramsabstractFunctional specifications describe what program components can do: the sufficient conditions to invoke components’ operations. They allow us to reason about the use of components in a closed world setting, where components interact with known client code, and where the client code must establish the appropriate pre-conditions before calling into a component. Sufficient conditions are not enough to reason about the use of components in an open world setting, where components interact with external code, possibly of unknown provenance, and where components may evolve over time. In this open world setting, we must also consider the necessary conditions, i. e. what are the conditions without which an effect will not happen. In this paper we propose the $${\mathcal {C}}$$ hainmail specification language for writing holistic specifications that focus on necessary conditions (as well as sufficient conditions). We give a formal semantics for $${\mathcal {C}}$$ hainmail, and discuss several examples. The core of $${\mathcal {C}}$$ hainmail has been mechanised in the Coq proof assistant. Sophia Drossopoulou, James Noble 0001, Julian Mackay, Susan Eisenbach |
FASE | 3 |
| 2020 | Decidable subtyping for path dependent typesabstractPath dependent types have long served as an expressive component of the Scala programming language. They allow for the modelling of both bounded polymorphism and a degree of nominal subtyping. Nominality in turn provides the ability to capture first class modules. Thus a single language feature gives rise to a rich array of expressiveness. Recent work has proven path dependent types sound in the presence of both intersection and recursive types, but unfortunately typing remains undecidable, posing problems for programmers who rely on the results of type checkers. The Wyvern programming language is an object oriented language with path dependent types, recursive types and first class modules. In this paper we define two variants of Wyvern that feature decidable typing, along with machine checked proofs of decidability. Despite the restrictions, our approaches retain the ability to encode the parameteric polymorphism of Java generics along with many idioms of the Scala module system. Julian Mackay, Alex Potanin, Jonathan Aldrich, Lindsay Groves |
Proc. ACM Program. Lang. | 1 |
| 2013 | The Billion-Dollar Fix - Safe Modular Circular Initialisation with Placeholders and Placeholder Types
Marco Servetto, Julian Mackay, Alex Potanin, James Noble 0001 |
ECOOP | 2 |
| 2012 | Encoding Featherweight Java with assignment and immutability using the Coq proof assistantabstractWe develop a mechanized proof of Featherweight Java with Assignment and Immutability in the Coq proof assistant. This is a step towards more machine-checked proofs of a non-trivial type system. We used object immutability close to that of IGJ [9]. We describe the challenges of the mechanisation and the encoding we used inside of Coq. Julian Mackay, Hannes Mehnert, Alex Potanin, Lindsay Groves, Nicholas Cameron 0001 |
FTfJP@ECOOP | 1 |