Zvonimir Rakamaric | University of Utah (original) (raw)
Uploads
Papers by Zvonimir Rakamaric
Abstract Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via... more Abstract Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via pointers, are a major frontier for formal verification of software. Formal verification is the process of proving (or disproving) the correctness of a system with respect to some kind of formal specification or property. The primary contributions of this thesis are the definition of a simple transitive closure logic tailored for formal verification of HMPs, and an efficient decision procedure for this logic.
Given a white-box component with specified unsafe states, we address the problem of automatically... more Given a white-box component with specified unsafe states, we address the problem of automatically generating an interface that captures safe orderings of invocations of's public methods. Method calls in the generated interface are guarded by constraints on their parameters. Unlike previous work, these constraints are generated automatically through an iterative refinement process.
Abstract Concurrency is inherent in today's software. Unexpected interactions between concurrentl... more Abstract Concurrency is inherent in today's software. Unexpected interactions between concurrently executing threads often cause subtle bugs in concurrent programs. Such bugs are hard to discover using traditional testing techniques since they require executing a program on a particular unit test (ie input) through a particular thread interleaving.
Abstract Many approaches to software verification are currently semi-automatic: a human must prov... more Abstract Many approaches to software verification are currently semi-automatic: a human must provide key logical insights-eg, loop invariants, class invariants, and frame axioms that limit the scope of changes that must be analyzed. This paper describes a technique for automatically inferring frame axioms of procedures and loops using static analysis. The technique builds on a pointer analysis that generates limited information about all data structures in the heap.
Abstract We introduce an automata-based formal model suitable for specifying, modeling, analyzing... more Abstract We introduce an automata-based formal model suitable for specifying, modeling, analyzing, and verifying asynchronous taskbased and message-passing programs. Our model consists of visibly pushdown automata communicating over unbounded reliable point-to-point first-in-first-out queues. Such a combination unifies two branches of research, one focused on task-based models, and the other on models of message-passing programs.
Abstract Software is large, complex, and error-prone. According to the US National Institute of S... more Abstract Software is large, complex, and error-prone. According to the US National Institute of Standards and Technology, software bugs cost the US economy an estimated $60 billion each year. The trend in hardware design of switching to multi-core architectures makes software development even more complex. Cutting software development costs and ensuring higher reliability of software is of global interest and a grand challenge.
Abstract We describe a simple and efficient algorithm for proving the termination of a class of l... more Abstract We describe a simple and efficient algorithm for proving the termination of a class of loops with nonlinear assignments to variables. The method is based on divergence testing for each variable in the cone-of-influence of the loop's condition. The analysis allows us to automatically prove the termination of loops that cannot be handled using previous techniques. We also describe a method for integrating our nonlinear termination proving technique into a larger termination proving framework that depends on linear reasoning.
International Journal on …, Jan 1, 2009
ACM SIGPLAN Notices, Jan 1, 2011
Proceedings of the 5th …, Jan 1, 2007
Model Checking Software, Jan 1, 2010
Software Engineering and …, Jan 1, 2007
Verification, Model Checking, and Abstract …, Jan 1, 2009
Verification, Model Checking, and …, Jan 1, 2007
Computer Aided Verification, Jan 1, 2009
Verification, Model Checking, and Abstract …, Jan 1, 2006
Tools and Algorithms for …, Jan 1, 2007
Abstract Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via... more Abstract Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via pointers, are a major frontier for formal verification of software. Formal verification is the process of proving (or disproving) the correctness of a system with respect to some kind of formal specification or property. The primary contributions of this thesis are the definition of a simple transitive closure logic tailored for formal verification of HMPs, and an efficient decision procedure for this logic.
Given a white-box component with specified unsafe states, we address the problem of automatically... more Given a white-box component with specified unsafe states, we address the problem of automatically generating an interface that captures safe orderings of invocations of's public methods. Method calls in the generated interface are guarded by constraints on their parameters. Unlike previous work, these constraints are generated automatically through an iterative refinement process.
Abstract Concurrency is inherent in today's software. Unexpected interactions between concurrentl... more Abstract Concurrency is inherent in today's software. Unexpected interactions between concurrently executing threads often cause subtle bugs in concurrent programs. Such bugs are hard to discover using traditional testing techniques since they require executing a program on a particular unit test (ie input) through a particular thread interleaving.
Abstract Many approaches to software verification are currently semi-automatic: a human must prov... more Abstract Many approaches to software verification are currently semi-automatic: a human must provide key logical insights-eg, loop invariants, class invariants, and frame axioms that limit the scope of changes that must be analyzed. This paper describes a technique for automatically inferring frame axioms of procedures and loops using static analysis. The technique builds on a pointer analysis that generates limited information about all data structures in the heap.
Abstract We introduce an automata-based formal model suitable for specifying, modeling, analyzing... more Abstract We introduce an automata-based formal model suitable for specifying, modeling, analyzing, and verifying asynchronous taskbased and message-passing programs. Our model consists of visibly pushdown automata communicating over unbounded reliable point-to-point first-in-first-out queues. Such a combination unifies two branches of research, one focused on task-based models, and the other on models of message-passing programs.
Abstract Software is large, complex, and error-prone. According to the US National Institute of S... more Abstract Software is large, complex, and error-prone. According to the US National Institute of Standards and Technology, software bugs cost the US economy an estimated $60 billion each year. The trend in hardware design of switching to multi-core architectures makes software development even more complex. Cutting software development costs and ensuring higher reliability of software is of global interest and a grand challenge.
Abstract We describe a simple and efficient algorithm for proving the termination of a class of l... more Abstract We describe a simple and efficient algorithm for proving the termination of a class of loops with nonlinear assignments to variables. The method is based on divergence testing for each variable in the cone-of-influence of the loop's condition. The analysis allows us to automatically prove the termination of loops that cannot be handled using previous techniques. We also describe a method for integrating our nonlinear termination proving technique into a larger termination proving framework that depends on linear reasoning.
International Journal on …, Jan 1, 2009
ACM SIGPLAN Notices, Jan 1, 2011
Proceedings of the 5th …, Jan 1, 2007
Model Checking Software, Jan 1, 2010
Software Engineering and …, Jan 1, 2007
Verification, Model Checking, and Abstract …, Jan 1, 2009
Verification, Model Checking, and …, Jan 1, 2007
Computer Aided Verification, Jan 1, 2009
Verification, Model Checking, and Abstract …, Jan 1, 2006
Tools and Algorithms for …, Jan 1, 2007