KR100280187B1 - 단일 상속하의 모레타 모드를 갖는 객체 장소전달의 사용 오류탐지 방법 - Google Patents

단일 상속하의 모레타 모드를 갖는 객체 장소전달의 사용 오류탐지 방법 Download PDF

Info

Publication number
KR100280187B1
KR100280187B1 KR1019980048769A KR19980048769A KR100280187B1 KR 100280187 B1 KR100280187 B1 KR 100280187B1 KR 1019980048769 A KR1019980048769 A KR 1019980048769A KR 19980048769 A KR19980048769 A KR 19980048769A KR 100280187 B1 KR100280187 B1 KR 100280187B1
Authority
KR
South Korea
Prior art keywords
place
mode
substitution
execution
error
Prior art date
Application number
KR1019980048769A
Other languages
English (en)
Other versions
KR20000032343A (ko
Inventor
이준경
김상국
박경숙
금창섭
이동길
이형호
Original Assignee
정선종
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정선종, 한국전자통신연구원 filed Critical 정선종
Priority to KR1019980048769A priority Critical patent/KR100280187B1/ko
Publication of KR20000032343A publication Critical patent/KR20000032343A/ko
Application granted granted Critical
Publication of KR100280187B1 publication Critical patent/KR100280187B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3048Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the topology of the computing system or computing system component explicitly influences the monitoring activity, e.g. serial, hierarchical systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 객체 장소 전달의 사용 오류 탐지 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 객체 장소 전달의 사용 제약과 실행 오류들을 정적 클래스 타입 분석기와 동적 클래스 타입 식별 기능 코드로 방지하는 객체 장소 전달의 사용 오류 탐지 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 모레타 모드를 갖는 객체 장소의 사용 경우들을 분류하여 판단하는 제 1 단계; 모레타 장소에 대한 치환 실행 또는 인/록 매개인자 전달의 사용 오류를 탐지하는 제 2 단계; 모레타 참조 장소에 대한 치환 실행 또는 인(IN) 매개인자 전달의 실행 오류를 탐지하는 제 3 단계; 모레타 참조 장소에 대한 역-참조 치환 실행에 대한 실행 오류를 탐지하는 제 4 단계; 및 모레타 참조 장소의 록 매개인자 전달 또는 모레타 참조의 참조 모드 등을 갖는 객체 장소의 치환 실행 및 인/록(IN/LOC) 매개인자 전달에 대한 실행 오류를 탐지하는 제 5 단계를 포함한다.
4. 발명의 중요한 용도
본 발명은 칠-96의 클래스 타입 호환성 규칙정의 및 소프트웨어 구축 등에 이용됨.

Description

단일 상속하의 모레타 모드를 갖는 객체 장소 전달의 사용 오류 탐지 방법
본 발명은 칠-96(CHILL-96) 컴파일러 등의 정적(static) 타입 점검기 및 동적(dynamic) 타입 점검 실행을 위한 코드 생성기에서 참조(reference) 모드를 포함하여 모레타 모드를 갖는 객체 장소 전달의 사용 오류를 방지하기 위한 것으로, 칠-96 언어 등의 클래스 호환성(compatibility) 규칙에 따른 객체 장소 전달 오류를 탐지하는 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
이때, 본 발명은 칠-96 언어 등이 단일 상속(single inheritance)에 기반한 이질적인 세가지 종류(순차적인 모듈 모드, 모니터 특성의 리젼 모드 및 병행적인 타스크 모드)의 클래스들로 객체지향 프로그램을 구성할 때 모듈 모드가 리젼 또는 타스크 모드에 상속할 수 있는 제약적인 상속 메카니즘(mechanism)에 기반하고 있다.
먼저, 본 발명에 사용되는 용어를 간략하게 정의하면, 다음과 같다.
칠-96 언어는 통신 시스템용 소프트웨어의 재사용성과 모듈성을 향상시키기 위해 객체지향 프로그래밍 기능을 지원하는 국제전기통신연합-통신부(ITU-T)에서 권고 진행중인 표준 프로그래밍 언어이다.
객체지향성이란 정보은닉과 추상 자료형과 다형성 등이 개념을 말하는데, 칠-96 언어에서는 이러한 개념들을 모레타 모드속에 정의한다.
모레타 모드란 복합 모드로서, 순차 특성을 지니는 모듈 모드와 모니터 특성을 지니는 리젼 모드와 병행적 특성을 지니는 타스크 모드로 분류된다.
모듈 모드는 원소 데이터와 원소 프로시져의 결합으로 된 속성을 지니고, 실행문이 없는 모듈 특성을 지닌다.
리젼 모드는 모듈 모드의 속성을 지니고, 외부로 보여지는 일반적 가시성을 가지는 원소 프로시져에 대해 임계성을 가진다.
타스크 모드는 모듈 모드의 속성을 지니고, 하나의 암시적인 쓰레드를 가지는 병행적 특성을 가진다.
다음으로, 종래의 관련 기술로서, 객체지향 칠을 칠로 변환시 모레타 모드에 대한 그랜트/시즈(GRANT/SEIZE) 처리 방법(대한민국 특허출원번호 제96-33693호 : 1996. 8. 14)을 간략하게 살펴보면 다음과 같다.
상기 종래 기술은, 객체지향 칠-96을 칠로 변환할 때 모레타 모드에 대해 모듈 단위로 그랜트/시즈할 수 있는 특성을 갖는 구문을 정의하고, 이 구문을 이용하여 모레타 모드에 대한 그랜트/시즈를 칠에서 모듈 단위로 그랜트/시즈할 수 있도록 구현하므로써, 실제 모레타 모드의 그랜트/시즈와 유사한 기능을 효율적으로 제공한다.
객체지향 칠-96의 모레타 모드가 칠의 모듈로 변환되는데, 칠에서 모듈은 데이터 개체 이름들의 가시성을 결정하는 프로그램 구조로서, 모듈내에서는 그 모듈내에서 정의된 이름들만 사용할 수 있으며, 상위 모듈에 존재하는 이름들을 사용하기 위해서는 그 이름을 시즈해야 하며, 모듈내에 있는 이름을 상위 모듈에서 사용할 수 있도록 하기 위해서는 그랜트/시즈로 처리한다. 따라서, 칠에서 그랜트/시즈는 이름 단위로 이루어진다.
그런데, 객체지향 칠-96의 모레타 모드에 대한 그랜트/시즈는 하나의 이름 단위로 이루어지는 것이 아니라 모듈 단위로 그랜트/시즈되는 특성을 가진다. 모레타 모드의 그랜트/시즈를 칠의 그랜트/시즈 구문을 이용하여 변환할 경우에 모레타 모드 이름 뿐만아니라 그 구성 원소들이 변환된 이름 및 상속된 이름들에 대하여 일반적 및 내부 가시성을 가진 모든 이름들을 함께 그랜트/시즈해야 한다. 따라서, 모레타 모드 및 모레타 모드를 가지는 이름을 그랜트/시즈할 경우에 지나치게 많은 개체 이름들이 그랜트/시즈되어야 하며, 그랜트/시즈되는 원소들에 대한 충돌(conflict)을 검사하는 것이 어렵다.
이러한 문제를 해결하기 위해서 모레타 모드에 대해서는 그 모듈 단위로 그랜트/시즈할 수 있는 새로운 특성을 갖는 구문인 그랜트엠/시즈엠(GRANTM/SEIZEM)을 정의한다. 여기서, 그랜트엠/시즈엠은 모레타 모드에 의하여 생성된 모듈에 대해서 모듈 단위로 그랜트/시즈될 수 있는 기능을 제공하므로써, 실제 모레타 모드의 그랜트/시즈와 가장 유사한 기능을 제공한다.
다음으로, 종래의 관련 기술로서, 모레타 모드의 변환 방법(대한민국 특허출원번호 제96-67048호 : 1996. 12. 17)을 간략하게 살펴보면 다음과 같다.
먼저, 모레타 모드에 대해서 모듈 이름이 모레타_이름_M인 모듈을 생성하고, 모듈내에 프로시져 및 프로세스를 제외한 모레타 모드의 구성 원소들에 대해 변환된 이름을 생성하고, 메소드의 동적 결합을 위한 가상 원소 프로시져 테이블을 생성한다. 모드가 타스크 모드일 경우에는 타스크 모드내에 정의된 프로시져에 대해 변환된 코드를 생성하고, 타스크_모드_ps의 이름을 가지는 프로세스 정의문 코드를 생성하고, 타스크내 정의된 프로시져는 프로세스가 칠의 리시브-케이스(RECEIVE-CASE) 문에서 관련 시그널을 받았을 때 호출이 되도록 코드를 생성한다. 모드가 리젼 모드일 경우에는 리젼 모드내에 정의된 프로시져에 대해서 세마포(semaphore)를 이용하여 데이터에 대한 상호 배제 동기화 접근을 보장할 수 있도록 코드를 변환한다. 모드가 모듈 모드일 경우에는 모듈 모드내에 정의된 프로시져 및 프로세스에 대한 코드를 생성한다.
한편, 현재 국제전기통신연합-통신부(ITU-T : Telecommunication part of International Telecommunication Union)에서 전기통신 구현용 표준화 프로그래밍 언어로 권고하고 있는 칠-96은 모듈성, 병행성, 분산성, 실시간성, 강한 타입 점검(strongly type checking) 기능 및 분리 컴파일 기능 등과 같은 기존 칠(CHILL) 기능 외에 객체지향성(object-orientation), 포괄성(genericity) 및 중복성(overloading) 기능들을 갖는다.
국제전기통신연합-통신부(ITU-T)는 새로운 소프트웨어 시스템 구축시 확장이 용이하고 기존 프로그램의 재사용 능력과 모듈화 능력을 높이고, 사용자가 쉽게 프로그래밍할 수 있도록 많은 언어적 기능을 칠-96 언어에 도입하여 표준화하고 있다.
일반적으로 교환기에는 병행 객체지향 프로그래밍에 의한 소프트웨어 실행에 신뢰성이 요구된다. 이를 위해 프로그램 실행의 강한 타입 점검 기능을 가급적 정적 타입 분석기에서 수행하는데, 객체지향의 서브-타이핑(sub-typing)과 포함적 다형성(inclusive polymorphism) 때문에 컴파일시에 수행하는 정적 클래스 타입 분석 뿐만아니라 프로그램 실행시에 수행하는 동적 클래스 타입 분석도 요구한다.
그런데, 기존의 객체지향 프로그래밍 언어는 실행 성능을 높이기 위해 정적 클래스 타입 분석에만 의존하는 경향이 있어, 객체지향 프로그래밍을 복잡하게 유도하며, 객체지향 프로그램의 실행 오류를 유발시키는 문제점이 있었다.
상기 문제점을 해결하기 위하여 안출된 본 발명은, 객체지향 프로그램을 만들거나 실행할 때 발생되는 객체 장소 전달의 사용 제약과 실행 오류들을 정적 클래스 타입 분석기와 동적 클래스 타입 식별 기능 코드로 방지하여 객체지향 프로그래밍의 편리성과 객체 장소 전달 실행의 정확성에 도움을 줄 수 있는 객체 장소 전달의 사용 오류 탐지 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
즉, 본 발명은 모레타 모드의 단일 상속하에서 객체지향 프로그램 실행시 일어날 수 있는 참조 모드를 포함한 객체 장소의 치환 실행 및 인/록(IN/LOC) 매개인자 전달의 사용 오류들을 정적인 컴파일 시간 또는 동적인 실행 시간에 탐지하여 객체지향 프로그램의 실행 정확성과 프로그래밍의 유연성을 향상시킬 수 있는 객체 장소 전달의 사용 오류 탐지 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1 은 본 발명이 적용되는 하드웨어 시스템의 일예시도.
도 2 는 본 발명에 따른 참조 모드를 포함하여 모레타 모드를 갖는 객체 장소 전달의 사용 오류 탐지 방법에 대한 일실시예 흐름도.
도 3 은 본 발명에 따른 모레타 장소에 대한 치환 실행 또는 인/록(IN/LOC) 매개인자 전달에 대한 클래스 타입 호환성 규칙에 따른 실행 오류를 탐지하는 과정에 대한 일실시예 상세 흐름도.
도 4 는 본 발명에 따른 모레타 참조 장소에 대한 치환 실행 또는 인(IN) 매개인자 전달에 대한 클래스 타입 호환성 규칙에 따른 실행 오류를 탐지하는 과정에 대한 일실시예 상세 흐름도.
도 5 는 본 발명에 따른 모레타 참조 장소의 역-참조 치환 실행에 대해 클래스 타입 호환성 규칙에 따른 실행 오류를 탐지하는 과정에 대한 일실시예 상세 흐름도.
도 6 은 본 발명에 따른 모레타 참조 장소의 록(LOC) 매개인자 전달 또는 모레타 참조의 참조 등을 갖는 객체 장소의 치환 실행 및 인/록(IN/LOC) 매개인자 전달에 대해 클래스 타입 호환성 규칙에 따른 실행 오류를 탐지하는 과정에 대한 일실시예 상세 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
101 : 메인 메모리 보드 102 : 중앙 처리 장치
103 : 유닉스 운영체제 104 : 보조 기억 장치
105 : 입/출력 장치 106 : 시스템 버스
상기 목적을 달성하기 위하여 본 발명은, 객체 장소의 전달 사용에 대한 오류 탐지기에 적용되는 클래스 호환성 규칙에 대한 객체 장소 전달의 사용 오류 탐지 방법에 있어서, 클래스 타입 호환성 규칙에 따라 모레타 모드를 갖는 객체 장소의 사용 경우들을 분류하여 판단하는 제 1 단계; 상기 제 1 단계의 판단 결과에 따라 모레타 장소에 대한 치환 실행 또는 인/록(IN/LOC) 매개인자 전달의 사용 오류를 탐지하는 제 2 단계; 상기 제 1 단계의 판단 결과에 따라 모레타 참조 장소에 대한 치환 실행 또는 인(IN) 매개인자 전달의 실행 오류를 탐지하는 제 3 단계; 상기 제 1 단계의 판단 결과에 따라 모레타 참조 장소에 대한 역-참조 치환 실행에 대한 실행 오류를 탐지하는 제 4 단계; 및 상기 제 1 단계의 판단 결과에 따라 모레타 참조 장소의 록(LOC) 매개인자 전달 또는 모레타 참조의 참조 모드 등을 갖는 객체 장소의 치환 실행 및 인/록(IN/LOC) 매개인자 전달에 대한 실행 오류를 탐지하는 제 5 단계를 포함하여 이루어진 것을 특징으로 한다.
한편, 본 발명은, 프로세서를 구비한 오류 탐지기에, 클래스 타입 호환성 규칙에 따라 모레타 모드를 갖는 객체 장소의 사용 경우들을 분류하여 판단하는 제 1 기능; 상기 제 1 기능에서의 판단 결과에 따라 모레타 장소에 대한 치환 실행 또는 인/록(IN/LOC) 매개인자 전달의 사용 오류를 탐지하는 제 2 기능; 상기 제 1 기능에서의 판단 결과에 따라 모레타 참조 장소에 대한 치환 실행 또는 인(IN) 매개인자 전달의 실행 오류를 탐지하는 제 3 기능; 상기 제 1 기능에서의 판단 결과에 따라 모레타 참조 장소에 대한 역-참조 치환 실행에 대한 실행 오류를 탐지하는 제 4 기능; 및 상기 제 1 기능에서의 판단 결과에 따라 모레타 참조 장소의 록(LOC) 매개인자 전달 또는 모레타 참조의 참조 모드 등을 갖는 객체 장소의 치환 실행 및 인/록(IN/LOC) 매개인자 전달에 대한 실행 오류를 탐지하는 제 5 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명이 적용되는 하드웨어 시스템의 일예시도로서, 그 구성요소 및 동작을 살펴보면 다음과 같다.
메인 메모리 보드(101)는 칠-96 소스(source) 프로그램을 칠 목적(target) 프로그램으로 변환하는 칠-96 컴파일러의 정적/동적 타입 분석기 및 관련 입력 칠-96 프로그램 파일들이 실장되는 보드이다.
중앙 처리 장치(102)는 메인 메모리 보드(101)에 탑재된 파일을 수행시키는 보드이다.
유닉스(UNIX) 운영체제(103)는 메인 메모리 보드(101), 중앙 처리 장치(102), 보조 기억 장치(104) 및 입/출력 장치(105)를 제어한다.
보조 기억 장치(104)는 파일 및 데이터 등을 저장하는 장치로서, 메인 메모리 보드(101)에 탑재되지 않은 파일 및 도구들이 저장된다.
입/출력 장치(105)는 칠-96 컴파일러의 클래스 타입 점검기를 수행하기 위해 필요한 파일, 데이터 및 수행중에 발생되는 모든 오류 메시지를 입출력한다.
상기한 바와 같은 메인 메모리 보드(101) 및 각 장치(102 내지 105)는 시스템 버스(106)를 통해 메시지를 송수신한다.
전술한 바와 같이 세가지 이질적인 클래스(순차적인 모듈 모드, 모니터 특성의 리젼 모드 및 병행적인 타스크 모드)들중 리젼 모드와 타스크 모드로 생성된 객체는 장소를 직접 치환 전달할 수 없다는 언어 정의 및 컴파일러 구현이 에이다-95(Ada-95) 언어에서 볼 수 있는데(예 : 제한(limited) 타입), 이런 치환-가능/치환-불가(ASSIGNABLE/NOT_ASSIGNABLE) 속성의 상속 제약점이 클래스 호환성 규칙의 동적 타입 점검을 통해 쉽게 반영되고 있다.
칠-96 언어의 단일 상속에 기반한 이질적인 클래스 계층 구조하에 객체 장소의 전달 사용에 대한 오류 탐지기는 칠-96 컴파일러 전단부인 전위-처리기(front-end)의 클래스 타입 점검기와 목적 실행 코드 생성기에서 개발되었다.
칠-96 컴파일러 전단부는 입력 프로그램을 구문 분석하면서 심볼 테이블 및 추상 구문 트리(AST : Abstract Syntax Tree)를 생성하는 구문 분석부, "그랜트/시즈(GRANT/SEIZE)" 이름 정보를 이용하여 심볼 테이블을 완벽하게 재구성하는 가시성 제어부, 모드 연결 등의 데이터 어의 분석을 수행하는 어의 분석부, 실행문과 이에 따른 수식부에서 언급되는 사용 이름과 심볼 테이블에 축적된 정의 이름과의 연결을 통한 이름 결합부, 이에 따른 장소 사용의 올바름을 탐지하는 타입 점검부 및 목적하는 방향으로 수행될 수 있는 실행 코드 생성부로 구성된다.
여기서, 본 발명이 적용되는 클래스 호환성 규칙에 대한 객체 장소 전달 사용의 오류 탐지기는 정적인 타입 점검부에 추가되며, 동적 타입 점검을 요할 때는 실행 코드 생성부에서 동적 타입 점검 실행 코드를 출력하게 되어 프로그램 실행시 타입 점검을 동적으로 수행하게 된다. 그리고, 사용자의 객체지향 프로그래밍 오류시 그 분석 결과를 컴파일 오류 메시지 뿐만아니라 실행 오류 메시지 형태로도 출력한다.
본 발명의 바람직한 실시예로, 칠-96 언어로 작성된 객체지향 소스 프로그램을 입력받아 참조 모드를 포함한 객체 장소의 치환 실행 등에 대해 이를 허용할 것인가를 판별하는 검증 방법이 필요하다. 여기서, 클래스는 이질적인 특성의 모레타 모드를 의미한다. 즉, 모레타는 모듈(MOdule), 리젼(REgion) 및 타스크(TAsk)의 영문 앞자 두자만을 모아 만든 국제전기통신연합-통신부(ITU-T)의 칠-96 용어이다.
칠-96 언어에서 모듈 모드는 "C++언어"의 순차적인 클래스처럼 내부에 병행적으로 실행되는 쓰레드(thread)가 없으며, 병행성과 무관한 순차적인 특성을 가지므로 모듈 장소들끼리는 서로 직접 장소를 전달(또는 복사/치환)할 수 있다.
그러나, 모니터(monitor) 특성을 갖는 리젼 모드는 "C++" 클래스와 달리 상호-배제 동기화를 제공하는 병행적 특성을 가지므로 모듈 장소처럼 서로 전달할 수 없다.
그리고, 객체 내부에 병행적 쓰레드를 갖는 타스크 모드는 병행적 특성을 가지므로 리젼 장소처럼 서로 전달할 수 없다.
칠-96 언어에 근거한 객체지향 소프트웨어는 포함적 다형성을 지원하기 위해 전술한 바와 같은 이질적인 특성을 지닌 세가지 모드들과 이들간의 제한적 상속을 제공한다.
여기서, 포함적 다형성이란 상위 클래스는 하위 클래스에게 상속하는데 일부를 제외할 수 없고, 상위 클래스로 생성된 참조 객체 장소는 이의 상위 객체 뿐만아니라 하위 객체를 가리킬 수 있다. 이때, 하위 클래스는 상위 클래스에 정의된 구성 원소(즉, 메소드)를 재정의할 수 있다. 그러나, 참조 객체 장소가 지적하는 구성 원소가 이의 차-상위 객체 장소에는 존재하지 않으므로 차-상위 객체 장소를 가리킬 수는 없다. 그리고, "SYNMODE x = INT; SYNMODE y = x(1:10); DCL xx x; DCL yy y;"와 같이 정의/선언되어 있을 때 yy 장소 값을 xx 장소에 전달할 수 있지만, 그 반대로는 메모리 크기 때문에 올바르게 실행될 수도 없다. 따라서, 어느 한쪽이 다른 한쪽에 편협해서 치우쳐 있는 데이터(data) 타입 호환성을 가지는 것을 서브-타이핑이라 한다.
상기한 바와 같은 병행 객체지향 프로그래밍 언어인 칠-96 언어는 이질적인 클래스 계층 구조와 객체 치환 불가 속성 및 포함적 다형성으로 인해 객체 장소의 전달 형태에 따라 다양한 정적/동적 타입 점검 기능들이 필요하게 된다.
객체 장소 전달에 대한 동적 타입 점검 기능을 필요로 하는 객체지향 칠-96 프로그램의 일예를 참고적으로 살펴보면 다음과 같다.
SYNMODE baseMode = MODULE SPEC ... END;
SYNMODE derivedMode = MODULE SPEC BASED_ON baseMode ... END;
SYNMODE stackMode = MODULE SPEC
DCL stackData ARRAY(1:length) REF baseMode;
push: PROC(REF baseMode) END; /* "REF baseMode"는 형 매개인자 모드 */
pop: PROC( ) RETURNS(REF baseMode) END;
PUBLIC push, pop;
END stackMode;
DCL stackLoc stackMode,
refDerivedLoc REF derivedMode;
refDerivedLoc := ALLOCATE(derivedMode); /* 치환 실행 */
/* 상위 REF 클래스 객체에 하위 REF 클래스 객체를 치환하는 것이 가능 */
CALL stackLoc.push(refDerivedLoc); /* "refDerivedLoc"은 실 매개인자 */...
refDerivedLoc := stackLoc.pop( ); /* 정적/동적 타입 점검 기능 수행 */
여기서, 위의 "refDerivedLoc := stackLoc.pop( );" 치환 실행문에서 refDerivedLoc의 정적 타입(Static Type)을 "ST(refDerivedLoc) = REF derivedMode"라 하고, stackLoc.pop()의 정적 타입을 "ST(stackLoc.pop( )) = REF baseMode"라 할 때, 기존의 "C++" 등과 같이 정적인 서브-타이핑에만 기반한 객체지향 프로그래밍 언어는 "(REF derivedMode) <= (REF baseMode)" 같은 치환문을 허용하지 않는다. 왜냐하면, "REF derivedMode"로 정의된 객체 참조 장소가 "baseMode"가 아닌 "derivedMode"의 구성 원소를 참조할 수 있는데 이때 실제로 "baseMode" 객체를 참조하므로 실행 오류를 유발시키기 때문이다.
그러나, 위의 예제 프로그램에서 "stackLoc.pop()"의 실제 결과 값은 "REF derivedMode"인 동적 타입 "DT(stackLoc.pop()) = REF derivedMode"을 발생시키므로 실제로 "ST(REF derivedMode) := DT(REF derivedMode)"가 되므로 치환 실행을 반드시 허용해야 한다. 이와 같은 객체지향 프로그래밍의 편리성과 실행의 신뢰성을 높이기 위해서는 컴파일러가 정적 타입 점검 기능 뿐만아니라 동적 타입 점검 기능을 필요로 한다.
본 발명은 국제전기통신연합-통신부(ITU-T) 칠-96에서 정의한 단일 상속하의 세가지 모레타 모드 정의와 제한된 상속 규칙을 바탕으로 기존의 다른 병행 객체지향 프로그래밍 언어보다 개선된 그리고 프로그래밍이 편리한 접근 방식을 취하고 있다.
도 2 는 본 발명에 따른 참조 모드를 포함하여 모레타 모드를 갖는 객체 장소 전달의 사용 오류 탐지 방법에 대한 일실시예 흐름도로서, 칠-96 언어의 클래스 타입 호환성 규칙에 따라 객체 장소의 사용 경우들을 분류하여 탐지하는 개략적인 일실시예로서, 칠-96 소스 프로그램을 입력할 때 객체지향에 관련된 세가지 모레타 모드의 객체 장소 사용의 오류를 검증하는 전체 절차를 나타낸다.
먼저, 입력된 모레타 장소 전달이 객체 장소의 직접 치환 실행, 프로시듀어/프로세스 호출/구동시 인(IN) 매개인자(해당 장소에 직접 전달) 또는 록(LOC) 매개인자(해당 장소에 주소 전달) 전달인지를 판단한다(201).
상기 판단 결과(201), 입력된 객체 장소 전달이 직접 치환 실행, 프로시듀어/프로세스의 인/록(IN/LOC) 매개인자 전달이면 이에 대한 실행 오류 여부를 탐지한다(202).
상기 판단 결과(201), 입력된 객체 장소 전달이 직접 치환 실행, 프로시듀어/프로세스의 인/록(IN/LOC) 매개인자 전달이 아니면, 모레타 참조 장소의 치환 실행 또는 인(IN) 매개인자 전달인지를 판단한다(203).
상기 판단 결과(203), 모레타 참조 장소의 치환 실행 또는 인(IN) 매개인자 전달이면 이에 대한 실행 오류 여부를 탐지한다(204).
상기 판단 결과(203), 모레타 참조 장소의 치환 실행 또는 인(IN) 매개인자 전달이 아니면, 모레타 참조 장소의 역-참조 치환 실행인지를 판단한다(205).
상기 판단 결과(205), 모레타 참조 장소의 역-참조 치환 실행이면, 이에 대한 실행 오류 여부를 탐지한다(206).
상기 판단 결과(205), 모레타 참조 장소의 역-참조 치환 실행이 아니라 모레타 참조 장소의 록(LOC) 매개인자 전달이나 모레타 참조의 참조 장소 또는 모레타 참조 참조의 참조 장소 등 복수개의 참조 장소이면 이에 대한 실행 오류 여부를 탐지한다(207).
도 3 은 본 발명에 따른 모레타 장소에 대한 치환 실행 또는 인/록(IN/LOC) 매개인자 전달에 대한 클래스 타입 호환성 규칙에 따른 실행 오류를 탐지하는 과정(202)에 대한 일실시예 상세 흐름도로서, 객체 장소가 치환-가능한 속성의 모듈 모드를 가질때 치환할 수 있고 상/하위 모듈 모드 관계가 아닌 동일의 모드이어야 한다는 제약을 탐지하는 절차를 나타낸다.
먼저, 입력된 모듈 장소의 치환 실행시, 인/록(IN/LOC) 매개인자 속성을 통한 객체 치환 전달에서 양쪽 모드들이 치환-가능한(assignable) 속성을 가지고 있는지를 정적인 컴파일 시간에 판단한다(301).
상기 판단 결과(301), 입력된 모듈 장소 치환 전달이 정적인 치환-가능 속성을 갖지 않는다면 모듈 객체 장소를 치환 전달할 수 없다는 오류 메시지를 출력한 후에 종료한다(303).
상기 판단 결과(301), 입력된 모듈 장소 치환 전달이 치환-가능한 속성을 갖는다면 양쪽 장소의 정적인 모드가 일치(syn)하는지를 판단한다(302). 이때, 일치한다는 의미는 양쪽 모드가 같은 이름의 모드를 가리키거나 "SYNMODE x = y;"와 같이 이름은 다르지만 동일한(synonymous) 모드이어야 한다. 여기서, 기존의 "C++"와 같이 상위 객체에 하위 객체를 치환하는 투영(projection) 규칙을 적용한 것이 아니라 같은 크기의 객체 장소 치환만을 허용한 것은 객체지향의 상/하위 클래스를 가변적 구조체 모드로 간주하였을 때 고정 구조체와 이의 확장된 가변 구조체 장소간에 치환할 객체지향 프로그래밍의 필요성이 없으며, 구현상 서로 맞지 않는 메소드 벡터(vector) 포인터 장소의 복사를 방지할 수 있기 때문이다.
상기 판단 결과(302), 일치하지 않으면, 양쪽 장소의 모드가 일치하지 않는다는 오류 메시지를 출력한 후에 종료하고(303), 일치하면 객체지향 프로그램의 실행시 문제가 없으므로 바로 종료하게 된다.
도 4 는 본 발명에 따른 모레타 참조 장소에 대한 치환 실행 또는 인(IN) 매개인자 전달에 대한 클래스 타입 호환성 규칙에 따른 실행 오류를 탐지하는 과정(204)에 대한 일실시예 상세 흐름도로서, 객체 참조 장소가 동일한 모드이거나 상/하위 모드를 가질때 정적 또는 동적으로 치환할 수 있는 제약을 탐지하는 절차를 나타낸다.
상기 판단 결과(203), 모레타 참조 장소의 치환 실행 또는 인(IN) 매개인자 전달이면 왼쪽 장소 또는 형 매개인자의 모드가 오른쪽 장소 또는 실 매개인자와 동일하거나 상위 모레타 모드인지를 판단한다(401).
상기 판단 결과(401), 만일 그렇다면 모레타 참조 장소의 포함적 다형성을 보장할 수 있으므로 프로그램의 실행 오류가 발생하지 않아 종료하게 된다.
그러나, 판단 결과(401), 모레타 참조 장소의 치환 실행 또는 인(IN) 매개인자 전달시 왼쪽 장소 또는 형 매개인자의 모드가 오른쪽 장소 또는 실 매개인자의 모드보다 하위 모레타 모드이면 정적으로 객체지향의 투영 규칙을 위배하지만, 실제 프로그램이 수행될 때 왼편(또는 형 매개인자) 모드가 오른편(또는 실 매개인자) 모드보다 상위 모레타 모드가 될 수 있으므로 이를 동적(또는 실행 시간)으로 클래스 타입을 식별하는 제약을 판별한다(402).
상기 판단 결과(402), 만일 프로그램이 수행될 때 동적으로 왼편(또는 형 매개인자) 모드가 오른편(또는 실 매개인자) 모드보다 상위 모레타 모드가 된다면 프로그램이 올바로 수행될 수 있으므로 종료할 수 있지만, 그렇지 않다면 동적 점검에 의해 포함적 다형성을 위반하는 해당 오류 메시지를 출력하고 종료하게 된다(403).
도 5 는 본 발명에 따른 모레타 참조 장소의 역-참조 치환 실행에 대해 클래스 타입 호환성 규칙에 따른 실행 오류를 탐지하는 과정(206)에 대한 일실시예 상세 흐름도로서, 객체 참조의 역-참조 장소가 동일한 모드인지를 정적으로 그리고 동적으로 탐지하는 절차를 나타낸다.
먼저, 입력된 모듈 참조 장소에 대한 역-참조 치환 실행시 양쪽 장소의 모레타 모드들이 클래스 계층 구조내에서 같은 경로상에 있는지를 정적 시간에 판단한다(501).
상기 판단 결과(501), 양쪽 모레타 장소의 모드들이 같은 경로상에 있지 않으면 서로 다른 객체 장소를 가리키므로 치환할 수 없어서 이에 대한 해당 오류 메시지를 컴파일 시간에 출력하고 종료한다(503).
상기 판단 결과(501), 양쪽 모레타 장소의 모드들이 같은 경로상에 있다면 프로그램 수행시에 같은 모레타 모드를 가리킬 수 있으므로 동적으로 식별하고 반드시 치환-가능 속성을 갖는지를 판단한다(502).
상기 판단 결과(502), 위의 두 조건중 하나라도 만족하지 못하면 치환할 조건을 충족하지 못하므로 이에 대한 해당 오류 메시지를 수행 시간에 실행-시간(run-time) 시스템을 통해 출력하고 종료한다(503).
상기 판단 결과(502), 위의 두 조건 모두를 만족한다면 모레타 참조 장소의 역-참조 치환을 수행할 수 있으므로 바로 종료한다.
도 6 은 본 발명에 따른 모레타 참조 장소의 록(LOC) 매개인자 전달 또는 모레타 참조의 참조 등을 갖는 객체 장소의 치환 실행 및 인/록(IN/LOC) 매개인자 전달에 대해 클래스 타입 호환성 규칙에 따른 실행 오류를 탐지하는 과정(207)에 대한 일실시예 상세 흐름도로서, 왼쪽 장소의 모드가 오른쪽 장소의 모드와 동일한지를 정적으로 탐지하는 절차를 나타낸다.
먼저, 입력된 모레타 참조 장소의 록(LOC) 매개인자 전달이나 모레타 참조 {참조}+(+는 하나 이상을 의미함. 예 : SYNMODE x = INT; SYNMODE y = REF x; SYNMODE z = REF y; 의 z처럼 REF를 2개 이상 가짐을 지칭함) 모드의 장소에 대한 치환 실행 또는 인/록(IN/LOC) 매개인자 전달시 양쪽 장소의 모레타 모드들이 동일한지를 정적 시간에 판단한다(601).
상기 판단 결과(601), 양쪽 모레타 장소 또는 형/실 매개인자의 모드들이 동일하지 않으면 서로 다른 객체 장소를 가리키므로 객체 장소를 전달할 수 없어서 이에 대한 해당 오류 메시지를 컴파일 시간에 출력하고 종료한다(602).
그러나, 판단 결과(601), 동일하다면 치환 실행이나 인/록(IN/LOC) 매개인자 전달 실행에 아무런 문제가 없으므로 바로 종료하게 된다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같은 본 발명은, 사용자가 단일 상속하의 세가지 모레타 모드들로 구성된 클래스 계층 구조를 기반으로 객체 장소 또는 객체 참조 장소를 치환 실행 또는 프로시듀어/프로세스 호출/구동시의 인/록(IN/LOC) 매개인자 전달로 사용할 때 실행이 가능한지 또는 불가능한지 그 이유를 컴파일러 오류 메시지나 실행-시간 시스템의 오류 메시지를 통해 알 수 있으며, 병행 객체지향 프로그램을 손쉽게 프로그래밍할 수 있고, 객체지향 소프트웨어의 수행에 대한 신뢰성을 보장할 수 있는 효과가 있다.
또한, 본 발명은, 객체지향 소프트웨어에 내재된 객체 장소 전달의 오류 발견 및 정정을 컴파일 시간 뿐만아니라 실행 시간에 발견하도록 클래스 타입 점검기를 구성하므로써, 객체지향 소프트웨어 제작의 편리성과 객체 실행의 신뢰성을 대폭 향상시킬 수 있는 효과가 있다.

Claims (11)

  1. 오류 탐지기에 적용되는 클래스 호환성 규칙에 대한 객체 장소 전달의 사용 오류 탐지 방법에 있어서,
    클래스 타입 호환성 규칙에 따라 모레타 모드를 갖는 객체 장소의 사용 경우들을 분류하여 판단하는 제 1 단계;
    상기 제 1 단계의 판단 결과에 따라 모레타 장소에 대한 치환 실행 또는 인/록(IN/LOC) 매개인자 전달의 사용 오류를 탐지하는 제 2 단계;
    상기 제 1 단계의 판단 결과에 따라 모레타 참조 장소에 대한 치환 실행 또는 인(IN) 매개인자 전달의 실행 오류를 탐지하는 제 3 단계;
    상기 제 1 단계의 판단 결과에 따라 모레타 참조 장소에 대한 역-참조 치환 실행에 대한 실행 오류를 탐지하는 제 4 단계; 및
    상기 제 1 단계의 판단 결과에 따라 모레타 참조 장소의 록(LOC) 매개인자 전달 또는 모레타 참조의 참조 모드 등을 갖는 객체 장소의 치환 실행 및 인/록(IN/LOC) 매개인자 전달에 대한 실행 오류를 탐지하는 제 5 단계
    를 포함하여 이루어진 객체 장소 전달의 사용 오류 탐지 방법.
  2. 제 1 항에 있어서,
    상기 제 1 단계는,
    입력된 모레타 장소 전달이 객체 장소의 직접 치환 실행, 프로시듀어/프로세스 호출/구동시 인(IN) 매개인자 또는 록(LOC) 매개인자 전달인지를 판단하는 제 6 단계;
    상기 제 6 단계의 판단 결과, 입력된 객체 장소 전달이 직접 치환 실행 또는 인/록(IN/LOC) 매개인자 전달이 아니면, 모레타 참조 장소의 치환 실행 또는 인(IN) 매개인자 전달인지를 판단하는 제 7 단계; 및
    상기 제 7 단계의 판단 결과, 모레타 참조 장소의 치환 실행 또는 인(IN) 매개인자 전달이 아니면, 모레타 참조 장소의 역-참조 치환 실행인지를 판단하는 제 8 단계
    를 포함하여 이루어진 객체 장소 전달의 사용 오류 탐지 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 단계는,
    객체 장소가 치환-가능한 속성의 모듈 모드를 가질때 치환할 수 있고, 상/하위 모듈 모드 관계가 아닌 동일의 모드이어야 한다는 제약을 탐지하는 것을 특징으로 하는 객체 장소 전달의 사용 오류 탐지 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 단계는,
    입력된 모듈 장소의 치환 실행시, 인/록(IN/LOC) 매개인자 속성을 통한 객체 치환 전달에서 양쪽 모드들이 치환-가능한(assignable) 속성을 가지고 있는지를 정적인 컴파일 시간에 판단하는 제 9 단계;
    상기 제 9 단계의 판단 결과, 입력된 모듈 장소 치환 전달이 정적인 치환-가능 속성을 갖지 않는다면 모듈 객체 장소를 치환 전달할 수 없다는 오류 메시지를 출력하는 제 10 단계; 및
    상기 제 9 단계의 판단 결과, 입력된 모듈 장소 치환 전달이 치환-가능한 속성을 갖는다면 양쪽 장소의 정적인 모드가 일치(syn)하는지를 판단하여, 일치하지 않으면 양쪽 장소의 모드가 일치하지 않는다는 오류 메시지를 출력하고, 일치하면 종료하는 제 11 단계
    를 포함하여 이루어진 객체 장소 전달의 사용 오류 탐지 방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 제 3 단계는,
    객체 참조 장소가 동일한 모드이거나 상/하위 모드를 가질때 정적 또는 동적으로 치환할 수 있는 제약을 탐지하는 것을 특징으로 하는 객체 장소 전달의 사용 오류 탐지 방법.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 제 3 단계는,
    왼쪽 장소 또는 형 매개인자의 모드가 오른쪽 장소 또는 실 매개인자와 동일하거나 상위 모레타 모드인지를 판단하는 제 9 단계;
    상기 제 9 단계의 판단 결과, 그러면 종료하고, 그렇지 않으면 실제 프로그램이 수행될 때 왼편(또는 형 매개인자) 모드가 오른편(또는 실 매개인자) 모드보다 상위 모레타 모드가 될 수 있으므로 이를 동적(또는 실행 시간)으로 클래스 타입을 식별하는 제약을 판단하는 제 10 단계; 및
    상기 제 10 단계의 판단 결과, 프로그램이 수행될 때 동적으로 왼편(또는 형 매개인자) 모드가 오른편(또는 실 매개인자) 모드보다 상위 모레타 모드가 되면 종료하고, 그렇지 않으면 동적 점검에 의해 포함적 다형성을 위반하는 해당 오류 메시지를 출력하는 제 11 단계
    를 포함하여 이루어진 객체 장소 전달의 사용 오류 탐지 방법.
  7. 제 1 항 또는 제 2 항에 있어서,
    상기 제 4 단계는,
    객체 참조의 역-참조 장소가 동일한 모드인지를 정적으로/동적으로 탐지하는 것을 특징으로 하는 객체 장소 전달의 사용 오류 탐지 방법.
  8. 제 1 항 또는 제 2 항에 있어서,
    상기 제 4 단계는,
    입력된 모듈 참조 장소에 대한 역-참조 치환 실행시 양쪽 장소의 모레타 모드들이 클래스 계층 구조내에서 같은 경로상에 있는지를 정적 시간에 판단하는 제 9 단계;
    상기 제 9 단계의 판단 결과, 양쪽 모레타 장소의 모드들이 같은 경로상에 있지 않으면 서로 다른 객체 장소를 가리키므로 치환할 수 없다는 오류 메시지를 컴파일 시간에 출력하는 제 10 단계; 및
    상기 제 9 단계의 판단 결과, 양쪽 모레타 장소의 모드들이 같은 경로상에 있으면 프로그램 수행시에 같은 모레타 모드를 가리킬 수 있으므로 동적으로 식별하고 치환-가능 속성을 갖는지를 판단하여, 두 조건중 하나라도 만족하지 못하면 치환할 조건을 충족하지 못하므로 이에 대한 해당 오류 메시지를 실행 시간에 출력하고, 두 조건 모두를 만족하면 종료하는 제 11 단계
    를 포함하여 이루어진 객체 장소 전달의 사용 오류 탐지 방법.
  9. 제 1 항 또는 제 2 항에 있어서,
    상기 제 5 단계는,
    왼쪽 장소의 모드가 오른쪽 장소의 모드와 동일한지를 정적으로 탐지하는 것을 특징으로 하는 객체 장소 전달의 사용 오류 탐지 방법.
  10. 제 1 항 또는 제 2 항에 있어서,
    상기 제 5 단계는,
    입력된 모레타 참조 장소의 록(LOC) 매개인자 전달이나 모레타 참조 {참조}+모드의 장소에 대한 치환 실행 또는 인/록(IN/LOC) 매개인자 전달시 양쪽 장소의 모레타 모드들이 동일한지를 정적 시간에 판단하는 제 9 단계;
    상기 제 9 단계의 판단 결과, 양쪽 모레타 장소 또는 형/실 매개인자의 모드들이 동일하지 않으면 서로 다른 객체 장소를 가리키므로 객체 장소를 전달할 수 없다는 오류 메시지를 컴파일 시간에 출력하는 제 10 단계; 및
    상기 제 9 단계의 판단 결과, 동일하다면 치환 실행이나 인/록(IN/LOC) 매개인자 전달 실행에 아무런 문제가 없으므로 종료하는 제 11 단계
    를 포함하여 이루어진 객체 장소 전달의 사용 오류 탐지 방법.
  11. 프로세서를 구비한 오류 탐지기에,
    클래스 타입 호환성 규칙에 따라 모레타 모드를 갖는 객체 장소의 사용 경우들을 분류하여 판단하는 제 1 기능;
    상기 제 1 기능에서의 판단 결과에 따라 모레타 장소에 대한 치환 실행 또는 인/록(IN/LOC) 매개인자 전달의 사용 오류를 탐지하는 제 2 기능;
    상기 제 1 기능에서의 판단 결과에 따라 모레타 참조 장소에 대한 치환 실행 또는 인(IN) 매개인자 전달의 실행 오류를 탐지하는 제 3 기능;
    상기 제 1 기능에서의 판단 결과에 따라 모레타 참조 장소에 대한 역-참조 치환 실행에 대한 실행 오류를 탐지하는 제 4 기능; 및
    상기 제 1 기능에서의 판단 결과에 따라 모레타 참조 장소의 록(LOC) 매개인자 전달 또는 모레타 참조의 참조 모드 등을 갖는 객체 장소의 치환 실행 및 인/록(IN/LOC) 매개인자 전달에 대한 실행 오류를 탐지하는 제 5 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1019980048769A 1998-11-13 1998-11-13 단일 상속하의 모레타 모드를 갖는 객체 장소전달의 사용 오류탐지 방법 KR100280187B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980048769A KR100280187B1 (ko) 1998-11-13 1998-11-13 단일 상속하의 모레타 모드를 갖는 객체 장소전달의 사용 오류탐지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980048769A KR100280187B1 (ko) 1998-11-13 1998-11-13 단일 상속하의 모레타 모드를 갖는 객체 장소전달의 사용 오류탐지 방법

Publications (2)

Publication Number Publication Date
KR20000032343A KR20000032343A (ko) 2000-06-15
KR100280187B1 true KR100280187B1 (ko) 2001-02-01

Family

ID=19558278

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980048769A KR100280187B1 (ko) 1998-11-13 1998-11-13 단일 상속하의 모레타 모드를 갖는 객체 장소전달의 사용 오류탐지 방법

Country Status (1)

Country Link
KR (1) KR100280187B1 (ko)

Also Published As

Publication number Publication date
KR20000032343A (ko) 2000-06-15

Similar Documents

Publication Publication Date Title
Lange et al. A static verification framework for message passing in go using behavioural types
US7120898B2 (en) Intermediate representation for multiple exception handling models
US7818729B1 (en) Automated safe secure techniques for eliminating undefined behavior in computer software
EP1258805B1 (en) Placing exception throwing instruction in compiled code
US7810080B2 (en) Automated safe secure techniques for eliminating undefined behavior in computer software
US7856624B2 (en) Automated safe secure techniques for eliminating undefined behavior in computer software
Miecznikowski et al. Decompiling Java bytecode: Problems, traps and pitfalls
US7543271B2 (en) Compiling source code using generic classes
Nystrom et al. J& nested intersection for scalable software composition
Prabhu et al. Interprocedural exception analysis for C++
Imai et al. Multiparty session programming with global protocol combinators
Renault et al. From AADL architectural models to Petri Nets: Checking model viability
Neverov et al. Metaphor: A multi-stage, object-oriented programming language
KR100280187B1 (ko) 단일 상속하의 모레타 모드를 갖는 객체 장소전달의 사용 오류탐지 방법
Dovland et al. Observable behavior of dynamic systems: Component reasoning for concurrent objects
Tabareau A theory of distributed aspects
Stärk et al. The problem of bytecode verification in current implementations of the JVM
Stärk et al. Java bytecode verification is not possible
KR20000033931A (ko) 단일 상속하에서 모레타 모드 계층 구조에 대한 추상 속성의 오류 탐지 방법
Lam et al. On modular pluggable analyses using set interfaces
KR950010827B1 (ko) 칠(chill) 분리 컴파일 시스템에서 재컴파일 최소화 방법
KR100277705B1 (ko) 칠-96 언어의 클래스에 대한 치환 속성의 상속제약 탐지 방법
KR100205023B1 (ko) 모레타 모드의 변환 방법
Rawling GHC on the CSIRAC II Dataflow Computer
Serwa et al. Protocol analysis in distributed applications with model checking of timed automata

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101101

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee