9

我正在考虑编写一个小型 C# 编译器。

我一直在玩弄的一个想法是编写 C# 语法的一个子集,比如 ANTLR 的最高 2.0。然后,使用它来定位 LLVM 并为 C# 编写本机代码编译器?

这个想法甚至有意义还是行不通?有什么办法仍然可以拨打 BCL 吗?

我知道有CCI(通用编译器基础结构)可以帮助我简单地生成 .NET 可执行文件。但是我很好奇我上面所说的是否可能?

4

3 回答 3

16

Mono 已经可以与 LLVM 后端一起使用

Mono 文档中的更多详细信息

不过,请查看限制部分。

更新:从 Mono 2.8 开始,LLVM 后端已经逐渐稳定。请参阅Mono 2.8 发行说明

于 2010-02-11T22:14:15.067 回答
3

除了已经提到的 Mono 之外,微软还在自己的实现中工作,称为LLILC(它不仅仅是一个实验)。所以这很有意义。

于 2016-09-20T12:40:14.723 回答
1

除非您也想重写整个标准库,否则最好找一个不同的项目,如果您只是想找点事情做的话。一种可能是编写一个 .NET 字节码编译器或一个 IL 汇编器。

于 2010-02-11T23:00:58.213 回答