基于Flex/Bison的编译器-二进制生成 我有一个用Flex/BISY和C++编写的PASCAL子集编译器。作为输入,我使用自己的.pas文件。我注意到,当我用这些输入运行编译器时,它更像是一个解释器,因为我得到的是即时结果。我希望获得二进制文件,以避免每次都需要使用编译器。我的问题是:

基于Flex/Bison的编译器-二进制生成 我有一个用Flex/BISY和C++编写的PASCAL子集编译器。作为输入,我使用自己的.pas文件。我注意到,当我用这些输入运行编译器时,它更像是一个解释器,因为我得到的是即时结果。我希望获得二进制文件,以避免每次都需要使用编译器。我的问题是:,c++,bison,flex-lexer,C++,Bison,Flex Lexer,生成二进制文件的最佳方法是什么?例如,您可以这样做(多年前我就是这样做的): 使用Flex/Bison,您必须生成伪asm代码 在下一步中,您必须将其转换为给定CPU体系结构(x86/ARM/MC68k/PPC/…)的宏汇编 将输出asm文件编译为对象文件(.o) 将具有所需libs(.lib)的.o文件/文件链接到可执行文件中 此外,如上所述,试着找一些关于编译器的书。最好的将是龙书,一种编译圣经:如果您要解析p代码,请将p代码保存为您自己创建的某种格式。注意这个问题对于堆栈溢出格式来说太广泛

生成二进制文件的最佳方法是什么?

例如,您可以这样做(多年前我就是这样做的):

  • 使用Flex/Bison,您必须生成伪asm代码
  • 在下一步中,您必须将其转换为给定CPU体系结构(x86/ARM/MC68k/PPC/…)的宏汇编
  • 将输出asm文件编译为对象文件(.o)
  • 将具有所需libs(.lib)的.o文件/文件链接到可执行文件中

  • 此外,如上所述,试着找一些关于编译器的书。最好的将是龙书,一种编译圣经:

    如果您要解析p代码,请将p代码保存为您自己创建的某种格式。注意这个问题对于堆栈溢出格式来说太广泛了,因为这需要做很多事情,每一件事情都可以通过多种方式完成。“生成二进制文件的最佳方法是什么?”找到一本关于编译器的好书,阅读并理解它。然后实现。这很有趣。我一定会查一下的,谢谢。