您将使用什么来构建新的 .NET 编译器?

发布于 2024-08-16 14:28:01 字数 128 浏览 6 评论 0 原文

我正在开发一种新的玩具语言,它将静态编译为 .NET 的 IL 代码。

我可以立即想到以下方法来实际生成 IL,但我对替代方案持开放态度:

  • Cecil
  • ILASM

I'm working on a new toy language that will be statically compiled to .NET's IL code.

Off hand I can think of the following to actually generate the IL, but I'm open to alternatives:

  • Cecil
  • ILASM

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

桃扇骨 2024-08-23 14:28:01

还有通用编译器基础设施(AST/Code元数据),当然还有古老的 Reflection.Emit。我自己没有任何 CCI 经验,但此页面似乎是IL 翻译方面的良好起点。

There is also the Common Compiler Infrastructure (AST/Code, Metadata), and of course the venerable Reflection.Emit. I don't have any experience of CCI myself, but this page seems a good starting point for the IL translation side of things.

长不大的小祸害 2024-08-23 14:28:01

您可以使用此编译器生成器编写自己的语言。我用过。它真的很容易使用和理解。

CoCo/R

http://en.wikipedia.org/wiki/Coco/R

You can write your own language using this compiler generator. I used it. Its really easy to use and to understand.

CoCo/R

http://en.wikipedia.org/wiki/Coco/R

秋千易 2024-08-23 14:28:01

如果 MSIL 生成本身并不重要,您可以将您的语言“编译”(翻译)为 C#,然后使用常规的 dotnet 编译器。我认为这更容易做到,尽管您没有足够的空间来实现深奥的性能优化等。在任何我不关心优化编译速度的新语言情况下,翻译成通用高级语言肯定是我的首选。

if MSIL generation per se is not of the essence, you could "compile" (translate) your language to C# and then use the regular dotnet compiler for that. I would imagine that's quite a bit easier to do, although you don't get as much scope for implementing esoteric performance optimizations and so on. Translation into a common high level language would have definitely been my first choice in any such new language situation where I was not concerned with optimizing the speed of compilation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文