• Title/Summary/Keyword: 규칙 컴파일러

Search Result 20, Processing Time 0.021 seconds

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

  • Kim, Sung-Dong
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2013.11a
    • /
    • pp.1315-1317
    • /
    • 2013
  • 규칙 기반의 영한 기계번역 시스템의 구문 분석 시스템은 영어의 구문 구조를 기술하는 규칙 부분과 규칙을 적용하여 차트 파싱을 수행하는 실행 부분으로 구성된다. 구문 규칙은 문맥 자유 문법의 형식으로 기술되는데, 기술된 구문 규칙을 적용하여 파싱을 실행하는 실행 부분은 C 언어 함수로 표현되므로, 구문 규칙을 C 언어 함수로 변환해야 한다. 본 논문에서는 문맥 자유 문법 형식으로 기술된 구문 규칙을 C 언어 함수로 변환하는 도구인 구문 규칙 컴파일러를 개발하였다. 구문 규칙 컴파일러는 자동적으로 구문 규칙을 C 언어 함수로 변환함으로써 영한 기계번역 시스템의 성능 개선 과정에서 빈번하게 발생하는 구문 규칙의 생성과 수정을 용이하게 하여 번역 성능을 개선하는 작업을 지원한다.

A Study on Termination Analysis for Rule Compiler (규칙 컴파일러를 위한 종료 분석 연구)

  • Gang, Byeong-Geuk;Hwang, Jeong-Hui;Sin, Ye-Ho;Ryu, Geun-Ho
    • The KIPS Transactions:PartD
    • /
    • v.8D no.6
    • /
    • pp.823-834
    • /
    • 2001
  • In the active databases, whenever an event occurs, active rules with the matching event specifications are triggered automatically, its action will be executed. Because these rules may in turn trigger other rules including themselves, the set of rules may be executing each other indefinitely. These problem can be solved by rule termination analysis, and it is efficient for the rule termination to execute in compile time of rule. In this paper we not only design rule compiler with rule termination analyzer, but also propose its execution model and algorithm. The completeness of proposed model is verified by algorithm formalization of rule termination analysis.

  • PDF

An Efficient Approach to Testing Retargetable Compiler Using Intermediate Representation (중간표현을 이용한 재목적 컴파일러의 효율적인 테스트 방법)

  • Jang, Han-Il;Woo, Gyun;Chae, Heung-Seok
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.10b
    • /
    • pp.575-579
    • /
    • 2006
  • 컴파일러에 결함이 있다는 것은 곧 잘못된 코드를 생성한다는 것을 의미하므로 양질의 컴파일러 구성은 양질의 소프트웨어 생산을 위한 기본 요구조건이 된다. 임베디드 시스템이 널리 사용되면서 더욱 다양하고 복잡한 임베디드 프로세서가 개발되었고 이는 새로이 설계된 프로세서를 위한 새로운 컴파일러 개발의 필요를 야기하고 있다. 본 논문에서는 프로그램의 중간 표현을 기반으로 하는 효율적인 테스팅 방법을 제안한다. 언어의 구문 규칙을 모두 사용하는 테스트 케이스를 통해 컴파일러를 테스트하는 방법이 이미 연구되었으나, 기존의 소스 코드 수준의 방법으로는 테스트 케이스의 중복성이 존재하는 단점이 있다. 본 논문에서는 중간 표현의 구문 규칙을 이용해서 중복된 테스트 케이스를 제거하여 테스팅 효율을 증가시킬 수 있음을 기술한다. 또한 본 논문에서 제안하는 방법을 GCC의 중간 언어인 RTL에 적용한 예를 통해 설명한다.

  • PDF

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

  • Ko, Kwang-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2001.04b
    • /
    • pp.1033-1036
    • /
    • 2001
  • 컴파일러 후단부 개발시 중간 코드로부터 목적기계 코드를 생성하기 위해서는 각각의 중간 코드 명령어를 목적기계 코드로 치환하는 방법과 다양한 중간 코드 패턴에 대한 목적기계 코드 생성 규칙을 기술하는 방법으로 구분된다. 특히, 컴파일러 후단부 전체를 재구성하지 않고 중간 코드로부터 목적기계 코드를 생성하는 정형화된 규칙을 이용하면 다양한 목적기계 코드를 효율적으로 생성할 수 있다. 본 논문은 Bytecode로부터 정형화된 코드 생성 규칙을 이용하여 Pentium기계에 대한 코드 생성이 가능하도록 코드 생성 규칙 기술 모델을 제시하며 실질적으로 목적기계 코드 생성시에 참조 가능한 정보를 생성하는 코드-생성기 생성기를 연구한다 본 연구를 통해서 Bytecode로부더 다양한 목적기계 코드를 생성할 수 있는 정형화된 코드 생성 규칙 기술 방법을 얻을 수 있다.

  • PDF

An XML Compiler Generator using Object Oriented Attribute Grammar and SML (객체지향 속성 문법과 SML을 이용한 XML 컴파일러 생성기)

  • Choi, Jong-Myung;Yoo, Chae-Woo
    • The KIPS Transactions:PartA
    • /
    • v.11A no.2
    • /
    • pp.149-158
    • /
    • 2004
  • XML as a standard for representing data and document structure is widely used in every area, and we have to write XML compilers which process the XML documents according to a user's intention. Because it takes time and costs to write XML compilers by hand, we need some generators that automatically generate XML compilers. In this paper, we introduce an XML compiler generator named XCC. It reads DTD and semantic rules, and it generates XML compiler and Java classes which correspond to the elements defined in the DTD.

