서지주요정보
Synchronization and inheritance schemes for an actor-based object-oriented language = Actor 모델에 기초한 객체지향 언어를 위한 동기화 및 상속기법
서명 / 저자 Synchronization and inheritance schemes for an actor-based object-oriented language = Actor 모델에 기초한 객체지향 언어를 위한 동기화 및 상속기법 / Ki-Yeol Ryu.
발행사항 [대전 : 한국과학기술원, 1992].
Online Access 제한공개(로그인 후 원문보기 가능)원문

소장정보

등록번호

8003131

소장위치/청구기호

학술문화관(문화관) 보존서고

DCS 92010

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

The combination of concurrent and object-oriented programming produces a promising programming paradigm, called concurrent object-oriented programming, for various concurrent applications. Object-oriented programming languages based on the actor model are included in an exemplary class in the paradigm. However, the design of such an integrated language faces a serious problem that the synchronization scheme for concurrent programming may interfere with a key feature of object-oriented programming, inheritance. The problem is called the inheritance anomaly. The inheritance anomaly reduces the benefits of reusability which is one of the most valuable capability in object-oriented programming. This thesis discusses the incorporation of an inheritance scheme in an object-oriented language based on the actor model resolving the inheritance anomaly. For the purpose we first analyze the inheritance anomaly in existing actor-based languages as well as in various concurrent object-based ones. We suggest criteria for analyzing the cause of the inheritance anomaly in a language and for designing the synchronization scheme of a new language which does not raise the inheritance anomaly. We consider the design of reusable abstractions for specifying the synchronization constraints of objects as a design requirement to resolve the inheritance anomaly. Second, we design a new synchronization scheme for an actor-based object-oriented language which does not cause an inheritance anomaly. The scheme uses the reusable abstraction called behavior abstraction for specifying nondeterminism control, originated from ACT++. It addition, we design a reusable abstraction called replacement abstraction for specifying behavior replacements, which is a key synchronization constraints in the actor-based languages. That is, the synchronization constraints of an object is specified separately from methods and thus it reduces the potential of the inheritance anomaly. Since the behavior of an object is partitioned into several (sub-)behaviors we can use the concept of the behavior abstraction. Some existing actor-based languages use the state partitioning method to partition the behavior, which is difficult to be used in the cases when too many behaviors exist. We propose an alternative method of behavior partitioning called message partitioning. It enables to decrease the complexity in expressing the behaviors of an object in the above cases. However, message partitioning cannot come along with eager replacement which is the basic replacement mechanism in the actor model. To enable making use of message partitioning, we propose a new replacement mechanism called lazy replacement. Besides the reusable abstractions of synchronization constraints are separated from methods, they are decomposed into natural units of inheritance and they can be composed using existing ones. This fact increases reusability of synchronization code. Finally we develop a multiple inheritance scheme using the notion of view for inheriting synchronization code from multiple superclasses. The notion of view enables composing attributes such as reusable abstractions of synchronization constraints inherited from multiple classes. At the same time, the notion of view resolves the traditional name conflict problem and self-reference problem in multiple inheritance. We experiment the concepts proposed in this thesis through the design of an actor-based object-oriented language, LOGOS-C.

