A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Model checking
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A Discipline of Programming
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Computer
Simplify: a theorem prover for program checking
Journal of the ACM (JACM)
Model Checking C Programs Using F-SOFT
ICCD '05 Proceedings of the 2005 International Conference on Computer Design
Model Checking Software at Compile Time
TASE '07 Proceedings of the First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering
The software model checker Blast: Applications to software engineering
International Journal on Software Tools for Technology Transfer (STTT)
Hi-index | 0.00 |
Automatic static checkers based on model checking, particularly SAT-based bounded model checkers, are used in industry, but they sometimes suffer from the scalability problem. Scalability can be achieved with the notions of Design by Contract(DbC) and modular checking. However, modular checking with DbC still have some problems. The method is insufficient for handling pointers to functions (function-pointers) which are abundantly used in C programs, defensive programming which is widely adopted in industrial software development projects, and re-entrancy which sometimes occurs in programs using callback functions. This paper proposes a DbC notation for the above problems and a checking method that uses behavioral subtyping to clarify the exact location where an error occurs.