• Title/Summary/Keyword: 컴파일러 개발

검색결과 183건 처리시간 0.048초

GDB 기반의 재목적 소프트웨어 디버거 설계 및 구현 (Design and Implementation of Retargetable Software Debugger based on GDB)

  • 지정훈;이건우;우균
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 추계학술발표대회
    • /
    • pp.538-541
    • /
    • 2007
  • 최근 SoC 기술이 발달하면서, 내장형 시스템을 위한 프로세서 개발이 활발해졌다. 새로운 프로세서가 개발되면, 운영체제 및 소프트웨어 개발을 위해 컴파일러 및 디버거가 필요하다. 컴파일러는 소스코드를 타겟 프로세서에서 실행 가능한 목적파일로 변환하고, 디버거는 프로그램의 개발에서 오류를 찾기 위한 도구로 소프트웨어 개발에 매우 중요한 도구들이다. 본 논문에서는 KAIST에서 개발하는 32bit 프로세서인 Core-A를 위한 소프트웨어 디버거를 설계 및 구현한다. Core-A용 디버거는 공개 소스 디버거 시스템인 GDB를 참조모델로 했으며, 레지스터와 메모리 맵과 같은 프로세서 종속적인 부분을 확장하고 외부 인터페이스 모듈과 같은 프로세스 독립적인 모듈은 재사용함으로써 개발기간을 단축시켰다. 그리고 Core-A용 디버거의 검증을 위해 상용 디버거 시스템인 ARM용 AXD 디버거와 비교 실험을 진행하였다.

가변적인 컴포넌트 개발을 위한 컴파일러 방식의 룰 엔진 (A Compiler Based Rule Engine for Developing Changeable Component)

  • 이용환
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제12권6호
    • /
    • pp.379-385
    • /
    • 2006
  • 가변적인 컴포넌트의 재사용성이나 적응성을 높이기 위해 룰 기반 컴포넌트 개발 방법들이 제안되고 있다. 룰 기반 컴포넌트 개발에서 사용하는 룰 엔진들은 룰을 표현하기 위해 추가적인 스크립트 언어가 필요하며 따라서 복잡한 비즈니스 룰을 표현하는데 어려움이 많다. 본 논문에서는 다양한 룰 표현과 성능 향상을 위한 컴파일러 기반의 룰 엔진을 제안한다. 제안한 룰 엔진은 룰의 컨디션과 액션 부분을 표현하기 위해 자바 프로그래밍 언어를 사용한다. 따라서 복잡한 비즈니스 룰을 쉽게 표현할 수 있으며 실행 시에 동적으로 룰의 컨디션과 액션 객체를 생성해서 실행시킬 수 있다. 성능 면에서도 제안한 룰 엔진은 스크립트 기반 룰 엔진보다 우수하다. 성능 실험에 의하면 컴파일러 기반의 룰 엔진 성능은 스크립트 기반 룰 엔진인 JSR-94 보다 2.5배의 높은 성능을 보이고 있다.

기준 메모리를 이용한 메모리 컴파일러 특성화 방법 (Characterization Method of Memory Compiler Using Reference Memories)

  • 신우철;송혜경;정원영;조경순
    • 전자공학회논문지
    • /
    • 제51권2호
    • /
    • pp.38-45
    • /
    • 2014
  • 본 논문에서는 메모리 컴파일러를 정확하고 빠르게 특성화할 수 있도록 기준 메모리를 기반으로 특성화하는 방법을 제안하였다. 제안한 특성화 방법은 메모리 컴파일러의 정확도를 유지하면서 특성화 시간을 최소화하기 위해 메모리 컴파일러의 타이밍 경향을 분석하고 분석 결과를 토대로 기준 메모리를 선정하고, 메모리간의 경향성을 대변할 수 있도록 모델링하였다. 본 논문에서 제안한 방법론을 검증하기 위하여 130nm에서 개발된 메모리 컴파일러를 제안한 방법을 이용하여 110nm 메모리 컴파일러를 특성화하였다. 이를 통해 생성한 메모리들의 특성과 SPICE를 사용하여 특성화한 결과를 비교하여 메모리 타이밍의 평균 오차율은 ${\pm}0.1%$ 이내였으며 실제 110nm 공정을 사용하여 제작된 메모리 BIST(Built-In Self Test) 테스트 칩으로 기능 검사한 결과, 수율(Yield)이 98.8% 임을 확인하였다. 또한, 180nm 공정을 사용하여 비교한 결과, 수율이 98.3%로 그 유용성을 확인할 수 있었다.

