每种Mono组件都以哪种语言开发?

时间:2009-10-01 11:29:48

标签: .net programming-languages mono

According to Wikipedia,Mono有三个主要组成部分:

  • 核心组件
  • Mono / Linux / GNOME开发堆栈
  • Microsoft兼容性堆栈

我想知道每个组件的语言或技术是在哪里开发的。

修改
我知道项目的某些部分是用C#开发的,尤其是旧的,但我想知道整个项目是用C#开发的,还是不用。

6 个答案:

答案 0 :(得分:9)

runtime本身是用C语言编写的。不同的class librariestools以及C# compiler完全是用C#编写的。

唯一的例外是VB compilerVB libraries,这些都是用VB编写的。

答案 1 :(得分:3)

您可以查看各种语言here的代码行细分。

必须与低级操作系统函数通信的核心本身大多用C语言编写,而类库大多用C#编写。

答案 2 :(得分:2)

以下是Mono Subversion repository的链接。来自The Compiling Mono From SVN

  

这假设您有一个有效的单声道安装,并且有一个名为'mcs'的C#编译器,以及一个名为'mono'的相应IL运行时。

所以我猜它是用C#实现的

答案 3 :(得分:0)

这是一个有根据的猜测,但vm,jit和所有运行时的东西很可能用c或c ++编写。像gnome api,语言库等接口的开发堆栈很可能用c sharp编写。

Microsoft兼容性堆栈很可能是用c sharp实现的,它使用了与本机linux库的简洁接口。

但这是猜测。你可以自己检查一下。

答案 4 :(得分:-2)

mono是开源的 - 你为什么不看源?见http://www.go-mono.com/mono-downloads/

编辑:不那么粗鲁

mono所做的第一件事就是构建一个自编译的C#编译器。我认为他们仍然会写出大部分内容或直接后代。

答案 5 :(得分:-2)

Mono编译器(mcs / gmcs)是用C ++编写的。

类库(System,System.Web等)是用C#编写的。

在C#中无法完成的一些低级功能(例如:P / Invoke,本机窗口)也是用C ++编写的。