.NET 编译器平台 "Roslyn"
2017-09-23

微软在 //build/ 2014 上成立.NET基金会,Anders Hejlsberg 亲自宣布 .NET 编译平台 Roslyn 开源 https://github.com/dotnet/roslyn 。Anders Hejlsberg 是 Turbo Pascal 编译器的主要作者,号称 Delphi 和 C# 之父,同时他也是 .NET 创立者。这算是整个 .NET 平台开源的开端,Roslyn 编译器平台的开源主要有三个方向:

  • 编译器最重要的工作之一,就是将开发者写的程序代码转换成执行平台的代码(native code, byte code, IL, LLVM 等),所以编译器与程序代码的语法息息相关,编译器开源后,开发人员与社区不只是可以对编译器本身的功能提出意见,还可以对于程序语言的功能提出意见或改进,像是接下来要发展的 C#  的语法,就有许多部份是来自于 Roslyn 项目的这个讨论页Discussions under C# Language Design),这意味着你与我都有机会对C#(或 Visual Basic.NET)提出意见,不再只是 Microsoft 公司内产品单位独自打造而已,让新版的程序语言规格可以更符合社区期待。

  • 除了转换程序代码之外,Roslyn 还包含程序代码分析、语法提示、程序代码重构等等功能,功能强大的 Visual Studio 许多功能都是基于这些功能来开发,在 Roslyn 开源之后,任何人都有机会将这些功能移植到其它编辑器、程序代码工具等,开发人员有更多平台或工具的选择。


 Sublime 中基于 Roslyn 技术做出 C# 的语法提示。来源:https://github.com/ligershark/Kulture

  •  Microsoft 开源 .NET 相关技术之前,原本就有一个 Mono 项目,根据 .NETC# 的规格自行实现了开发及执行环境,也可以将 .NET  C# 相关技术带到非 Windows 的平台上,像知名的游戏引擎 Unity3DXamarin所开发的跨平台开发技术(将 C#/.NET 的程序代码编译至 Mac/iOS/Android 平台上)等都是使用 Mono 来实现的,在 Roslyn 开源后,Mono 计划也可以与之相辅相成,互相运用彼此优异的部份,同时也可以贡献给这些基于Mono 所开发的项目。

看知乎上大家是如何评论 Roslyn 开源的:.Net 新一代编译器 Roslyn 会带来怎样的影响?