如何实现C#语法以用于自己的平台?ECMA标准

如何实现C#语法以用于自己的平台?ECMA标准,c#,ecma,C#,Ecma,我想知道,在自己的平台上是否可以使用C语言语法?我知道C#是ECMA标准语言。那么如何实施呢 我知道有一些例子,比如Mono和Unity3D,它们实现了C# 例如:一个公共类库(own,用C编写)&C#作为一种编程语言 问题是我以前从未这样做过,所以我感兴趣的是我应该读什么&从哪里开始。关于实现语法的任何其他文章都会很好。如果您想为C#编写编译器,那么开始的地方是,以及的副本。这是一个可怕的工作,虽然很多,而不是为心脏虚弱;对于像C#这样复杂的东西,编写编译器通常需要多年的经验 我建议从一种较小

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

我知道有一些例子,比如Mono和Unity3D,它们实现了C#

例如:一个公共类库(own,用C编写)&C#作为一种编程语言


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

如果您想为C#编写编译器,那么开始的地方是,以及的副本。这是一个可怕的工作,虽然很多,而不是为心脏虚弱;对于像C#这样复杂的东西,编写编译器通常需要多年的经验


我建议从一种较小的语言开始,可能是一种像brainfuck这样的普通语言,或者看看现有的玩具编译器。

如果你想为C#编写编译器,开始的地方是,除了一份。这是一个可怕的工作,虽然很多,而不是为心脏虚弱;对于像C#这样复杂的东西,编写编译器通常需要多年的经验


我建议从一个较小的语言开始,也许是像brainfuck这样的普通语言,或者看看现有的toy编译器。

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


困难的途径是实现自己的C#解析器、编译器及其标准库的大部分。

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

困难的途径是实现您自己的C#解析器、编译器及其标准库的大部分。

我想,当您需要在解析器/编译器等上编写代码时,有非常少的情况

我会用另一种方式

第一个选项是从C应用程序运行.Net。例如,您可以使用Mono来实现这一点。以下是描述:

第二种选择是直接从c#应用程序使用c类库。例如,检查如何声明它们。

当您需要在解析器/编译器等上编写代码时,有多少种情况是非常的

我会用另一种方式

第一个选项是从C应用程序运行.Net。例如,您可以使用Mono来实现这一点。以下是描述:


第二种选择是直接从c#应用程序使用c类库。例如,检查如何声明它们。

编写自己的解析器、编译器和框架绝非易事,仅仅问这个问题就让我觉得这有点超出了你的理解范围,最好使用现有的解决方案。然而,有一些编译器和解析器生成器可以让您开始使用,比如YACC和Coco/R。让您的“平台”执行IL,而不是C。现在,你不关心编译器,任何编译器都可以胜任。编写你自己的解析器、编译器和框架不是一件轻而易举的事,只要问一下这个问题,我就会觉得这有点超出你的能力,最好还是使用现有的解决方案。然而,有一些编译器和解析器生成器可以让您开始使用,比如YACC和Coco/R。让您的“平台”执行IL,而不是C。现在,您不必关心编译器,任何编译器都将符合条件。+1-表达式解析器,可以逐步扩展以支持变量、函数、不同数据类型、IL生成等,也是开始使用词法分析器、解析器、抽象语法树、语义绑定和其他一切的好方法。+1-表达式解析器,它可以逐步扩展以支持变量、函数、不同的数据类型、IL生成等,也是开始使用lexer、解析器、抽象语法树、语义绑定和其他一切的好方法。我想做的正是使用C语言在我的库中编写本机C应用程序。因此,在编译时将C#转换为C。这可能吗?这比用C编写实际应用程序要花更长的时间。C#是一种面向对象的语言,将其转换为C将非常困难,即使我得到一百万美元,我也不会花时间去做这件事。不过,您可以编写一个使用C库的托管C#应用程序。为什么你不能这么做呢?我刚看了pinvoke和.NET的互操作能力,看起来很酷,以前从未使用过。看起来是使用我的C库最方便的方法。谢谢。我想做的就是使用C语言在我的库中编写本机C应用程序。因此,在编译时将C#转换为C。这可能吗?这比用C编写实际应用程序要花更长的时间。C#是一种面向对象的语言,将其转换为C将非常困难,即使我得到一百万美元,我也不会花时间去做这件事。不过,您可以编写一个使用C库的托管C#应用程序。为什么你不能这么做呢?我刚看了pinvoke和.NET的互操作能力,看起来很酷,以前从未使用过。看起来是使用我的C库最方便的方法。非常感谢。