• 제목/요약/키워드: 비결정적 파싱

검색결과 2건 처리시간 0.015초

모나드를 이용한 비결정적 컴파일러 구현 (Implementation of Nondeterministic Compiler Using Monad)

  • 변석우
    • 한국컴퓨터정보학회논문지
    • /
    • 제19권2호
    • /
    • pp.151-159
    • /
    • 2014
  • 본 연구에서는 Haskell의 모나드 기법을 이용한 명령형 언어의 컴파일러 구현에 대해 논의한다. 이 컴파일러는 한 생성 룰이 입력 스트링의 파싱을 실패할 때 다른 생성 룰로써 파싱하는 backtracking 기능의 비 결정적 Recursive Descent Parser를 포함한다. Haskell은 파싱에 필요한 우수한 기능들을 가지고 있다. Haskell의 대수적 타입은 추상구문트리를 자연스럽게 표현할 수 있으며, 모나드 파싱을 적용한 프로그램 코드는 매우 간결하여 가독성이 좋고, 타 언어에 의해 구현된 것에 비해 코드의 양이 획기적으로 감소된다. 이 컴파일러의 목적 코드는 스택 머신을 기반으로 한 Stack-Assembly 언어로서 이것을 위한 코드 생성과 어셈블러 실행 환경에 대해서도 논의한다.

리덕션 골의 예상: 결정적인 접근 방법 ((Prediction of reduction goals : deterministic approach))

  • 이경옥
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제30권5_6호
    • /
    • pp.461-465
    • /
    • 2003
  • LR 파싱 시에 리덕션 골을 리덕션 시점 이전에 찾는 기법은 우문맥 계산 등의 다양한 응용을 갖는다. 기존 연구로서 미리 결정될 수 있는 리덕션 골의 집합을 생성해주는 방식이 제안되었다. 한편 이와 같은 집합 형태의 접근은 비결정적이어서 응용에 따라서는 부적절한 경우가 있다 이에 본 논문에서는 집합의 형태가 아닌 유일한 예상 가능한 리덕션 골을 제시하는 결정적인 방법을 제안한다.