Darius Foo

dblp:228/5744 · DBLP profile ↗
← Back
7ranked-venue papers
3as first author
6since 2021 · last 2025
0000-0002-3279-5827ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 3 first-author · 6 since 2021Theory of computation · 1 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2025 Specifying and Verifying Future Conditions
Yahui Song, Darius Foo, Wei-Ngan Chin
SAS2
2024 Staged Specification Logic for Verifying Higher-Order Imperative Programs
abstract
Abstract Higher-order functions and imperative states are language features supported by many mainstream languages. Their combination is expressive and useful, but complicates specification and reasoning, due to the use of yet-to-be-instantiated function parameters. One inherent limitation of existing specification mechanisms is its reliance ononly two stages : an initial stage to denote the precondition at the start of the method and a final stage to capture the postcondition. Such two-stage specifications forceabstract propertiesto be imposed on unknown function parameters, leading to less precise specifications for higher-order methods. To overcome this limitation, we introduce a novel extension to Hoare logic that supportsmultiple stagesfor a call-by-value higher-order language with ML-like local references. Multiple stages allow the behavior of unknown function-type parameters to be captured abstractly as uninterpreted relations; and can also model the repetitive behavior of each recursion as a separate stage. In this paper, we define our staged logic with its semantics, prove its soundness and develop a new automated higher-order verifier, calledHeifer, for a core ML-like language.
Darius Foo, Yahui Song, Wei-Ngan Chin
FM (1)1
2024 Specification and Verification for Unrestricted Algebraic Effects and Handling
abstract
Programming with user-defined effects and effect handlers has many practical use cases involving imperative effects. Additionally, it is natural and powerful to use multi-shot effect handlers for non-deterministic or probabilistic programs that allow backtracking to compute a comprehensive outcome. Existing works for verifying effect handlers are restricted in one of three ways: i) permitting multi-shot continuations under pure setting; ii) allowing heap manipulation for only one-shot continuations; or iii) allowing multi-shot continuations with heap-manipulation but under a restricted frame rule. This work proposes a novel calculus called Effectful Specification Logic (ESL) to support unrestricted effect handlers, where zero-/one-/multi-shot continuations can co-exist with imperative effects and higher-order constructs. ESL captures behaviors in stages, and provides precise models to support invoked effects, handlers and continuations. To show its feasibility, we prototype an automated verification system for this novel specification logic, prove its soundness, report on useful case studies, and present experimental results. With this proposal, we have provided an extended specification logic that is capable of modeling arbitrary imperative higher-order programs with algebraic effects and continuation-enabled handlers.
Yahui Song, Darius Foo, Wei-Ngan Chin
Proc. ACM Program. Lang.2
2023 Protocol Conformance with Choreographic PlusCal
Darius Foo, Andreea Costea, Wei-Ngan Chin
TASE1
2022 Automated Temporal Verification for Algebraic Effects
Yahui Song, Darius Foo, Wei-Ngan Chin
APLAS2
2021 Out of sight, out of mind? How vulnerable dependencies affect open-source projects
Gede Artha Azriadi Prana, Abhishek Sharma 0002, Lwin Khin Shar, Darius Foo, Andrew E. Santosa, Asankhaya Sharma, David Lo 0001
Empir. Softw. Eng.4
2018 Efficient static checking of library updates
abstract
Software engineering practices have evolved to the point where a developer writing a new application today doesn’t start from scratch, but reuses a number of open source libraries and components. These third-party libraries evolve independently of the applications in which they are used, and may not maintain stable interfaces as bugs and vulnerabilities in them are fixed. This in turn causes API incompatibilities in downstream applications which must be manually resolved. Oversight here may manifest in many ways, from test failures to crashes at runtime. To address this problem, we present a static analysis for automatically and efficiently checking if a library upgrade introduces an API incompatibility.
Darius Foo, Hendy Chua, Jason Yeo, Ming Yi Ang, Asankhaya Sharma
ESEC/SIGSOFT FSE1