Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Semantic Hierarchy Refactoring by Abstract Interpretation

Francesco Logozzo and Agostino Cortesi

Abstract

A semantics-based framework is presented for the definition and manipulation of class hierarchies for object-oriented languages. The framework is based on the notion of observable of a class, i.e., an abstraction of its semantics when focusing on a behavioral property of interest. We define a semantic subclass relation, capturing the fact that a subclass preserves the behavior of its superclass up to a given (tunable) observed property. We study the relation between syntactic subclass, as present in mainstream object-oriented languages, and the notion of semantic subclass. The approach is then extended to class hierarchies, leading to a semantics-based modular treatment of a suite of basic observable-preserving operators on hierarchies. We instantiate the framework by presenting effective algorithms that compute a semantic superclass for two given classes, that extend a hierarchy with a new class, and that merge two hierarchies by preserving semantic subclass relations.

Details

Publication typeInproceedings
Published inProceedings of the 7th International Conference on Verification, Model Checking and Abstract Interpretation
Volume3855
PublisherSpringer Verlag
> Publications > Semantic Hierarchy Refactoring by Abstract Interpretation