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.
|Data di pubblicazione:||2006|
|Titolo:||Semantic Hierarchy Refactoring by Abstract Interpretation|
|Titolo del libro:||Verification, Model Checking, and Abstract Interpretation|
|Digital Object Identifier (DOI):||http://dx.doi.org/10.1007/11609773_21|
|Appare nelle tipologie:||4.1 Articolo in Atti di convegno|
File in questo prodotto:
|vmcai06.pdf||Documento in Post-print||Accesso chiuso-personale||Riservato|