Modular verification of assembly code with stack-based control abstractions

@inproceedings{Feng2006ModularVO,
  title={Modular verification of assembly code with stack-based control abstractions},
  author={Xinyu Feng and Zhong Shao and Alexander Vaynberg and Sen Xiang and Zhaozhong Ni},
  booktitle={PLDI '06},
  year={2006}
}
Runtime stacks are critical components of any modern software--they are used to implement powerful control structures such as function call/return, stack cutting and unwinding, coroutines, and thread context switch. Stack operations, however, are very hard to reason about: there are no known formal specifications for certifying C-style setjmp/longjmp, stack cutting and unwinding, or weak continuations (in C--). In many proof-carrying code (PCC) systems, return code pointers and exception… Expand
A Simple Model for Certifying Assembly Programs with First-Class Function Pointers
A general framework for certifying garbage collectors and their mutators
Highly Automated Formal Proofs over Memory Usage of Assembly Code
A pointer logic and certifying compiler
A pointer logic and certifying compiler
Modular Machine Code Verification
Modular Certification of Low-Level Intermediate Representation Programs
Mostly-automated verification of low-level programs in computational separation logic
Certifying Low-Level Programs with Hardware Interrupts and Preemptive Threads
...
1
2
3
4
5
...

References

SHOWING 1-8 OF 8 REFERENCES
From system F to typed assembly language
Verification of safety properties for concurrent assembly code
The C Programming Language
An axiomatic basis for computer programming
Modular verification of assembly code with stack-based control abstractions
A translation from typed assembly lang uages to certified assembly programming
  • Technical report, Dept. of Computer Science, Yale Univ., New Haven, CT, Nov.
  • 2005
Jones.Systematic software development using VDM
  • Prentice Hall International (UK) Ltd.,
  • 1986
A type system for Java bytecode subroutines