0

我想知道,这可以在自己的平台上使用C#语言语法吗?我知道 C# 是 ECMA 标准化语言。那么如何实施呢?

我知道有实现 C# 的 Mono 和 Unity3D 等示例。

例如:一个通用类库(自己的,用 C 编写)和 C# 作为编程语言。

问题是我以前从未这样做过,所以我对我应该阅读什么以及从哪里开始感兴趣。任何其他关于实现语法的文章都会很好。

4

3 回答 3

3

如果您想为 C# 编写编译器,可以从Dragon Book和C# 4 规范的副本开始。不过,这是一项非常艰巨的工作,不适合胆小的人。你通常需要多年的经验来为像 C# 这样复杂的东西编写编译器。

我建议从较小的语言开始,也许是像 Brainfuck 这样的琐碎语言,或者查看现有的玩具编译器。

于 2010-12-22T12:23:35.190 回答
0

一个明显的选择是重新定位 Mono AOT。例如,这就是 MonoTouch 的工作原理。

硬路线是实现您自己的 C# 解析器、编译器及其大部分标准库。

于 2010-12-22T13:00:40.903 回答
0

恕我直言,在少数情况下您需要编写解析器/编译器等。

我会以不同的方式来做。

第一个选择是从您的 C 应用程序运行 .Net。例如,您可以为此使用 Mono。这是一个描述:http ://www.mono-project.com/Embedding_Mono

第二种选择是直接从 C# 应用程序中使用您的 c 类库。查看http://www.pinvoke.net/例如如何声明它们。

于 2010-12-22T13:09:49.210 回答