Solving Inheritance Anomaly using State Abstraction in Concurrent Object Oriented Programming Languages

병행 객체지향 언어에서 상태 추상화를 이용한 상속 변칙의 해결

  • 이광 (청주과학대학 컴퓨터과학과) ;
  • 이준 (조선대학교 컴퓨터공학과)
  • Published : 1999.06.01

Abstract

Inheritance and concurrency are the primary feature of object oriented languages, and are especially important for code re-use. They provide maximum computational power and modeling power through concurrency of objects. But, concurrent objects and inheritance have conflicting characteristics, thereby simultaneously use of them causes the problem, so called inheritance anomaly, which requires code redefinition of inherited methods to maintain integrity of objects. In this paper, to solve the inheritance anomaly problems we introduce concept of state abstraction, in which internal states of encapsulated objects are made available from a part of object's external interface. And we design inheritance interface mechanisms which methods are inherited efficiently. In our scheme, we can solve the typical inheritance anomaly problems.

상속성과 병행성은 병행 객체지향 언어에서 가장 주된 개념이며 특히 코드의 재사용에 있어서 매우 중요하다. 이들은 객체의 병행 수행을 통해 최대의 계산력과 모델링 능력을 제공한다. 하지만, 병행 객체와 상속성은 서로 상충되는 특성을 가지고 있으며, 이들의 동시 사용은 병행 객체들의 무결성을 유지하기 위해 상속된 메소드들의 코드 재정의를 요구하는 상속 변칙 문제를 발생시킨다. 본 논문에서는 상속 변칙의 해결을 위해 캡슐화된 객체의 내부 상태들이 객체의 외부 인터페이스의 한 부분으로 이용될 수 있는 상태 추상화 개념을 도입하였다. 또한, 메소드들을 효과적으로 상속할 수 있는 상속 인터페이스 메커니즘을 설계하였으며 이를 통해 전형적인 상속 변칙 문제를 해결하였다.

Keywords