Cascade is a static program analysis tool developed at New York University. It uses bounded model checking to generate verification conditions and checks them using an SMT solver which either produces a proof of correctness or gives a concrete trace showing how an assertion can fail. It supports the majority of standard C features except for floating point. A distinguishing feature of Cascade is that its analysis uses a memory model which divides up memory into several partitions based on alias information.
- 2.Biere, A., Cimatti, A., Clarke, E.M., Fujita, M., Zhu, Y.: Symbolic model checking using SAT procedures instead of BDDs. In: Proceedings of Design Automation Conference (DAC 1999), vol. 317, pp. 226–320 (1999)Google Scholar
- 3.Brand, D., Joyner, W.H.: Verification of protocols using symbolic execution. Comput. Networks 2, 351 (1978)Google Scholar
- 5.de Moura, L.M., Bjørner, N.: Z3: An efficient SMT solver. In: TACAS, pp. 337–340 (2008)Google Scholar
- 6.Grimm, R.: Rats!, a parser generator supporting extensible syntax (2009)Google Scholar
- 7.King, J.C.: Symbolic execution and program testing. Communications of the ACM 385, 226–394 (1976)Google Scholar
- 8.Steensgaard, B.: Points-to analysis in almost linear time. In: ACM Symposium on Principles of Programming Languages, pp. 32–41 (1996)Google Scholar