• 제목/요약/키워드: 코드생성기

검색결과 367건 처리시간 0.026초

SRL/ATM으로부터 Ada 실행코드 생성 (Generation of Ada Executable Code from SRL/ATM)

  • 고현;김광종;이연식;이문근
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2001년도 추계학술발표논문집 (상)
    • /
    • pp.359-362
    • /
    • 2001
  • 본 논문은 순환공학 환경에서의 실시간 시스템 개발 및 검증을 위한 코드 생성기 구현과정에서 실시간 시스템에 대한 ATM(Abstract Timed Machine) 명세로부터 생성된 SRL(Software Representation Language) 중간코드로부터 Ada 실행코드 생성방법을 제시한다. 실시간 시스템을 명세, 분석, 검증하기 위한 정형기법인 ATM은 기존의 정형기법과는 달리 순환공학 환경에서의 실시간 시스템이 갖는 정적 및 동적 속성은 물론 특정 환경에서의 동적행위도 표현이 가능하므로, DoME/ATM 그래픽 명세 표기와 중간코드로부터 실행코드를 자동 생성함으로써 순환공학 환경에서의 실시간 시스템 개발 및 검증을 가능하게 한다. 따라서, 실행코드 자동 생성기를 구현하기 위하여 본 논문에서는 선행연구에 의한 DoME/ATM으로부터 변환된 SRL/ATM 코드로부터 Ada 실행코드를 생성하기 위하여 SRL/ATM과 Ada의 관계를 분석하고 실행코드 생성을 위한 기본 규칙들을 정의하여, Ada 실행코드 생성기를 설계한다. 실행코드 생성기는 SRL 파스트리 생성기를 이용하여 구문분석을 통해 구문노드와 수식노드, 단말노드 둥과 같은 구문적 요소들을 추출하여 어휘분석을 통해 얻어진 정보들과 추출된 구문 정보들을 기반으로 실제 Ada 실행코드를 생성한다.

  • PDF

Bytecode로부터 목적 기계 코드 생성 규칙 기술에 관한 연구 (A Study on the Target Code Generation Rule Description from Bytecode)

  • 고광만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2001년도 춘계학술발표논문집 (하)
    • /
    • pp.1033-1036
    • /
    • 2001
  • 컴파일러 후단부 개발시 중간 코드로부터 목적기계 코드를 생성하기 위해서는 각각의 중간 코드 명령어를 목적기계 코드로 치환하는 방법과 다양한 중간 코드 패턴에 대한 목적기계 코드 생성 규칙을 기술하는 방법으로 구분된다. 특히, 컴파일러 후단부 전체를 재구성하지 않고 중간 코드로부터 목적기계 코드를 생성하는 정형화된 규칙을 이용하면 다양한 목적기계 코드를 효율적으로 생성할 수 있다. 본 논문은 Bytecode로부터 정형화된 코드 생성 규칙을 이용하여 Pentium기계에 대한 코드 생성이 가능하도록 코드 생성 규칙 기술 모델을 제시하며 실질적으로 목적기계 코드 생성시에 참조 가능한 정보를 생성하는 코드-생성기 생성기를 연구한다 본 연구를 통해서 Bytecode로부더 다양한 목적기계 코드를 생성할 수 있는 정형화된 코드 생성 규칙 기술 방법을 얻을 수 있다.

  • PDF

디자인 패턴을 이용한 JiKU/XML 객체지향코드 생성기 설계 및 구현 (A Design and Implementation of JiKU/XML Object-oriented Code Generator Using for Design Pattern)

  • 선수균
    • 정보처리학회논문지D
    • /
    • 제11D권4호
    • /
    • pp.907-916
    • /
    • 2004
  • 단일 시스템으로 개발된 기존 코드 생성 시스템은 분산 환경 상에서의 개발자나 유지 보수자들의 디자인패턴 정보를 공유하는 것이 원활하지 못했다. 본 논문에서는 웹환경 기반인 XML과 디자인 패턴을 이용한 JiKU/XML 객체지향코드 생성기를 설계하고 구현한파. 이것은 디자인 패턴 구조를 XML 코드로 변환하기 위해 UML을 이용하였으며 UML로 표현된 설계 정보를 XML 코드로 생성하기 위해 PIML 구문법에 맞게 코드생성을 한다. 이 JiKU/XML 객체지향코드 생성기는 열 단계로 코드를 생성하고 설계정보가 XML 코드로 생성되므로 웹 환경에 쉽게 적응 시킬 수 있다. 기존의 생성기인 F77/J++ 생성기의 단점을 보완했으며 UML과 패턴 정보를 이용하기 때문에 설계의 표준화를 이룰 수 있다. 기존 시스템과 적용사례를 비교 분석하여 본 연구에서 제안한 생성기가 더욱 향상된 기능을 제공한다.