64-bit 자바스크립트 적시 컴파일러를 위한 상수 값 생성 최적화 (Optimizing Constant Value Generation in Just-in-time Compiler for 64-bit JavaScript Engine)

  • 최형규;이제형
    • 정보과학회 논문지
    • /
    • 제43권1호
    • /
    • pp.34-39
    • /
    • 2016
  • 자바스크립트는 웹 페이지에서 HTML과 더불어 널리 사용되고 있다. 많은 자바스크립트 수행 엔진들은 성능 향상을 위해 적시 컴파일러를 채택하고 있다. 최근에는 32-bit 뿐만 아니라 64-bit 마이크로프로세서가 탑재된 다양한 기기가 소개되고 있으며 이를 위한 적시 컴파일러도 개발되고 있다. 하지만 64-bit 적시 컴파일러는 아직 문제점이 많으며, 특히 메모리 주소와 값들이 64-bit을 사용하여 코드의 크기가 증가하는 문제점이 있다. 본 논문은 64-bit 환경에서 생성되는 코드, 특히 주소와 상수 값들이 더 많은 공간을 사용함을 보여주고, 적시 컴파일러가 64-bit 값들의 생성을 최적화하여 메모리 사용량을 줄이는 기법들을 제안한다. 이를 V8 자바스크립트 엔진에 적용하여, Octane과 SunSpider 벤치마크에서 생성되는 코드의 크기와 성능을 평가하였다. 성능은 각각 3.6%와 0.32% 향상되었으며, 코드 크기는 0.7%와 2.8% 감소하였다.

응용프로그램에 특화된 명령어를 통한 고정 소수점 오디오 코덱 최적화를 위한 ADL 기반 컴파일러 사용 (Using a H/W ADL-based Compiler for Fixed-point Audio Codec Optimization thru Application Specific Instructions)

  • 안민욱;백윤흥;조정훈
    • 정보처리학회논문지A
    • /
    • 제13A권4호
    • /
    • pp.275-288
    • /
    • 2006
  • 빠른 디자인 공간 탐색 (Design space exploration)은 응용 프로그램의 동작을 구현하기 위한 임베디드 시스템을 디자인하는데 매우 중요하다. Time-to-market이 디자인의 주관심사가 되어감에 따라 ASIP(Application specific instruction-set processor)에 기반한 접근 방식이 디자인 방법론적으로 중요한 대안이 되고 있다. 이러한 접근 방식에서는 타깃 프로세서의 ISA(Instruction set architecture)를 코드 크기와 실행 속도 측면에서 응용 프로그램에 가장 적합하도록 변경한다. 본 논문의 목적은 우리의 새로운 재겨냥성 컴파일러를 소개하고, 많이 알려진 디지털 신호 처리용 응용 프로그램을 위한 ASIP 기반 디자인 공간 탐색에서 컴파일러가 어떻게 활용될 수 있는지 설명하고자 하는 것이다. 새롭게 개발된 재겨냥성 컴파일러는 이전의 재겨냥성 컴파일러의 기능을 제공할 뿐만 아니라 application 프로그램의 특징을 시각화하고 application 프로그램의 프로파일된 결과를 제공하므로 application의 성능을 증가시키기 위해 어떤 명령어들을 넣어야 하는지를 결정하는데 도움을 준다. 재겨냥성 컴파일러의 ADL(Architecture description language)를 이용하여 타깃 프로세서의 초기 RISC-style ISA을 기술하고, 컴파일러가 응용 프로그램을 위한 어셈블리 코드를 더 최적화할 수 있도록 응용 프로그램에 특화된 명령어를 ISA에 점진적으로 추가해 나간다. AC3 오디오 codec을 위한 실험 결과로부터 우리는 32%의 성능 증가와 20%의 프로그램 크기 감소를 얻을 수 있는 6개의 새로운 특화 명령어를 빠르게 찾을 수 있었다. 따라서 우리는 고성능의 재겨냥성 컴파일러는 특정 응용 프로그램을 위한 새로운 ASIP의 빠른 디자인을 하기 위한 중요한 핵심이라는 것을 확인할 수 있었다.

