• 제목/요약/키워드: Compiler

검색결과 524건 처리시간 0.029초

Syntax directed Compiler for Subset of PASCAL

  • 이태경
    • 정보과학회지
    • /
    • 제4권2호
    • /
    • pp.65-73
    • /
    • 1986
  • Compiler 교육용 Compiler의 필요성은 강조할 필요가 있다. 이 교육용 Compiler가 가져야 할 성질은 다음과 같다. 첫째, Modular programming Technique사용하여 이해하기 쉬운 작은 program 형태로 만들어야 한다. 그렇게 함으로써 학생들이 상호결합(interface)변수와 형태를 알고 Compiler의 한 부분을 자신의 program으로 대치한 후 실험하여 볼 수 있다. 둘째; 내부에서 사용되는 Table은 간단한 형태로 구성한다. 세째; 다른 언어의 Compiler를 쓸때 사용하는 program(예를들면 parser generator)이 있어야 한다. 이것을 이용하여 학생들은 자신이 만든 언어의 Compiler를 학기중에 만들 수 있다. 넷째; REAL TIME clock을 이용하여 각 program module이 사용한 시간을 찍어낼 수 있어야 한다. 이렇게 함으로써 어떤 module이 가장 많은 시간을 소모하며, 이것을 개선하는 방 법을 찾아낼 수 있다. 다섯째; Compile된 결과를 Assembler 언어로도 출시시킬 수 있어야 한다. 위와 같은 교육용 Compiler의 제작 방법과 그 문제점에 대하여 서술하려고 한다.

( )

  • 박철희;유재우
    • 정보과학회지
    • /
    • 제5권2호
    • /
    • pp.61-84
    • /
    • 1987
  • 1950년대 초기의 Compiler가 나온 이후로 지금까지 Compiler를 만드는 기 술이 급격히 발전해 왔다. Backus는 “초기의 FORTRAN Compiler를 만드는데 18man-years가 걸렸다”고 하였다. 그러나 현재에 이르러서는 Computer Science Department의 학생들이 Compiler구조 시간을 통하여 한학기 정도의 작업으로도 실제 Compiler를 설치할 수 있게 되었다. 이렇게 지난 20여년간 크게 발전할 수 있었던 이유에 대하여 Aho and Ullman은 Compilation과정을 modulor하게 구 성하는 법을 이해하였고, Compilation중의 여러 중요한 작업을 처리하는 조직 적 기술을 연구 개발 하였으며, 특히 이를 뒷받침하는 software tools을 개발 하였음을 말하고 있다. 여기서 말하는 compiler writing tools는 scanner (lexical analyzer)나 parser generators에서 크게는 compiler generator 혹은 compiler compiler를 의미하고 있다.

Getting Feedback on a Compiler's Optimization Decisions, Enabling More Code-Optimization Opportunities

  • Min, Gyeong Il;Park, Sewon;Han, Miseon;Kim, Seon Wook
    • IEIE Transactions on Smart Processing and Computing
    • /
    • 제4권6호
    • /
    • pp.450-454
    • /
    • 2015
  • Short execution time is the major performance factor for computer systems. This performance factor is directly determined by code quality, which is influenced by the compiler's optimizations. However, a compiler has limitations when optimizing source code due to insufficient information. Thus, if programmers can learn the reasons why a compiler fails to apply optimizations, they can rewrite code that is more easily understood by the compiler, and thus improve performance. In this paper, we propose a compiler that provides a programmer with reasons for failed optimization and recognizes programmer's additional information to obtain better optimization. As a result, we obtain performance improvement, i.e., reducing execution time and code size, by taking advantage of additional optimization opportunities.

