2017-10-08 2 views
1

플렉스/들소 지금 당장 컴파일러를 할 수 있다고 생각하지만, 더 많이 묻는다면 구문 분석기라는 인상을받으며 실행 가능한 유니버설 윈도우를 새로 생성 할 수 없습니다. 우리의 프로그래밍 언어에서. 나는 Bison에 의해 생성 된 파일이 실행될 때 C로만 코드 언어를 해석한다고 설명한다.Flex/Bison을 사용하여 실제 컴파일러를 만드는 방법은 무엇입니까?

내 컴파일러가없는 창에서 실행 파일을 생성하는 컴파일러를 만들 수 있습니까?

답변

1

예, flex + bison을 사용하여 컴파일러를 작성하는 것이 가능하지만 (물론 완벽하게 공통적 인) 이러한 도구는 어휘 및 구문 분석을 돕습니다. 나머지는 직접하거나 LLVM과 같은 추가 도구를 사용해야합니다.

예를 들어 간단한 단일 패스 컴파일러를 만들려면 bison-actions에서 파일로 어셈블리 명령을 간단히 작성할 수 있습니다. 그런 다음 끝에 어셈블러와 링커를 통해 해당 파일을 실행하고 실행 파일을 얻을 수 있습니다.

더 복잡한 컴파일러의 경우 바이슨 액션 내에 추상 구문 트리를 만든 다음 나중에 해당 트리를 이동하여 어셈블리를 생성 할 때까지 변환 및 분석을 수행 할 수 있습니다.

바이슨은 파싱에만 도움이됩니다. 다른 단계를 직접 수행해야합니다.

+0

컴파일러 작성은 실제로 매우 복잡한 작업이므로 필자는 주제를 연구하고 프로젝트에 더 적합한 선택을 할 것입니다. 대단히 감사합니다. – Chr

관련 문제