정형명세에 대한 실행코드 생성을 위한 정보 추출 (Extraction of Information for Executable Code Generation to Formal Specification)

  • 고현;이문근;이연식
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2001년도 추계학술발표논문집 (상)
    • /
    • pp.355-358
    • /
    • 2001
  • 본 논문은 순환공학 환경에서 실시간 시스템 개발 및 검증을 위한 실행코드 생성기 구현과정에서 ATM(Abstract Timed Machine)으로 명세된 실시간 시스템에 대한 정형명세와 명세분석을 통해 생성된 SRL(Software Representation Language) 코드로부터 실행코드로의 변환을 위해 필요한 정보들을 명세하고 이들의 추출 방법을 제시한다. ATM정형기법을 적용하여 실시간 시스템 개발 및 검증을 위해서는 시스템 명세도구나 명세분석을 위한 분석기, 코드 생성기, 검증기 등과 같은 자동화 도구의 개발이 요구된다. 따라서, 본 논문에서는 순환공학 환경에서의 실시간 시스템의 효율적 개발 및 검증을 위하여 사용될 실행코드 생성기 구현을 위하여, 특정 물리적 환경에서의 실시간 시스템을 명세한 DoME/ATM 스크립트 코드에 대한 SRL 코드로의 변환 시 필요한 정보들을 추출하고, 이를 기반으로 SRL 분석기와 SRL 파스트리 생성기를 이용한 Ada 실행코드로의 변환 시 필요한 실행코드 모듈구조 및 실행구문, 코드 실행 우선순위 결정 둥과 같은 관련된 정보들의 추출 방법을 제시한다.

  • PDF

재목적 Oolong-to-SIL 중간 언어 번역기 (Retargetable Oolong-to-SIL IL Translator)

  • 권혁주;김영근;이양선
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2004년도 춘계학술발표대회논문집
    • /
    • pp.310-313
    • /
    • 2004
  • 자바는 컴파일러에 의해 아키텍처 독립적인 바이트코드로 구성된 바이너리 형태의 클래스 파일을 생성하면 JVM에 의해 하드웨어와 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어로 현재 가장 널리 사용되는 범용 프로그램 언어중 하나이다. EVM(Embedded Virtual Machine)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. 본 논문에서는 자바 프로그램을 EVM에서 실행 될 수 있도록 자바 프로그램을 컴파일하여 생성된 클래스 파일로부터 Oolong 코트를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하는 Oolong-to-SIL 번역기 시스템을 구현하였다. 번역기 시스템을 정형화하기 위해 Oolong 코드의 명령어 등을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였고, 파싱테이블을 가지고 파서를 설계하였다 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 SIL 코드를 생성하도록 번역기 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다. 이와 같이 번역기를 구성함으로써 목적기계의 중간언어 형태에 따라 중간언어 번역기를 자동으로 구성할 수 있어 재목적성(Retargetability)을 높일 수 있다.

  • PDF

JBURG를 이용한 JIT컴파일러 생성에 관한 연구 (A study on the generation of JIT compiler using JBURG)

  • 강경우
    • 정보처리학회논문지A
    • /
    • 제12A권1호
    • /
    • pp.59-64
    • /
    • 2005
  • 본 연구에서는 JBURG를 이용하여 JIT 컴파일러를 생성하는 방법을 제안하였다. JBURG는 Java를 위한 상향식 트리패턴 일치 코드생성기를 생성하는 도구이다. 본 연구에서 제안한 방법은 트리패턴 사이에 관계를 조사함으로 고안되었다. 제안된 방법은 패턴들 사이의 관계를 이용해 분석하고 불필요한 점검을 피할 수 있다는 점에서 기존의 연구결과인 JBURG보다 효율적이다. 필요한 분석들은 코드생성기를 만드는 시간에 수행되기 때문에 실제 코드를 생성해야 하는 컴파일 시간에 효율을 늘일 수 있다.

Bytecode에서 Pentium Code로의 매크로 확장 (Macro Expansion from Bytecode to Pentium Code)

  • 예희석;오세만
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 봄 학술발표논문집 Vol.28 No.1 (A)
    • /
    • pp.58-60
    • /
    • 2001
  • 플랫폼에 독립적으로 자바 가장 머신(Virtual Machine)에 의해 실행될 수 있도록 설계된 Bytecode는 각 플랫폼에서 인터프리트브 방식으로 수행된다. 그러나 때로는 보다 효율적으로 실행하기 위해서 Bytecode는 목적 코드로의 변환이 요구된다. 매크로 확장 기법은 매크로가 확장되는 정의 루틴을 이용하여 중간 코드에 대해 목적 코드로 빠른 시간내에 코드를 생성할 수 있는 장점을 가진다. 본 논문에서는 Bytecede로부터 Pentium 코드를 생성하기 위해서 매크로 확장 기법을 사용하여 코드 확장기(Code Expander)를 설계하고 구현하였다. 이를 위해 Bytecode에 대한 Pentium코드로 확장하는 규칙을 Budecode 테이블에 기술하였다. 코드 확장기는 Bytecode 추출기로부터 구성된 Bytecode와 Bytecode 테이블을 참조하여 Bytecode에 해당하난 Pentium코드를 생성한다.

