Computer Science – Programming Languages
Scientific paper
2011-03-07
Computer Science
Programming Languages
Scientific paper
We present a new approach to automated reasoning about higher-order programs by extending symbolic execution to use behavioral contracts as symbolic values, enabling symbolic approximation of higher-order behavior. Our approach is based on the idea of an abstract reduction semantics that gives an operational semantics to programs with both concrete and symbolic components. Symbolic components are approximated by their contract and our semantics gives an operational interpretation of contracts-as-values. The result is a executable semantics that soundly predicts program behavior, including contract failures, for all possible instantiations of symbolic components. We show that our approach scales to an expressive language of contracts including arbitrary programs embedded as predicates, dependent function contracts, and recursive contracts. Supporting this feature-rich language of specifications leads to powerful symbolic reasoning using existing program assertions. We then apply our approach to produce a verifier for contract correctness of components, including a sound and computable approximation to our semantics that facilitates fully automated contract verification. Our implementation is capable of verifying contracts expressed in existing programs, and of justifying valuable contract-elimination optimizations.
Horn David Van
Tobin-Hochstadt Sam
No associations
LandOfFree
Higher-Order Symbolic Execution via Contracts does not yet have a rating. At this time, there are no reviews or comments for this scientific paper.
If you have personal experience with Higher-Order Symbolic Execution via Contracts, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Higher-Order Symbolic Execution via Contracts will most certainly appreciate the feedback.
Profile ID: LFWR-SCP-O-81475