最近我了解了B3 (Bare Bones Backend),这是为WebKit JavaScript引擎创建的非常快的编译器后端。像快速编译一样快,比LLVM(之前使用过的)快5倍。我正在研究一种AOT编译语言,目前正在编译为C语言,但我认为我想使用B3因为编译速度快,而且因为我喜欢它的简单性,它的语义与我正在创建的语言类似,它可能比在C中执行堆栈跟踪更容易(使用#line
指令,DWARF符号信息,addr2line
),它将是跨平台的(至少声称x64和ARM) 。但我只是开始了解B3,有人可以讨论这个后端是否完全可以用于编译语言?我意识到它是用JIT制作的,但它会生成机器代码,对吧?必须完成哪些工作才能将生成的代码保存到目标文件然后链接?如果有可能,如何开始呢?