2017-11-02 2 views
0

Flex/Bison 및 C++을 사용하여 작성된 파스칼 하위 집합의 컴파일러가 있습니다. 입력으로 나는 자신의 .pas 파일을 사용한다. 필자는 컴파일러를 입력 할 때 즉시 결과를 얻기 때문에 인터프리터와 비슷하게 작동한다는 것을 알고 있습니다. 매번 컴파일러를 사용할 필요가 없도록 이진 파일을 얻고 싶습니다. 내 질문 :Flex/Bison 기반 컴파일러 - 이진 생성

이진 파일을 생성하는 가장 좋은 방법은 무엇입니까?

+2

P 코드로 구문 분석하는 경우 사용자가 만든 일부 형식으로 P 코드를 저장하십시오. 스택 오버플로 형식에 대해서는이 질문이 너무 광범위하다는 점에 유의하십시오. 스택 오버플로 형식은 여러 가지 방법으로 수행 할 수있는 여러 가지 작업이 필요하기 때문에주의해야합니다. – tadman

+0

"바이너리 파일을 생성하는 가장 좋은 방법은 무엇입니까?" 컴파일러에 관한 좋은 책을 찾아 읽고 이해하십시오. 그런 다음 구현하십시오. – Slava

답변

1

당신은 (나는 몇 년 전이 방법으로 그것을 수행) 이런 식으로 예를 들어이 작업을 수행 할 수 있습니다 플렉스/들소를 사용

  1. , 당신은 의사 ASM 코드를 생성해야합니다. 다음 단계에서
  2. , 당신은
  3. 오브젝트 파일 (.o 인)로 출력 ASM 파일을 컴파일 (/ ... 86/ARM/MC68k/PPC) 지정된 CPU 아키텍처 매크로 어셈블리에 번역해야
  4. .o 파일/파일을 필요한 라이브러리 (.lib)와 함께 실행 파일에 링크하십시오.

게다가 위에서 언급 한 것처럼 컴파일러에 대한 책을 찾아보십시오. 가장 좋은 코드는 입니다. Dragon Book, 일종의 컴파일러 성경 : https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools

+0

그것은 매우 흥미 롭습니다. 확실히 확인해 볼게. 고마워. – Kris