Assume(), Capture(), Verify(), Establish(): A Vocabulary for Static Program Analysis
Document Type
Conference Proceeding
Publication Date
1-1-2023
Abstract
We propose a set of functions that a user can invoke to analyze a program written in a C-like language: Assume() refers to a label in the source code or to a program part, and enables the user to make an assumption about the state of the program at some label or the function of some program part; Capture() refers to a label or a program part and returns an assertion about the state of the program at the label or the function of the program part; Verify() refers to a label or a program part and tests a unary assertion about the state of the program at the label or a binary assertion about the function of the program part; Establish() refers to a label or a program part and modifies the program code to make Verify() return TRUE at that label or program part, if it did not originally. We discuss the foundations of this tool as well as a preliminary implementation.
Identifier
85186744623 (Scopus)
ISBN
[9798350359398]
Publication Title
Proceedings 2023 IEEE 23rd International Conference on Software Quality Reliability and Security Companion Qrs C 2023
External Full Text Location
https://doi.org/10.1109/QRS-C60940.2023.00067
First Page
845
Last Page
846
Grant
DGE2043104
Fund Ref
National Science Foundation
Recommended Citation
Mohammadi, Hessamaldin; Ghardallou, Wided; Brick, Elijah; and Mili, Ali, "Assume(), Capture(), Verify(), Establish(): A Vocabulary for Static Program Analysis" (2023). Faculty Publications. 2138.
https://digitalcommons.njit.edu/fac_pubs/2138