1
4
|
2
1
如果您使用F#来编写编译器,发出CIL当然听起来是个不错的决定,因为您将能够使用CodeDOM等的所有内置功能。 或者,您可以设计自己的输出格式,并编写一个运行在.NET内部的VM,如果这样可以使输出更容易(因为它是一个更合适的体系结构)。调试起来可能更容易——当然这也意味着编写VM:) |
3
1
您是否考虑过将x86程序集作为目标? 几年前我自己做了一个Tiger编译器,汇编发射器虽然很难编写,但却是整个项目中最有价值的东西之一。用C编写自己的小型VM也是一个好主意(如果不是更好的话)。 如果您正在创建一种生产语言,那么以现有VM为目标是务实的,但会从实践中消除许多学习的可能性。 如果我是你,我会在项目的后面仔细研究不同的优化技术。 |