• Title/Summary/Keyword: 컴파일러

Search Result 455, Processing Time 0.03 seconds

The nML Compiler System (status report) (nML 컴파일러 시스템 (status report))

  • 이광근;이욱세;어현준;김정택;최웅식;류석영;강현구;서선애;장성순
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2001.10a
    • /
    • pp.340-342
    • /
    • 2001
  • 상위의 타입 구조를 갖춘 (higher-order and typed) nML을 고안하고 그 컴파일러를 개발하였다. nML은 프로그래밍 언어 분야의 중요한 성과들을 충실히 실현한 언어로서, Standard ML과 Objective Caml 장점과 실제 프로그래밍 세계의 관성을 염두에 두고 정의되었다. nML 컴파일러의 실용성과 안전성은 이미 여러 응용 시스템 소프트웨어의 개발로 실험되고 있다. 이 전통적인 컴파일러 시스템에 본 연구단의 프로그램 분석기술들이 장착되면서, 실시간 안전성 검증이 가능하고, 작고, 자발적인 적응력 있는 코드를 만들어내는 컴파일러로 발전하는 발판이 마련되었다.

  • PDF

The Declarations Reconstruction Technique for the Symbol Table Verification of the Object-oriented Compiler (객체지향 컴파일러의 심벌 테이블 검증을 위한 선언문 복원 기법)

  • Son, Min-Sung;Kwon, Hyeok-Ju;Kim, Young-Keun;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.11a
    • /
    • pp.669-672
    • /
    • 2006
  • 본 연구팀은 유비쿼터스 게임 플랫폼을 위한 Embedded C++ 컴파일러를 개발하였으며, 컴파일러 개발 과정에서 객체지향언어인 C++과 Java 언어를 모두 수용할 수 있는 심벌 테이블을 설계하였다. 심벌 테이블은 컴파일러의 어휘 분석과 구문 분석 과정을 거친 후 SDT(syntax-directed translation)에 의해 생성된 AST(Abstract Syntax Tree)를 분석하여 인식된 명칭(identifier)과 그 속성(attribute)들을 수집하여 저장하는 자료구조로써, 심벌 테이블에 저장된 속성들은 의미 분석(semantic analysis) 단계에서 수집된 속성과 참조된 명칭의 사용이 타당한지를 검사하고, 코드 생성(code generation) 단계에서 올바른 코드가 생성되도록 하는 중요한 요소이다. 따라서 심벌 테이블의 설계가 올바른지와 입력된 속성이 정확한지에 대한 검증과 분석은 필수 불가결하다. 본 논문에서는 컴파일러 개발과정에서 설계한 심벌 테이블을 검증하고 분석하기 위한 목적으로써 심벌 테이블을 이용하여 선언문을 복원시키는 역번역기(detranslator)에 대하여 기술한다. 구현된 역번역기는 C++ 컴파일러와 Java 컴파일러의 선언문 처리 과정에서 심벌 테이블에 입력된 속성들을 본래의 입력 프로그램으로 역번역한다. 따라서 역번역기를 통하여 심벌 테이블의 완전성과 심벌 테이블에 입력된 속성 정보의 정확성을 쉽게 검증할 수 있으며, 역번역과 함께 출력되는 디버그 정보를 이용하여 효율적으로 컴파일러의 개발과 수정을 할 수 있다.

  • PDF

Test Suit Generation System for Retargetable C Compilers (재겨냥성 C 컴파일러를 위한 테스트 집합 생성 시스템)

  • Woo, Gyun;Bae, Jung-Ho;Jang, Han-Il;Lee, Yun-Jung;Chae, Heung-Seok
    • The KIPS Transactions:PartA
    • /
    • v.16A no.4
    • /
    • pp.245-254
    • /
    • 2009
  • With the increasing adoption of embedded processors, the need of developing compilers for the embedded processors with timely manner is also growing. Retargeting has been adopted as a viable approach to constructing new compilers by modifying the back-end of an existing compiler. This paper proposes a test suite generation system for testing retargetable C compilers. The proposed system generates the test suite using the grammar coverage concept. Generally, the size of the test suite satisfying the grammar coverage of the source language is very large. Hence, the proposed system also provides the facility to reduce the size of the test suite. According to the experimental result, the reduced test suite can detect 75% of the compiler faults detected by the original test suite though the size of the reduced test suite is only 10% of that of the original test suite in average. This result indicates that the reduction technique proposed in this paper can be effectively used in the prior phase of the development procedure of the embedded compilers.