V8 자바스크립트 엔진 적시 컴파일러의 함수 호출 코드 생성 최적화 (Call Optimization on Just-in-Time Compiler of V8 JavaScript Engine)

  • 정원기;문수묵
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(A)
    • /
    • pp.135-138
    • /
    • 2011
  • 자바스크립트 언어는 클라이언트 사이드 웹 언어로서 지금까지 널리 사용되어 왔다. 그러나 최근에서야 내장형 시스템에서의 웹 브라우징이 보급되면서 그 성능이 이슈가 되고 있는데, 이를 위해 여러 오픈 소스 진영에서 적시 컴파일러를 탑재한 고성능의 자바스크립트 엔진이개발되고 있다. 그 중 V8 자바스크립트 엔진이 현재는 성능이 가장 좋은 것으로 알려져 있으나, 자바스크립트 언어의 극도로 동적인 특성으로 인하여 아직 성능의 최적화 여지가 많이 남아 있다. 본 논문에서는 V8 자바스크립트 엔진의 적시 컴파일러에서 함수 호출 코드 생성에 관한 최적화를 적용 하였다. 두 개의 명령어와 하나의 상수 풀을 사용하던 기존의 함수 호출 코드에서 하나의 명령어만으로 함수 호출을 하도록 구현함으로써 성능이 1.5% 개선되었고, 네이티브 캐시 사용량이 7.7% 감소하였다.

패킷 처리 프로그래밍을 위한 언어의 설계와 컴파일러의 구현 (Design and Implementation of Packet Processing Programming Language and Compiler)

  • 최예지;고방원;신경희;유재우
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.510-513
    • /
    • 2012
  • 본 논문은 하드웨어에 독립적이고 패킷 처리 프로그래밍 개발의 효율성을 높이기 위하여 eFlowC 언어와 eFlowC 컴파일러를 제안한다. eFlowC 언어는 C 언어 기반의 고급언어이다. 그리고 기존의 C 문법에 패킷 처리 관련 기능을 위한 새로운 라이브러리를 추가하였다. eFlowC 컴파일러는 eFlowC 언어로 작성된 프로그램을 입력으로 받는다. 그리고 결과물로 가상 기계 목적 코드를 생성한다. 가상 기계 목적 코드는 언어 번역기의 입력 파일로 언어 번역기를 통하여 다양한 하드웨어 기계어로 번역이 가능하다.