Multiport Memory Compiler using Single Core Cell Expansion (단일 코어 셀 확장을 이용한 다중포트 메모리 컴파일러)

  • Kim, Seon-Gwon;Lee, Yong-Jin;Gwon, Seong-Hun;Kim, Won-Jong;Sin, Hyeon-Cheol
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.28 no.4
    • /
    • pp.196-203
    • /
    • 2001
  • 본 논문에서는 빠른 시간 내에 설계자의 요구사양을 만족하는 메모리를 자동으로 합성해주는 새로운 멀티포트 메모리 컴파일러를 제안하였다. 제안한 컴파일러의 장점은 하나의 메모리 코어 셀을 규칙적으로 배치, 확장하여 메모리를 합성하고, 동시에 합성된 메모리내의 임계경로만을 추출하여 빠르게 검증할 수 있다는 것이다. 또한, 레이아웃 상에서의 전원선 공유 등의 기법으로 메모리의 성능을 향상시킬 수 있도록 하였다. 본 컴파일러를 사용하여 0.25$\mu\textrm{m}$ CMOS 1-poly, 2-metal 공정에서 최대 8개의 쓰기 포트, 16개의 읽기 포트, 64워드, 256비트 사이의 여러 가지 멀티포트 메모리를 자동 합성하였다. 합성 결과 메모리의 성능 및 면적 면에서 만족할 만한 결과를 얻었으며, 레이아웃 전체에서의 시뮬레이션 시간보다 10배정도 빠른 시간 내에 동작을 정확히 검증하였다.

  • PDF

Effective Integer Promotion Bug Detection Technique for Embedded Software (효과적인 내장형 소프트웨어의 정수 확장 (Integer Promotion) 버그 검출 기법)

  • Kim, Yunho;Kim, Taejin;Kim, Moonzoo;Lee, Ho-jung;Jang, Hoon;Park, Mingyu
    • Journal of KIISE
    • /
    • v.43 no.6
    • /
    • pp.692-699
    • /
    • 2016
  • C compilers for 8-bit MCUs used in washing machines and refrigerators often do not follow the C standard to improve runtime performance. Developers who are unaware of the difference between C compilers following the C standard and the C compilers for 8-bit MCU can cause bugs that do not appear in the standard C environment but appear in the embedded systems using 8-bit MCUs. It is difficult for bug detectors that assume the standard C environment to detect such bugs. In this paper, we introduce integer promotion bugs caused by the different integer promotion rules of the C compilers for 8-bit MCU from the C standard and propose 5 bug patterns where the integer promotion bugs occur. We have developed an integer promotion bug detection tool and applied it to the washing machine control software developed by the LG electronics. The integer promotion bug detection tool successfully detected 27 integer promotion bugs in the washing machine control software.

Design and Implementation of a CHILL96 Compiler Using C++ Intermediate Code (C++ 중간 코드를 이용한 CHILL96 컴파일러의 설계 및 구현)

  • Keum, Chang-Sup;Lee, Joon-Kyung;Lee, Dong-Gill;Lee, Byung-Sun
    • The Transactions of the Korea Information Processing Society
    • /
    • v.7 no.5
    • /
    • pp.1559-1569
    • /
    • 2000
  • CHILL96 is recommended as development language for telecommunication systems by ITU-T. In this paper, we describe the design and implementation of CHILL96 compiler using C++ intermediate code. Translation rules from CHILL96 to C++ are designed for code generation. The CHILL96 compiler is composed of four parts such s syntax analyzer, visibility checker, semantic analyzer and code generator, and each part has very close relationship with symbol table and abstract syntax tree. Performance evaluation has been performed for feasibility study. After performance evaluation, we conclude the CHILL96 compiler using C++ intermediate sho good performance compared with other CHILL compilers. In addition to high performance and portability, the CHILL96 compiler using C++ intermediate code helps application developers to maintain and enhance telecommunications software by translating CHILL96 program to C++ program.

  • PDF

A Design and Implementation of Integrated Database Schema Checker (통합 데이터베이스 스키마 검사기의 설계와 구현)

  • 김규백;유경용;김형찬
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2004.04b
    • /
    • pp.205-207
    • /
    • 2004
  • 프로젝트의 경쟁력과 성공을 위해 통합 데이터베이스 관리가 중요해지고 있다. 본 논문에서는 통합 데이터베이스 관리가 스키마 설계에서부터 이루어지도록 지원하는 새로운 스키마 검사기의 설계와 구현 내용을 소개한다. 개발된 스키마 검사기는 데이터베이스 객체의 명명 규칙 검사, 적합한 단어 필터, 유사 객체 찾기. 사용자 지정 규칙 적용의 기능을 가지고 있다. 그리고 일반적인 컴파일러의 구문 분석 과정과 다른 방법을 적용해 작업 효율을 높인 구현 세부 사항에 대해서도 상세히 설명한다. 개발된 도구는 통합 데이터베이스 관리 업무에 중요하게 현재 활용되고 있다.

  • PDF

Compiling Haskell to Java via an Intermediate Code L (중간언어 L-코드를 이용한 Haskell-Java 언어 번역기 구현)

  • Choi, Kwang-Hoon;Han, Tai-Sook
    • Journal of KIISE:Software and Applications
    • /
    • v.28 no.12
    • /
    • pp.955-965
    • /
    • 2001
  • We propose a systematic method of compiling Haskell based on the spineless Tagless G-machine (STGM) for the Java, Virtual Machine (JVM) We introduce an intermediate language called L-code to identify each micro-operation of the machine by its instruction, Each macro operation of the machine is identified by a binding Each instruction of the L-code can be easily translated into Java statements. After our determination on representation and L-code program from a STG program is translated into Java program according to out compilation rules. Our experiment shows that the execution times of translated benchmarks are competitive compared with those in Haskell interpreter Hugs, particularly when Glasgow Haskell compiler's STG -level optimizations are applied.

  • PDF