Decompiler for Executing Virtual Machine Code (가상기계 코드 실행을 위한 역컴파일러)

  • Ahn Duk-Ki;Oh Se-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.05a
    • /
    • pp.383-386
    • /
    • 2006
  • 최근 가상기계 시스템은 임베디드 유비쿼터스 컴퓨팅의 필수적인 기술로서, 그 중요성이 더욱 강조되고 있으며, 컴파일러, 어셈블러 그리고 가상기계의 구현으로 구축된다. 이러한 시스템의 구축 과정에서 각 컴포넌트의 신뢰성을 위하여 정확한 검증 방법이 요구되며, 검증의 효율성을 위해서 순차적으로 진행되어야 한다. 본 논문에서는 가상기계 시스템의 컴파일러를 검증하기 위해서, 컴파일 된 가상기계 코드를 역컴파일하여 실행하는 기법을 제안하고, 그러한 기법에 따라 EVM(Embedded Virtual Machine) SIL(Standard Intermediate Language) 역컴파일러를 구현하였다. 구현된 역컴파일러는 EVM이 개발되기 전에 효율적인 실행 시스템으로 이용됨은 물론 EVM ANSI C 컴파일러의 검증 도구로서 이용될 수 있으며, EVM 시스템을 체계적으로 개발할 수 있도록 할 것이다.

  • PDF

Development of C Compiler using GCC generator (GCC 생성기를 이용한 C 컴파일러 개발)

  • Jeong, Sam-Jin
    • Proceedings of the KAIS Fall Conference
    • /
    • 2010.11a
    • /
    • pp.216-220
    • /
    • 2010
  • 본 연구는 앞으로 개발될, 혹은 현재 개발이 진행중인 16 비트 CPU를 위한 C 컴파일러를 개발하고자 한다. 본 연구는 다양하고 특별한 용도의 새로운 CPU를 위한 새로운 C 컴파일러들을 보다 쉽게 개발할 수 있게 한다. 공개 소프트웨어인 GNU C 컴파일러 생성기를 사용하여 새로운 CPU의 기능들을 명세하고, 기계 의존 원시 파일들을 수정함으로서 새로운 컴파일러를 개발할 수 있다. 개발된 컴파일러는 16 비트 CPU가 지원하는 16 비트 산술 연산 뿐만 아니라, 16 비트 CPU가 지원하지 않는 16 비트 산술 연산, 32 비트 Data Movement 연산, 32 비트 산술 연산, 32 비트 floating point 연산까지 가능하다. 그러나, 배열, 포인터, 구조체 등과 같은 고급 기능들을 지원하기 위해서는 더 많은 연구가 필요하다.

  • PDF

A Compiler Generator for Object-Oriented Visual Languages based on Grammer (문법기반 객체지향 시각언어의 컴파일러 생성기)

  • Lee, Gi-Ho;Kim, Gyeong-A
    • Journal of KIISE:Software and Applications
    • /
    • v.26 no.3
    • /
    • pp.431-440
    • /
    • 1999
  • 기존 시각언어 컴파일러 자동화 도구는 시각 구문의 그래픽 정의부분을 명세하고 확장 및 수정하는 방법의 한계로 인해 어휘분석단계를 처리하는데 어려움이 있다. 이러한 문제점을 해결하기 위해 본 논문에서는 객체지향 시각언어 문법을 기반으로 한 새로운 방식의 문법 기반 자동 생성 시스템인 시각언어 컴파일러 자동 생성 환경(CGE-VL)을 구축한다. 이 시스템은 객체지향 패러다임을 기초로 한 시각언어 컴파일러 구축을 위한 실질적인 도구로 기존의 시각언어 컴파일러 자동화 도구와는 구별되는 객체지향 시각언어의 효과적인 명세 방법 제공, 어휘분석기를 이용한 파싱 시간의 단축, 객체지향 파서를 자동 생성하는 등의 새로운 특성을 제공한다. 이러한 특성은 특히 동일한 의미를 가지는 언어 구성요소가 그 쓰임에 따라 서로 다른 구체화된 의미 및 행동을 가지는 객체지향 시각언어에서는 언어 명세에서 최종 산물인 컴파일러에 이르는 전 단계에 동일한 객체 지향 패러다임을 사용함으로써 일관된 개발방법을 제공하여 그 효과가 두드러진다.