규칙 기반 영한 기계번역에서의 구문 규칙 컴파일러 (Syntactic Rule Compiler in Rule-based English-Korean Machine Translation)

  • 김성동
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2013년도 추계학술발표대회
    • /
    • pp.1315-1317
    • /
    • 2013
  • 규칙 기반의 영한 기계번역 시스템의 구문 분석 시스템은 영어의 구문 구조를 기술하는 규칙 부분과 규칙을 적용하여 차트 파싱을 수행하는 실행 부분으로 구성된다. 구문 규칙은 문맥 자유 문법의 형식으로 기술되는데, 기술된 구문 규칙을 적용하여 파싱을 실행하는 실행 부분은 C 언어 함수로 표현되므로, 구문 규칙을 C 언어 함수로 변환해야 한다. 본 논문에서는 문맥 자유 문법 형식으로 기술된 구문 규칙을 C 언어 함수로 변환하는 도구인 구문 규칙 컴파일러를 개발하였다. 구문 규칙 컴파일러는 자동적으로 구문 규칙을 C 언어 함수로 변환함으로써 영한 기계번역 시스템의 성능 개선 과정에서 빈번하게 발생하는 구문 규칙의 생성과 수정을 용이하게 하여 번역 성능을 개선하는 작업을 지원한다.

ASN.1 원시 코드 자동 생성기 (ASN.1 Source Code Auto-Generator)

  • 정진영;김영철
    • 한국컴퓨터정보학회논문지
    • /
    • 제8권4호
    • /
    • pp.28-34
    • /
    • 2003
  • ASN.1은 망 관리에 필요한 기초적인 제반기술이다. ASN.1의 개발에는 ASN.1 명세 언어를 파싱하는 컴파일러 작업과 컴파일 결과 생성된 자료들을 DB에 입력하고, 입력된 자료를 사용자에게 프리티프린팅하여 보여주는 작업이 요구된다. 본 논문에서는 ASN.1 명세를 객체지향 언어인 C++로 자동적으로 변환하여 주는 원시 코드 자동 생성기를 설계하고 구현한다. 이와 함께 ASN.1 개발환경에 필요한 그래픽 사용자 인터페이스, DB 인터페이스 및 ASN.1 브라우저를 포함하는 통합 환경을 제공한다. 본 시스템의 구현은 Objectivity 데이타베이스를 이용하였고, 컴파일러 작업에서는 컴파일러 보조 도구인 flex와 byacc을 이용하였으며, 인터페이스 언어로는 Tcl/Tk를 사용하였다.

  • PDF

C++컴파일러 및 프로그래밍 환경 개발 (Debelppment of C++ Compiler and Programming Environment)

  • 장천현;오세만
    • 한국정보처리학회논문지
    • /
    • 제4권3호
    • /
    • pp.831-845
    • /
    • 1997
  • 본 논문에서는 가장 널리 사용되고 있는 객체지향 언어인 C++를 지한 컴푸일러 및 대화식 프로그래밍 환경을 제안하고 개발하였다. C++ 언어를 위한 컴파일러를 개발하기 위해 컴파러를 Front-End 와 Back-End로 나누고 가상기계인 EM을 사용하여 연결하는 모델을 사용하였다. Front-End 개발시에는 C++ 문법을 문법석 도구, 어휘 및 구문분석기 생성도구를 이용하여 구문분석 방법과 문맥에 연동된 문법 처리기술과 AST클래스 라이브러리를 개발하였다. Back-End에서는 목적기계 표현기술과 토리코드 최적화 방법, 트리 패턴 매칭에 의한 재목적 코드 생성 기법을 제안하고 이를 이용한 재목적이 용이한 SPARC 기계 Back-End를 개발하였다. C++를 위한 대화식 프로그래밍 환경은 언어의 다양한 특성을 효과적으로 표현하기 위해 AST을 이용하고, 점진적 분석 기술과 시각 기호 를 제안하였다. 대화식 환경의 일반화에 의한 자동생성 방법과 프로그램의 정형화된 표현 방법을 위한 Unparsing 체계를 제안하였다. 개발된C++ 컴팰러와 대화식 프로그램 환경은 통합된 C++ 프로그래밍 환경을 구성하게 된다. 본 연구를 통해 얻어진 기술 들은 새로운 고급언어 및 기계에 대한 컴파일러의 개발은 물론 병렷 및 분산 환경을 위한 컴파일러 개발에 활옹될 수 있을 것이다.

  • PDF