Behavioral Subtyping, Specification Inheritance, and Modular Reasoning
Behavioral Subtyping, Specification Inheritance, and Modular Reasoning
复制标题
行为子类型、规范继承和模块化推理
DOI:
--
复制
发表时间:
2015
影响因子:
1.3
通讯作者:
D. Naumann
中科院分区:
文献类型:
--
作者:
G. Leavens;D. Naumann
Verification of a dynamically dispatched method call, E.m(), seems to depend on E’s dynamic type. To avoid case analysis and allow incremental development, object-oriented program verification uses supertype abstraction. In other words, one reasons about E.m() using m’s specification for E’s static type. Supertype abstraction is valid when each subtype in the program is a behavioral subtype. This article semantically formalizes supertype abstraction and behavioral subtyping for a Java-like sequential language with mutation and proves that behavioral subtyping is both necessary and sufficient for the validity of supertype abstraction. Specification inheritance, as in JML, is also formalized and proved to entail behavioral subtyping.
DOI:
10.1145/964001.964024
发表时间:
2004-01
期刊:
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
影响因子:
--
作者:
P. O'Hearn;Hongseok Yang;J. C. Reynolds
通讯作者:
P. O'Hearn;Hongseok Yang;J. C. Reynolds
影响因子:
1.1
作者:
Filipovic I
通讯作者:
Filipovic I