Retargetable Compiler/Simulator Framework for Rapid Evaluation of ASIP (신속한 ASIP 성능 평가를 위한 재적응성을 갖는 컴파일러/시뮬레이터 프레임웍)

  • 오세종;김호영;김탁곤
    • Proceedings of the Korea Society for Simulation Conference
    • /
    • 2003.06a
    • /
    • pp.79-84
    • /
    • 2003
  • 이 논문은 빠른 ASIP(application specific instruction processor) 평가를 위한 재적응성을 가진 컴파일러/시뮬레이터 환경에 대해 이야기한다. ASIP의 성능은 하드웨어 구조뿐만 아니라, 수행되는 응용 소프트웨어에 영향을 받기 때문에, 높은 성능의 ASIP 개발을 위해서는 컴파일러 및 시뮬레이터의 개발이 선행되어야 한다. 그러나 다양한 ASIP 구조에 따라 적합한 고성능의 컴파일러/시뮬레이터를 만드는 일은 매우 시간 소모적인 일이 될 뿐만 아니라, 오류가 발생하기도 쉽다. 본 논문에서는 HiXR2라는 ADL(architecture description language)을 이용하여 명령어 구조를 기술하고 이를 바탕으로 컴파일러와 시뮬레이터를 자동 생성하였다. HiXR2의 재적응성 및 생성된 컴파일러/시뮬레이터의 정확성을 검증하기 위하여 ARM9 프로세서와 CalmRISC32 프로세서 구조를 각각 기술하고, 각각에 대하여 응용프로그램 코드를 컴파일 및 시뮬레이션 하는 예제를 보였다.

  • PDF

Implementation of a Compiler for VLIW rchitecture (VLIW 구조를 위한 컴파일러의 구현)

  • Choe, Seong-Uk;Kim, Gyeong-Hun;Park, Myeong-Sun
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.5 no.1
    • /
    • pp.109-121
    • /
    • 1999
  • VLIW(Very Long Instruction Word)기술을 이용한 프로세서는 최근에 다른 어떠한 형태의 프로세서보다 좋은 성능을 보일 것으로 기대되고 있다. 컴파일러가 전역적인 분석을 진행하여 명령어 수준의 병렬성을 , VLIW 구조를 위한 많은 컴파일 기술이 연구되어왔다. 컴파일 기술의 연구에 대해 보다 신뢰성 있는 결과를 얻기 위해서는 자신의 새로운 기술이 첨가될 수 있는 기본 토대로서 VLIW 컴파일러 및 실험환경을 구축하는 것이 필요하다. 본 논문에서는 VLIW 프로세서를 위해 GURPR을 기반으로 한 소프트웨어 파이프라이닝등 기존의 병렬성 증진 최적화 기법등을 포함한 병렬화 컴파일러를 개발하였고, 시뮬레이터 환경에서 테스트하였다. 실험 결과, 몇몇 벤치마크는 최대 30% 까지 실행시간이 시간이 단축될 수 있음을 보였다. 본 컴파일러 시스템은 컴파일링 기술에 대한 연구에 있어 기존 모듈을 개선하는 등에 대해 많은 도움을 줄 것이며 향후 새로운 연구결과와 구현이 본 컴파일러 환경에 추가되어 성능 향상 정도를 실험할 수 있을 것으로 기대하고 있다.

Research on the Application of Compiler Fuzzingin Machine Learning (컴파일러 퍼저에서 머신러닝의 적용에 대한 연구)

  • Jae-Yeol Park;Seong-Hwan Park;Dong-Hyeon Kwon
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2023.11a
    • /
    • pp.216-217
    • /
    • 2023
  • 브라우저, 컴파일러 등과 같이 규모가 큰 소프트웨어에 존재하는 버그 및 취약점을 찾기 위해 퍼징은 자주 사용되는 방법 중 하나이다. 특히 컴파일러에 존재하는 버그를 찾기 위해 다양한 퍼징 방법이 연구되었으며 컴파일러의 문법 검사를 통과하여 컴파일러 내부 깊은 곳에 존재하는 버그를 찾기 위한 연구도 진행되었다. 최근 머신러닝을 활용하여 특정 언어의 문법을 학습 시킨 모델을 활용해 퍼징을 하는 연구가 활발히 진행되고 있다. 이에 본 논문에서는 컴파일러를 퍼저에 머신러닝을 적용한 연구에 대하여 정리했다.

The Implementation of C Cross-Compiler for ES-C2340 DSP2 by Using the GNU Compiler (GNU 컴파일러를 이용한 ES-C2340 DSP2용 C 교차 컴파일러의 개발)

  • Lee, Si-Yeong;Gwon, Yuk-Chun;Yu, Ha-Yeong;Han, Gi-Cheon;Kim, Seung-Ho
    • The Transactions of the Korea Information Processing Society
    • /
    • v.4 no.1
    • /
    • pp.255-269
    • /
    • 1997
  • In this paper, we describe the implementation of C cross-compiler for the ES-C2340 DSP2 processor by using the GNU compiler. For the rapid and efficient developing of the compiler and other parts like the processor-dependent back -end which is implemented newly to build the compiler. This approach has several advantages. First, as we use GNU compiler's well-proved excellent optimization method and multi-language support capability, we can improve he efficiency and generality of the compiler. Second, as we concentrate on the high-level language as logic approving tool in processor developing process. And to support the cross-compiler, we also implement a text-level pre-linker.

  • PDF