Types and trace effects for object orientation
Types and trace effects for object orientation
复制标题
面向对象的类型和跟踪效果
DOI:
10.1007/s10990-008-9032-6
复制
发表时间:
2008
期刊:
影响因子:
--
通讯作者:
C. Skalka
中科院分区:
文献类型:
--
作者:
C. Skalka
Trace effects are statically generated program abstractions, that can be model checked for verification of assertions in a temporal program logic. In this paper we develop a type and effect analysis for obtaining trace effects of Object Oriented programs in Featherweight Java. We observe that the analysis is significantly complicated by the interaction of trace behavior with inheritance and other Object Oriented features, particularly overridden methods, dynamic dispatch, and downcasting. We propose an expressive type and effect inference algorithm combining polymorphism and subtyping/subeffecting constraints to obtain a flexible trace effect analysis in this setting, and show how these techniques are applicable to Object Oriented features. We also extend the basic language model with exceptions and stack-based event contexts, and show how trace effects scale to these extensions by structural transformations.