병행(concurrent) 프로그래밍과 객체지향(object-oriented) 프로그래밍 기법을 결합하면 병행 응용프로그램을 개발하는데 있어서 캡슐화(encapsulation), 재사용(reusablity) 등, 객체지향 프로그래밍의 여러 가지 이점을 얻을 수 있다. 이러한 프로그래밍 언어군을 병행객체지향언어 (concur-rent object-oriented programming languages)라고 부른다. Actor 모델에 기초한 객체지향 언어는 병행객체지향언어의 한 대표적인 언어이다. 그러나 병행프로그래밍과 객체지향 프로그래밍의 결합시에는 상속 부조화(inheritance anomaly)라고 불리는 심각한 문제가 발생할 수 있다. 상속부조화는, 병행프로그래밍에서 반드시 필요한 동기화 기법(synchronization scheme)이 객체지향 프로그래밍의 핵심요소인 상속(inheritance)개념과 서로 상층 하는 성질을 지니고 있어, 어떤 클래스의 동기화 코드(synchronization code)가 그 클래스의 부분 또는 전체를 상속할 수 없게 하는 현상을 말한다. 본 논문에서는 Actor 모델에 기초한 객체지향언어를 설계함에 있어서, 상속 부조화를 일으키지 않고 상속을 효과적으로 지원할 수 있는 동기화 기법과 이를 바탕으로 한 상속기법의 설계를 목적으로 하고 있다. 세부적으로, 먼저, 기존에 발표된 Actor 모델에 기초한 객체지향언어를 포함하여 다양한 병행객체지향언어에서의 상속 부조화문제를 분석하고, 이를 바탕으로, 한 언어의 상속 부조화를 분석하거나 새로운 언어의 동기화 기법을 설계하는데 사용할 수 있는 세 가지 범주(criteria)를 제시한다. 이들은 각각 분리화(separation), 분활화(decomposition), 추상화(abstraction)로 불리며, 이 세 가지 범주를 만족하는 동기화 표현을 재사용가능 추상화(reusable abstraction)라고 한다. 본 논문에서는 동기화 표현을 위한 reusable abstractions의 설계를 상속 부조화를 해결하기 위한 가장 중요한 요건으로 간주한다. 본 논문에서 설계한 동기화 기법에서는 두 가지 reusable abstraction을 제시하는데, 하나는 비결정성 조정(nondeterminism control)을 위한 behavior abstraction 이고 다른 하나는 behavior replacements의 표현을 위한 replacement abstraction 이다. 이 두 가지는 객체들의 동기화 조건(synchronization constraints)을 충분히 표현하고 있고, 또한 객체의 다른 부분들의 상속을 방해하지 않도록 설계되었다. 그리고 이들 스스로 상속의 단위로 분활 되어 있어 새로운 동기화 표현을 얻기 위해 쉽게 결합 및 상속될 수 있다. Actor 모델에 기초한 기존의 언어들의 또 하나의 문제점은 한 객체의 behavior를 (sub-) behavior들로 분활하는 방법에 있다. 기존의 방법은 객체의 상태(state)에 바탕을 둔 상태 분활(state partitioning) 기법으로서 이는 behavior의 종류가 많으면 적용하기 힘들다. 이 문제를 해결하기 위해서 본 논문에서는 메시지 분활(message partitioning) 이라는 방법을 제시한다. 그리고 이를 뒷받침해주는 replacement 기법으로 lazy replacement를 제안하였다. 본 논문에서 제시한 기법은 여러 경우에 있어서 객체의 표현의 복잡도를 크게 줄여준다. 메시지 분활 및 lazy replacement 기법 역시 위에서 제시한 두 가지 reusable abstractions의 범주 내 에서 표현된다. 본 논문에서는 위에서 제시한 동기화 표현의 다중상속(multiple inheritance)을 위한 상속기법으로서 View 개념을 제안한다. View 개념은 attribute들의 결합(composition)에 기초하고 있기 때문에 결합을 통해 동기화 조건을 표현한 reusable abstraction의 상속을 가능하게 하고 있다. 그리고 다중상속의 전통적인 문제인 이름 충돌(name conflict) 및 self-reference문제를 동일한 틀 속 에서 해결하고 있다. 마지막으로, Actor 모델에 기초한 실험적인 언어 LOGOS-C를 설계하여 위에서 제시한 개념들을 실증하였다.

서지기타정보

서지기타정보
청구기호 {DCS 92010
형태사항 [viii], 153 p. : 삽화 ; 26 cm
언어 영어
일반주기 Appendix : A, Definition of LOGOS-C. - B, Operational semantics of object
저자명의 한글표기 : 류기열
지도교수의 영문표기 : Seung-Ryoul Maeng
지도교수의 한글표기 : 맹승렬
학위논문 학위논문(박사) - 한국과학기술원 : 전산학과,
서지주기 Reference : p. 133-139
주제 Actor (Computer program language)
Object-oriented programming (Computer science)
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서