Semantic hierarchy refactoring by abstract interpretation

  • Authors:
  • Francesco Logozzo;Agostino Cortesi

  • Affiliations:
  • École Normale Supérieure, France;Università Ca' Foscari di Venezia, Italy

  • Venue:
  • VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

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.