본문 바로가기

컴퓨터/공부(컴파일러)

[공부] 컴파일러 자동화 도구

프로그래밍 언어와 컴퓨터 구조가 다양해짐에 따라 많은 컴파일러가 필요하게 되었다. 즉 

N개의 언어를 M개의 기계에서 구현하고자 할때  M*N개의 컴파일러가 필요하다. 이에따라 컴파일러 제작을 도와주는 도구들이 필요하게 되었고 결과로 컴파일러 생성기 또는 컴파일러-컴파일러 라고 부른다.

 컴파일러 -컴파일러는 특정한 프로그래밍 언어를 위한 언어 표현과 목적 기계에 대한 기계표현을 입력받아 하나의 컴파이러를 출력하는것 이다.  // compiler_compiler(language)  결과로 컴파일러가 나옵니다!! 같은 느낌....    . _.)

생성기- 생성기는 생성될 단계의 기능을 묘사하는 메타를 입력받아 각 단계가 사용하게 될 테이블 또는 프로그램을 출력한다. 그럼 각 구동기는 이 테이블을 이용해 그 단계에서 수행해야 할 일을 처리한다.


어휘 분석 생성기는 토큰 표현을 입력받아 어휘분석기를 자동으로 생성하는 도구다.


파서 생성기는 언어의 문법 표현으로부터 파서를 자동으로 생성하는 도구를 말하며 그 기능은 문법 표편을 받아 파싱 테이블을 내놓고 파서는 이 테이블을 이용하여 주어진 문장에 대한 문법적인 검사를 하여 다음 단계에서 필요한 의미정보를 만든다.

대표적으로 YACC가 있다.



ACK는 컴파일러의 후단부를 자동화하기 위한 도구의 하나로서 이식성과 재목적성이 매우높은 컴파일러를 만들기우히나 실질적인 도구이다.