我想知道,这可以在自己的平台上使用C#语言语法吗?我知道 C# 是 ECMA 标准化语言。那么如何实施呢?
我知道有实现 C# 的 Mono 和 Unity3D 等示例。
例如:一个通用类库(自己的,用 C 编写)和 C# 作为编程语言。
问题是我以前从未这样做过,所以我对我应该阅读什么以及从哪里开始感兴趣。任何其他关于实现语法的文章都会很好。
如果您想为 C# 编写编译器,可以从Dragon Book和C# 4 规范的副本开始。不过,这是一项非常艰巨的工作,不适合胆小的人。你通常需要多年的经验来为像 C# 这样复杂的东西编写编译器。
我建议从较小的语言开始,也许是像 Brainfuck 这样的琐碎语言,或者查看现有的玩具编译器。
一个明显的选择是重新定位 Mono AOT。例如,这就是 MonoTouch 的工作原理。
硬路线是实现您自己的 C# 解析器、编译器及其大部分标准库。
恕我直言,在极少数情况下您需要编写解析器/编译器等。
我会以不同的方式来做。
第一个选择是从您的 C 应用程序运行 .Net。例如,您可以为此使用 Mono。这是一个描述:http ://www.mono-project.com/Embedding_Mono
第二种选择是直接从 C# 应用程序中使用您的 c 类库。查看http://www.pinvoke.net/例如如何声明它们。