首页 / 专利库 / 软件 / 中间件 / 消息中间件 / 객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행장치와의 정합 코드 생성 방법

객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행장치와의 정합 코드 생성 방법

阅读:997发布:2021-09-23

专利汇可以提供객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행장치와의 정합 코드 생성 방법专利检索,专利查询,专利分析的服务。并且PURPOSE: A method for creating a matching code with an objected-oriented CHILL(ITU-T High Level Language) compiler and a middleware distributed object executing device is provided to prepare and execute a distributed object program by creating/compiling a matching code, thereby compiling an objected-oriented CHILL distributed program at the same time and creating an execution file for supporting a distributed object function. CONSTITUTION: A sentence structure analyzing unit and a word meaning analyzing unit of an objected-oriented CHILL compiler perform a sentence structure analysis and a word meaning analysis, and create a symbol table and an AST(Abstract Syntax Tree)(301). If an entry is not a task mode definition with respect to each entry of the symbol table(302), it is judged whether the entry is a task section(304). If the entry is a task section, a distributed object executing device(for example, EDOM(ETRI(Electronics and Telecommunication Research Institute) Distributed Object Manager)) thread is created, and the created distributed object executing device thread creates a distributed object code(305). If an execute statement is a distributed object method call(307), a marshaling with respect to a factor is performed and a code for calling a message transmitting sentence structure is created by making a string obtained by the marshaling as a message, and a conversion to the C++ language is achieved(308).,下面是객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행장치와의 정합 코드 생성 방법专利的具体信息内容。

  • 객체지향 칠(CHILL) 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법에 있어서,
    객체지향 칠의 구문과 어의를 분석한 후에 심볼 테이블의 엔트리가 타스크 모드임을 확인하여, 분산 클래스 정의 코드를 생성하고, 디폴트 리셉터 함수를 생성하고, 멤버함수 원형을 생성하고, 분산 클래스 선언 코드를 생성하는 제 1 단계;
    상기 심볼 테이블의 엔트리가 타스크 장소임을 확인하여, 상기 분산 객체 실행 장치의 쓰래드를 생성하고, 분산 객체 코드를 생성하는 제 2 단계; 및
    실행문이 분산 객체 메소드 호출임을 확인하여, 인수에 대한 마샬링(marshalling)을 하고, 메시지 송신 구문을 호출하는 코드를 생성하여 변환하는 제 3 단계
    를 포함하는 객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법.
  • 제 1 항에 있어서,
    상기 제 1 단계는,
    객체 지향 칠 컴파일러의 구문 분석부와 어의 분석부에서 객체 지향 CHILL 언어의 구문과 어의를 분석하여 상기 심볼 테이블과 AST(Abstract Syntax Tree)를생성하는 제 4 단계;
    상기 제 4 단계의 심볼 테이블의 각 엔트리에 대해서 당해 심볼 테이블의 엔트리가 타스크 모드인지 여부를 확인하는 제 5 단계;
    상기 제 5 단계의 확인 결과, 상기 심볼 테이블의 엔트리가 타스크 모드이면 분산 클래스 정의 코드를 생성하고, 디폴트 리셉터 함수를 생성하고, 멤버함수 원형을 생성하고, 분산 클래스 선언 코드를 생성하여, 소정의 C언어로 변환하는 제 6 단계; 및
    상기 5 단계의 확인 결과, 상기 심볼 테이블의 엔트리가 타스크 모드가 아니면 상기 제 2 단계로 진행하는 제 7 단계
    를 포함하는 객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법.
  • 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 단계는,
    상기 심볼 테이블의 엔트리가 타스크 장소인지를 확인하는 제 8 단계;
    상기 제 8 단계의 확인 결과, 상기 심볼 테이블의 엔트리가 타스크 장소이면, 상기 분산 객체 실행 장치의 쓰래드를 생성하고, 상기 생성된 분산 객체 실행 장치의 쓰래드가 분산 객체를 생성하는 제 9 단계; 및
    상기 제 8 단계의 확인 결과, 상기 심볼 테이블의 엔트리가 타스크 장소가아니면, 객체지향 칠(CHILL)에서 소정의 C언어로의 변환 규칙에 따라 소정의 C언어로 변환하는 제 10 단계
    를 포함하는 객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법.
  • 제 3 항에 있어서,
    상기 제 3 단계는,
    실행문이 분산 객체 메소드 호출인지를 확인하는 제 11 단계;
    상기 제 11 단계의 확인 결과, 실행문이 분산 객체 메소드 호출이면 인수에 대한 마샬링을 하고 마샬링한 스트링을 메시지로 하여 메시지 송신 구문을 호출하는 코드를 생성하여 소정의 C 언어로 변환하는 제 12 단계; 및
    상기 제 11 단계의 확인 결과, 실행문이 분산 객체 메소드 호출이 아니면 객체지향 칠(CHILL)에서 소정의 C언어로의 변환 규칙에 따라 소정의 C언어 실행문으로 변환하는 제 13 단계
    를 포함하는 객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법.
  • 제 4 항에 있어서,
    상기 소정의 C언어는 C++인 것을 특징으로 하는 객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법.
  • 프로세서를 구비한 정합 코드 생성 장치에,
    객체지향 칠의 구문과 어의를 분석한 후에 심볼 테이블의 엔트리가 타스크 모드임을 확인하여, 분산 클래스 정의 코드를 생성하고, 디폴트 리셉터 함수를 생성하고, 멤버함수 원형을 생성하고, 분산 클래스 선언 코드를 생성하는 제 1 기능;
    상기 심볼 테이블의 엔트리가 타스크 장소임을 확인하여, 상기 분산 객체 실행 장치의 쓰래드를 생성하고, 분산 객체 코드를 생성하는 제 2 기능; 및
    실행문이 분산 객체 메소드 호출임을 확인하여, 인수에 대한 마샬링(marshalling)을 하고, 메시지 송신 구문을 호출하는 코드를 생성하여 변환하는 제 3 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  • 说明书全文

    객체지향 칠 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법{Method of Reproducing Interface Cord Between Object Oriented CHILL Compiler and Distributed Object Executor that is Middleware}

    본 발명은 객체지향 CHILL(ITU-T High Level Language)컴파일러와 미들웨어인 분산 객체 실행 장치(예컨대, EDOM)사이의 정합 코드 생성 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.

    종래의 분산 객체 기능을 지원하는 방법은 운영체제 또는 커널과 컴파일러와 밀접한 관계를 가지고 있다. 통상의 분산 객체 기능 구현 방법으로는 분산 객체 기능들을 운영체제를 중심으로 해서 구현하는가 또는 컴파일러에서 주체적으로 구현하는가에 따라서 아래와 같은 세 가지 구현 방법이 있다.

    첫 번째 구현 방법은 컴파일러 접근 방식이다. 이 방식은 능동 객체를 사용하는 응용분야 또는 컴파일러에서 커널과 무관하게 능동 객체를 관리하는 방법이다. 대부분의 객체 지향 프로그램 언어들은 객체 지향 컴파일러와 실행 시간 라이브러리(runtime library)를 이용하여 커널과 무관하게 응용 분야들을 지원하고 있다. 이러한 접근 방법은 커널과의 의존성이 없기 때문에 이종의 시스템에도 쉽게 이식되어 운영될 수 있는 장점이 있다. 그러나, 분산 시스템 등에 적용될 경우에는 컴파일러 또는 실행 시간 라이브러리만 가지고는 지원할 수 없는 기능이 있고, 설사 지원한다고 해도 성능에 심각한 영향을 주게 된다. 특히, 능동 객체(active object)와 같이 객체에 활동적 또는 병행적 실행 요소가 있는 응용 분야는 커널의지원이 없는 실행 시간 라이브러리만으로는 적절한 수준의 성능을 보장할 수 없는 문제점이 있다.

    두 번째 구현 방법은 미들웨어(middleware) 접근 방식이다. 미들웨어 방식은 객체 지향 시스템에서 가장 많이 사용되고 있는 방식으로 대표적인 것으로 "OMG CORBA", "OSF DCE", "DCOM" 등이 있다. 이러한 방식은 개발하고자 하는 프로그램 언어 및 사용되는 시스템에 무관하게 에플리케이션 개발자가 분산 객체 지향 에플리케이션을 개발하는 편리한 플랫폼을 제공한다. 따라서, 미들웨어 방식을 적용하여 분산 객체를 관리하는 접근 방법은 이종의 시스템에서 높은 이식성을 가지면서 객체 지향 에플리케이션 프로그램을 쉽게 개발할 수 있게 한다. 그러나, 미들웨어 방식은 범용 시스템을 지원하기 때문에 실시간 시스템과 같은 특정 응용 분야에서 요구하는 성능 수준을 보장할 수 없는 문제점이 있다.

    세 번째 구현 방식은 커널(kernel) 접근 방식이다. 이 방식은 능동 객체 관리의 대부분의 기능을 커널 내에서 구현하는 것이다. 따라서, 컴파일러는 단순히 언어상의 프로그램 코드만을 생성하고, 실제적인 능동 객체 관리는 커널 내에서 수행한다. 그러나, 일반적으로 커널을 마음대로 수정하여 새로운 기능을 추가하는 것은 상당히 어려운 작업이 된다. 또한, 대부분의 커널에 대한 소스 코드들은 공개되지 않기 때문에 커널 접근 방식을 더욱 어렵게 한다. 만일 커널에 대한 소스가 있고 커널을 손쉽게 수정할 수 있다면 커널 접근 방식은 어떠한 방식보다도 높은 성능 수준으로 능동 객체 관리를 수행할 수 있다. 그러나, 객체 관리 모듈이 커널과 강한 결합성(coupling)을 가지게 되므로 서로 다른 시스템 또는 커널과의 호환성및 이식성이 낮아지는 문제점이 있다.

    분산 객체 실행 장치의 기능들을 구현하는 방식으로 상기의 세 가지 방법 중 기존의 운영체제와 컴파일러와의 소프트웨어 결합도를 최소화하여 높은 성능 수준과 호환성을 얻을 수 있는 미들웨어 구조를 지향하고 있다. 또한, 분산 객체 관리를 위한 "CORBA"와 "DCOM"과 같은 세계적인 표준안들도 대부분 미들웨어 구조를 채택하고 있다. 이에 따라, 객체지향 CHILL에 있어서도 미들웨어 구조에 맞는 정합 방법이 요구된다.

    본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 분산 객체 기능을 지원하기 위하여 객체지향 CHILL 컴파일러와 미들웨어인 분산객체 실행 장치사이의 정합 코드 생성 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.

    즉, 객체 지향 프로그램 언어인 객체지향 CHILL에서 분산 객체의 특성을 가진 타스크 모드(TASK MODE)가 존재하고 있는데, 본 발명에서는 이러한 타스크 모드의 실행을 원활하게 하기 위해 분산 객체 실행 장치와 객체지향 CHILL 컴파일러의 정합 코드 생성 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하고자 한다.

    도 1 은 본 발명이 적용되는 객체지향 CHILL 컴파일러와 분산 객체 실행 장치와의 정합 시스템에 대한 일실시예 구성도.

    도 2 는 본 발명에 따른 객체지향 CHILL 컴파일러의 일실시예 내부 구성도.

    도 3 은 본 발명에 따른 객체지향 CHILL 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법에 대한 일실시예 처리 흐름도.

    * 도면의 주요 부분에 대한 부호의 설명

    101 : 객체지향 CHILL 분산 객체 프로그램

    102 : 객체지향 CHILL 컴파일러

    103 : C++ 분산객체 프로그램

    104 : 분산 객체 실행 장치

    105 : 실행파일

    상기 목적을 달성하기 위한 본 발명은, 객체지향 칠(CHILL) 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법에 있어서, 객체지향 칠의 구문과 어의를 분석한 후에 심볼 테이블의 엔트리가 타스크 모드임을 확인하여, 분산 클래스 정의 코드를 생성하고, 디폴트 리셉터 함수를 생성하고, 멤버함수 원형을 생성하고, 분산 클래스 선언 코드를 생성하는 제 1 단계; 상기 심볼 테이블의 엔트리가 타스크 장소임을 확인하여, 상기 분산 객체 실행 장치의 쓰래드를 생성하고, 분산 객체 코드를 생성하는 제 2 단계; 및 실행문이 분산 객체 메소드 호출임을 확인하여, 인수에 대한 마샬링(marshalling)을 하고, 메시지 송신 구문을 호출하는 코드를 생성하여 변환하는 제 3 단계를 포함하여 이루어진 것을 특징으로 한다.

    한편, 본 발명은, 프로세서를 구비한 정합 코드 생성 장치에, 객체지향 칠의 구문과 어의를 분석한 후에 심볼 테이블의 엔트리가 타스크 모드임을 확인하여, 분산 클래스 정의 코드를 생성하고, 디폴트 리셉터 함수를 생성하고, 멤버함수 원형을 생성하고, 분산 클래스 선언 코드를 생성하는 제 1 기능; 상기 심볼 테이블의 엔트리가 타스크 장소임을 확인하여, 상기 분산 객체 실행 장치의 쓰래드를 생성하고, 분산 객체 코드를 생성하는 제 2 기능; 및 실행문이 분산 객체 메소드 호출임을 확인하여, 인수에 대한 마샬링(marshalling)을 하고, 메시지 송신 구문을 호출하는 코드를 생성하여 변환하는 제 3 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.

    상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.

    도 1 은 본 발명이 적용되는 객체지향 CHILL 컴파일러와 분산 객체 실행 장치와의 정합 시스템에 대한 일실시예 구성도이다.

    객체지향 CHILL 컴파일러(102)는 객체지향 CHILL 분산 객체 프로그램(101)을 입력으로 받아서 분산 객체 실행 장치(예컨대, EDOM : ETRI Distributed Object Manager)(104)와의 정합 코드를 포함하는 C++분산 객체 프로그램(103)을 생성하고, C++ 분산 객체 프로그램(103)과 분산 객체 실행 장치(104)라이브러리를 포함해서 컴파일하여 분산 객체 기능을 가지는 실행파일(105)을 생성한다. 상기의 예시된 EDOM은 ETRI(Electronics and Telecommunication Research Institute)에서 개발한 분산 객체 실행 장치로 본 발명에서는 분산 객체 실행 장치의 일예로써 이하에서는 상기의 EDOM을 이용하여 설명하도록 한다.

    도 2 는 본 발명에 따른 객체지향 CHILL 컴파일러의 일실시예 내부 구성도이다.

    도 2 에 도시된 바와 같이, 본 발명에 따른 객체지향 CHILL 컴파일러(102)는 구문 분석부(201), 어의 분석부(202), 코드 생성부(203) 및 미들웨어 정합부(204)를 구비한다.

    세부 동작을 살펴보면, 구문 분석부(201)에서 CHILL언어에 대한 구문을 분석하여 심볼 테이블 및 AST(Abstract Syntax Tree)를 생성하고 어의 분석부(202)로 전달하며, 어의 분석부(202)에서는 프로그램에 대한 어의를 분석하여 코드 생성부(203)로 전달한다. 코드 생성부(203)에서는 심볼 테이블 및 AST를 참조하여객체지향 CHILL 프로그램(101)을 C++ 코드로 생성한다. 이때, 타스크 모드나 타스크 객체 관련 부분에서는 미들웨어 정합부(204)의 함수들을 호출하여 미들웨어 정합 코드를 생성한다.

    도 3 은 본 발명에 따른 객체지향 CHILL 컴파일러와 미들웨어인 분산 객체 실행 장치와의 정합 코드 생성 방법에 대한 일실시예 처리 흐름도이다.

    객체지향 CHILL 컴파일러의 구문 분석부 및 어의 분석부에서는 구문 분석과 어의 분석을 하여 심볼 테이블과 AST를 생성한다(301). 심볼 테이블의 각 엔트리에 대해서 그 엔트리가 타스크 모드 정의이면(302) 분산클래스 정의 코드를 생성하고, 디폴트 리셉터(default receptor)함수를 생성하며, 멤버 함수 원형을 생성하고, 분산클래스 선언 코드를 생성하여 C++ 언어로 변환한다(303).

    반면, 상기 엔트리가 타스크 모드 정의가 아니면(302) 상기 엔트리가 타스크 장소인지 여부를 판단한다(304). 판단 결과 엔트리가 타스크 장소이면, 분산 객체 실행 장치(예컨대, EDOM) 쓰래드를 생성하고 생성된 분산 객체 실행 장치(예컨대, EDOM) 쓰래드가 분산 객체 코드를 생성한다(305). 심볼 테이블 엔트리가 타스크 모드 정의도 아니고 타스크 장소도 아닐 경우에는 객체지향 CHILL 로부터 C++ 언어로의 변환 규칙에 따라 C++ 언어로 변환한다(306).

    실행문이 분산 객체 메소드 호출이면(307) 인수에 대한 마샬링을 하게 되는데, 여기서 마샬링 방법은 각 인수에 대한 값들을 하나의 텍스트 스트링으로 묶는데 인수값 사이에는 ":" 으로 구분한다. 이들 인수값들을 마샬링한 스트링을 메시지로 하여 메시지 송신 구문을 호출하는 코드를 생성하여 C++ 언어로변환한다(308). 실행문이 분산 객체 메소드 호출이 아니면(307) 객체지향 CHILL 로부터 C++ 언어로의 변환 규칙에 따라 C++ 실행 문으로 변환한다(309).

    상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.

    이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.

    상기한 바와 같은 본 발명은, 객체지향 CHILL 분산 객체 기능을 지원하기 위해서 객체지향 CHILL 컴파일러에서 미들웨어인 분산 객체 실행 장치(예컨대, EDOM)와의 정합 코드 생성 방법에 관한 것으로, 정합 코드를 생성하여 컴파일하면 객체지향 CHILL 분산 프로그램을 한번에 컴파일하여 실행 파일까지 생성이 가능하여 분산 객체 프로그램 작성 및 실행에 큰 효과가 있다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