代码生成后的汇编程序?
Assembler Following Code Generation?
我最近问了 a question on Software Engineering,但是对于一个非常严肃的问题,我遇到了太多的反对票。因此,我将尝试稍微改写一下问题,使其适合 Stack Overflow。
对于编程语言的开发,在编译器的代码生成阶段之后使用 NASM assembler 到 assemble 生成的汇编代码是否可行?
如果该问题的答案是否,我想问一下应该(按照惯例)改用什么。一些与当前操作系统捆绑在一起的标准?其他一些 assembler?
我知道 LLVM,以及它通常如何用于现代编译器创建。我选择不使用它的原因是 我想亲身体验开发自己的编译器。
是的,这是一个可行的解决方案,我自己在语言开发项目的早期阶段就使用过。
优点:免费、多平台
缺点:它是汇编程序,因此了解 ABI 的变体是您的代码的要求。
随着时间的推移,我们最终转向生成 LLVM-IR 以利用它的优化和多架构定位功能。
我最近问了 a question on Software Engineering,但是对于一个非常严肃的问题,我遇到了太多的反对票。因此,我将尝试稍微改写一下问题,使其适合 Stack Overflow。
对于编程语言的开发,在编译器的代码生成阶段之后使用 NASM assembler 到 assemble 生成的汇编代码是否可行?
如果该问题的答案是否,我想问一下应该(按照惯例)改用什么。一些与当前操作系统捆绑在一起的标准?其他一些 assembler?
我知道 LLVM,以及它通常如何用于现代编译器创建。我选择不使用它的原因是 我想亲身体验开发自己的编译器。
是的,这是一个可行的解决方案,我自己在语言开发项目的早期阶段就使用过。
优点:免费、多平台 缺点:它是汇编程序,因此了解 ABI 的变体是您的代码的要求。
随着时间的推移,我们最终转向生成 LLVM-IR 以利用它的优化和多架构定位功能。