DEX2C: Translation of Dalvik Bytecodes into C Code and its Interface in a Dalvik VM

  • Kim, Minseong;Han, Youngsun;Cho, Myeongjin;Park, Chanhyun;Kim, Seon Wook
    • IEIE Transactions on Smart Processing and Computing
    • /
    • 제4권3호
    • /
    • pp.169-172
    • /
    • 2015
  • Dalvik is a virtual machine (VM) that is designed to run Java-based Android applications. A trace-based just-in-time (JIT) compilation technique is currently employed to improve performance of the Dalvik VM. However, due to runtime compilation overhead, the trace-based JIT compiler provides only a few simple optimizations. Moreover, because each trace contains only a few instructions, the trace-based JIT compiler inherently exploits fewer optimization and parallelization opportunities than a method-based JIT compiler that compiles method-by-method. So we propose a new method-based JIT compiler, named DEX2C, in order to improve performance by finding more opportunities for both optimization and parallelization in Android applications. We employ C code as an intermediate product in order to find more optimization opportunities by using the GNU C Compiler (GCC), and we will detect parallelism by using the Intel C/C++ parallel compiler and the AESOP compiler in our future work. In this paper, we introduce our DEX2C compiler, which dynamically translates Dalvik bytecodes (DEX) into C code with method granularity. We also describe a new method-based JIT interface in the Dalvik VM for the DEX2C compiler. Our experiment results show that our compiler and its interface achieve significant performance improvement by up to 15.2 times and 3.7 times on average, in Element Benchmark, and up to 2.8 times for FFT in Smartbench.

머쉰 행위기술로부터 Retargetable 컴파일러 생성시스템 구축 (Construction of a Retargetable Compiler Generation System from Machine Behavioral Description)

  • 이성래;황선영
    • 한국통신학회논문지
    • /
    • 제32권5B호
    • /
    • pp.286-294
    • /
    • 2007
  • ASIP 디자인에서 디자인되는 프로세서의 성능을 측정할 수 있는 컴파일러가 요구된다. 머쉰에 맞는 컴파일러 설계는 매우 많은 시간을 요구한다. 본 논문은 MDL 기술로부터 C 컴파일러를 생성하는 시스템을 보인다. MDL을 이용한 컴파일러 생성은 user retargetability와 컴파일러와 프로세서 디자인의 일관성을 유지시켜 준다. 그러나 MDL을 이용한 컴파일러 생성 시스템은 컴파일러와 머쉰 간 의미적 차이를 줄여야 한다. 이러한 문제를 해결하기 위해 제안하는 시스템은 트리 패턴마다 행위정보를 가지는 라이브러리에 머쉰 행위기술을 맵핑한다. 맵핑된 인스트럭션과 레지스터 파일 사용정보를 이용해 제안하는 시스템은 컴파일러 후위부 interface function을 생성한다. 생성된 MIPS R3000와 ARM9 컴파일러가 C로 기술된 어플리케이션 프로그램으로 검증되었다.

속성 문법과 XMLSchema를 이용한 XML 컴파일러 생성기 (An SML Compiler Generator Using Attribute Grammar and XMLSchema)

  • 최종명;박호병
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제33권9호
    • /
    • pp.810-821
    • /
    • 2006
  • XML 문서를 위한 컴파일러를 개발하기 위해서는 많은 노력을 필요로 하기 때문에 XML 컴파일러를 자동적으로 생성할 수 있는 방법에 대한 연구의 필요성이 증가하고 있다. XMLSchema가 표준으로 지정된 이후에 많이 사용되고 있지만, XMLSchema를 사용하는 XML 문서를 위한 XML 컴파일러 생성기에 관한 연구는 현재까지 거의 이루어지지 않았다. 본 논문에서는 속성 문법을 사용해서 XMLSchema를 사용하는 XML 문서를 위한 XML 컴파일러를 자동적으로 생성할 수 있는 방법을 소개한다. XML 컴파일러 생성기는 XMLSchema의 데이타 타입 정보와 별도로 제공되는 의미 정보를 이용해서 의미 클래스와 XML 컴파일러를 생성한다. 생성된 XML 컴파일러는 XML 문서를 파싱해서 의미 클래스의 인스턴스로 구성된 트리로 변환하고, 트리를 순회하면서 XML 문서를 사용자의 의도에 맞게 처리한다.