EM에서 SPARC 코드로 효율적인 코드 확장 (An Efficient Code Expansion from EM to SPARC Code)

  • 오세만;윤영식
    • 한국정보처리학회논문지
    • /
    • 제4권10호
    • /
    • pp.2596-2604
    • /
    • 1997
  • ACK는 가상 스택 기계에 기반을 둔 EM 중간 코드로부터 레지스터 구조에 기반을 둔 SPARC 기계에 대한 목적 코드를 생성하기 위해서는 코드 확장기(code expander)를 이용하고 있다. 따라서 EM 코드로부터 SPARC 목적 코드를 생성하기 위해 스택 지향 구조로부터 레지스터 지향 구조로 변환하여야 한다. 코드 확장기를 이용한 SPARC 코드 생성 기법은 각 EM 명령어에 대해 SPARC 코드로 확장하는 루틴들로 구성되며 코드 생성기에 비해 코드의 질을 개선하기 위해 푸쉬-팝 최적화 동작을 수행한다. 하지만 코드 확장시에 별도의 자원과 관리를 요구하는 혼합 스택(hybrid stack)을 이용하고 있으며 전단부의 정보 손실로 레지스터 윈도우를 이용한 효율적인 매개변수 전달을 고려하지 않는다. 본 논문에서는 ACK의 전체적인 구조의 변경 없이 목적 기계의 스택과 매개변수 전달을 고려하나 효율적인 SPARC 코드를 생성하기 위해 EM 트리를 이용한 SPARC 코드 확장기를 설계하고 구현하였다. 이를 위해, 순차적인 EM 코드를 입력으로 받아 스택 속성을 반영한 트리로 구성하며 혼합 스택을 제거하기 위해 지역 변수 정보를 별도로 관리하였다. EM 트리의 순회 및 확장 과정에서 목적 코드를 생성할 수 있는 루틴을 통하여 목적 코드를 출력하며 추출된 정보와 노드의 성격에 출력 시기와 목적 코드를 결정한다.

  • PDF

객체 모델링에서 관련성의 코드 생성에 관한 연구 (A Study on the Code Generation of the Relationship in the Object Modeling)

  • 김기한;이창훈;김진수;이경환
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1998년도 가을 학술발표논문집 Vol.25 No.2 (1)
    • /
    • pp.597-599
    • /
    • 1998
  • 객체지향 개발방법에 따라 효과적으로 소프트웨어를 개발하기 위해서는 분석단계에서 정의된 객체모델의 요소들이 구현단계에서 코드에 정확하게 반영이 될 수 있어야 한다. 그러나 아직까지는 객체지향 언어들이 객체모델이 가지고 있는 모델링 요소인 객체들간의 관련성에 대해 직접적인 구현을 지원하지 못하고 있다. 이러한 관련성의 구현에 대한 지침이 제공되지 않기 때문에 많은 개발자들은 각자 일정하지 않은 형태의 코드를 생성하고 있다. 본 노문에서는 이러한 관련성의 구현에 대해 개발자들에게 일정한 지침을 제공하고 객체모델에 작성된 관련성에 관한 코드를 제공하는 코드생성기를 구현하였고 개발자들은 이 코드생성기를 이용하여 관련성에 대해 일관성 있는 코드를 생성할 수 있게 된다. 특히, 관련성 가운데 집합관계의 경우는 연결관계의 형태로 바꾸어서 코드로 변환하는 방법을 사용하였다.

패턴 매칭 기법을 이용한 자바 바이트코드 변환기의 설계 및 구현 (Design and Implementation of Java Bytecode Translator usin Pattern Matching Technique)

  • 고광만
    • 전자공학회논문지CI
    • /
    • 제39권4호
    • /
    • pp.1-9
    • /
    • 2002
  • 자바 언어의 실행 속도를 개선하기 위해 전통적인 컴파일 방법을 사용하여 바이트코드를 특정 프로세서에서 수행될 수 있는 목적기계 코드로 변환하는 다양한 연구가 진행중이다. 패턴 매칭 이용한 코드 생성 기법은 코드 확장 기법에 비해 양질의 코드를 생성할 수 있는 장점을 가지고 있다. 본 연구에서는 바이트코드로부터 효과적으로 네이티브 코드를 생성하기 위해 레지스터 기반의 중간 언어를 효율적으로 생성할 수 있는 정형화된 패턴 기술 방법과 패턴 매칭 기법에 대해 제시한다. 또한 기술된 정형화 패턴을 활용하여 양질의 레지스터 기반 중간 코드를 생성하는 중간 코드 변환기를 설계하고 구현하였다.