Unifying execution of imperative generators and declarative specifications
Pengyu Nie, Marinela Parovic, Zhiqiang Zang, Sarfraz Khurshid, Aleksandar Milicevic, Milos Gligoric
摘要
We present Deuterium---a framework for implementing Java methods as executable contracts. Deuterium introduces a novel, type-safe way to write method contracts entirely in Java, as a combination of imperative generators and declarative specifications (written in a first-order relational logic with transitive closure). Existing approaches are typically based on encoding both the specification and the program heap into a constraint language, and then using an off-the-shelf constraint solver---without any additional guidance---to search for a new program heap that satisfies the specification. Deuterium takes advantage of user-provided generators to prune the search space and reduce incurred overhead of constraint solving. Deuterium supports two ways of solving declarative constraints: SAT-based and search-based with in-memory state exploration. We evaluate our approach on a suite of data structures, established as a standard benchmark by prior work. Furthermore, we use random and sequence-based test generation to create a new benchmark designed to mimic realistic execution scenarios. Our results show that generators improve the performance of executable contracts and that in-memory state exploration is the algorithm of choice when heap sizes are small.
问问这篇 Paper
问问你的智能体。
Lune 读过与它相关的顶会 Paper,每个回答都会注明依据哪几篇。
引用它的顶会 Paper4
- Synthesizing contracts correct modulo a test generatorAngello Astorga, Shambwaditya Saha, Ahmad Dinkins, Felicia Wang 等OOPSLA 2021 · 被引用 13 次
- Inline TestsYu Liu, Pengyu Nie, Owolabi Legunsen, Milos GligoricASE 2022 · 被引用 10 次
- Extracting Inline Tests from Unit TestsYu Liu, Pengyu Nie, Anna Guo, Milos Gligoric 等ISSTA 2023 · 被引用 7 次
- Object Graph ProgrammingAditya Thimmaiah, Leonidas Lampropoulos, Christopher J. Rossbach, Milos GligoricICSE 2024 · 被引用 1 次
相关 Paper
- Verification Modulo Tested Library ContractsAbhishek Uppar, Omar Muhammad, Sumanth Prabhu S, Deepak D'Souza 等PLDI 2026 · 被引用 1 次
- Fuzzing Class SpecificationsFacundo Molina, Marcelo d'Amorim, Nazareno AguirreICSE 2022 · 被引用 25 次
- Efficient Synthesis of Method Call Sequences for Test Generation and Bounded VerificationYunfan Zhang, Ruidong Zhu, Yingfei Xiong, Tao XieASE 2022 · 被引用 2 次
- EvoSpex: An Evolutionary Algorithm for Learning PostconditionsFacundo Molina, Pablo Ponzio, Nazareno Aguirre, Marcelo F. FriasICSE 2021
- FO-Complete Program Verification for Heap LogicsAdithya Murali, Hrishikesh Balakrishnan, Aaron Councilman, P. MadhusudanOOPSLA 2025