컴파일러 개발환경 Edu-IDEC를 이용한 컴파일러 수업모형 개발 (Development of a Compiler Teaching Model Using the Compiler Developing Environment Edu-IDEC)

  • 권정훈;박은경;성우경;김현주;배종민
    • 컴퓨터교육학회논문지
    • /
    • 제16권6호
    • /
    • pp.33-43
    • /
    • 2013
  • 컴파일러와 언어구현 교과목은 컴퓨터과학 교과과정에서 오랫동안 중요한 주제로 인식되어 왔다. 그것은 컴파일러에 관한 지식이 프로그래밍 언어와 시스템을 이해하는 데에 중요한 역할을 할 뿐 아니라, 컴파일러 기술이 많은 응용 영역에서 활용될 수 있기 때문이다. 그러나 제한된 자원과 시간적 제약 때문에 컴파일러 기술을 효과적으로 전달하기 위해서는 많은 노력이 필요하다. 본 논문에서는 교육용 컴파일러 개발환경인 Edu-IDEC을 이용한 컴파일러 수업모형을 제시한다. Edu-IDEC는 로봇 플랫폼에서의 컴파일러 개발환경으로서, 컴파일러 제작도구, 레퍼런스 컴파일러, 구문트리 시각화도구, 목적언어 시각화 도구, 로봇제어기, 그리고 로봇시뮬레이터 등의 기능이 있으며, 이클립스 플러그인 기반으로 동작한다. 그리고 제시된 모형을 실제 수업에 적용하여 그 평가결과를 제시한다.

  • PDF

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

  • 이시영;권육춘;유하영;한기천;김승호
    • 한국정보처리학회논문지
    • /
    • 제4권1호
    • /
    • pp.255-269
    • /
    • 1997
  • 본 논문에서는 GNU 컴파일러를 이용하여 ES-C2340 DSP2 프로세서를 위한 C 교차 컴파일러를 개발한다. 신속하고 효율적인 컴파일러의 개발을 위해 언어 의존적인 프 론트 앤드(front-end)의 일부는 GNU 컴파일러를 사용하고, 프로세서 의존적인 백 앤 드(back-end)부분은 새로이 작성하여 결합하는 접근 방법을 사용한다. 이러한 접근 방법은 첫째, 프론트 앤드 부분에서 잘 검증된 GNU 컴파일러의 뛰어난 최적화 기법과 다중 언어 지원성을 사용하므로 컴파일러의 효율성과 범용성이 보장되고, 둘째, 하드 웨어 의존적인 부분의 구현에만 집중함으로써 개발 기간이 단축되며, 셋째 개발 시간 의 단축으로 인해 프로세서의 개발시에 논리 검증 도구로 고급 언어를 사용할 수 있 게 한다. 그리고 본 논문에서는 교차 컴파일러를 지원하기 위하여 텍스트 수준의 선 링커(pre-linker)도 구현한다.

  • PDF

SCAM 기상모델의 성능향상을 위한 PGI Compiler의 OpenACC 활용 (Performance Improvement of SCAM Climate Model using PGI Compiler with OpenACC)

  • 이창현;강보경;정성욱
    • 한국정보전자통신기술학회논문지
    • /
    • 제15권3호
    • /
    • pp.189-197
    • /
    • 2022
  • 고성능 컴퓨팅 기술이 발달하고 수치 모델 방식이 고도화됨에 따라 더욱 우수한 기상예보를 진행할 수 있게 되었다. 본 논문에서는 SCAM 기상 모델에 대하여 컴파일 시간을 제외한 모델 수행시간에 대한 성능 향상을 끌어내는 것이 목적이다. 따라서, 기존의 Intel Fortran Compiler를 이용하여 수행된 모델을 PGI Fortran Compiler로 변경하였다. 이를 위해 시스템 환경 변수 재설정, 컴파일 옵션 조정, 관련 의존성 SW 및 라이브러리 설치 그리고 소스 코드를 수정하였다. 또한, 본 논문에서 제안한 PGI Compile with OpenACC 방법을 제시하고 적용하였다. 그 결과 러닝 시간의 경우 기존 Intel에서 PGI로 컴파일러가 변경되면, 러닝 시간의 경우 6.08%의 성능 향상이 되었으며, OpenACC를 추가로 적용할 경우, 기존 대비 43.05%의 성능 향상을 보여준다. 이는 본 논문에서 제안한 SCAM모델에서 PGI Compile with OpenACC 방법이 우수한 성능을 보여줄 수 있음을 입증한다.

Synchronous CMOS SRAM Compiler 의 구현 (Implementation of Synchronous CMOS SRAM Compiler)

  • 강세현;박인철
    • 대한전자공학회:학술대회논문집
    • /
    • 대한전자공학회 2001년도 하계종합학술대회 논문집(2)
    • /
    • pp.381-384
    • /
    • 2001
  • This paper describes the features and development of a RAM compiler that can generate low power, high speed, synchronous CMOS SRAM. The compiled SRAM can be configurable from 64bytes to 16Kbytes in one bank and has 2ns access time typically. Basic cells are developed using 2-poly, 4-metal 0.35um CMOS technology. This SRAM compiler is developed using SKIL $L^{TM}$ language and generates layout and schematic in Cadence environment.

  • PDF