写点什么

Mono C#编译器进入一个新的里程碑

  • 2009-12-12
  • 本文字数:707 字

    阅读完需:约 2 分钟

Marek Safar 在其博客上宣布, Mono C#编译器已经完整支持 C# 4.0 的特性。这标志着 Mono C#编译器进入一个新的里程碑,同时也为 Mono 支持.NET 4.0 的新特性打好了基础。

Mono 的 C#编译器分为 4 个:

  • mcs:针对 Mono 1.1 运行时的编译器
  • gmcs:针对 Mono 2.0 运行时的编译器
  • smcs:针对 Mono 2.1 运行时的编译器,用于编译 Moonlight 应用程序
  • dmcs:针对 Mono 2.8 运行时和.NET 4.0 的编译器

而这个最新的 Mono C#编译器完整支持如下 C# 4.0 的新特性:

由于 Mono 本身的限制,以及 COM 在 Mono 中很少用到,所以这个编译器并没有提供对 COM 互操作性的支持。

Marek Safar 在这篇博客中,还详细讲解了他们如何在 Mono C#编译器里实现这些特性。

实现协变和逆变非常简单……需要一点技巧和比较有挑战的地方是升级类型推断的处理方式 可选参数由于在 VB 中已经有同样实现,所以实现起来也很简单

难点在于实现命名参数。这个特性看似简单,却和 C#的很多方面关联,所以我们必须小心处理

动态绑定也花费了大量的精力,我们把动态绑定的编译过程分作了几个阶段来处理:静态编译、加载分解和调用 DLR

Mono 的 C#编译器团队已经使用这个编译器成功编译了他们很多应用程序,编译好的应用程序可在 Mono 的最新版本和.NET 4.0 上运行。关于动态绑定,Marek 也提到由于其中执行了大量的装箱和开箱操作,他建议在使用动态绑定之前要仔细斟酌。

关于 Mono C#编译器的效能问题,博客园网友在这篇博客《浅谈Microsoft C#编译器和Mono C#编译器》中进行了简单比较,值得大家借鉴。

另外,Mono 也在最近发布了 2.3.4 版,这仅仅是一个修正错误的版本。

2009-12-12 22:533136
用户头像

发布了 254 篇内容, 共 49.2 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

从一个模糊词查询需求的处理方案讨论到一种极速匹配方案的实现

行如风

模糊匹配 双数组trie树 ahocorasick ac自动机 黑名单过滤

直播中不可缺少的一环-rtmp直播推流

anyRTC开发者

音视频 WebRTC CDN RTC RTMP

移动生态盘点与HMS生态解析

华章IT

华为 Android Studio 移动开发 HMS

为什么说rollup比webpack更适合打包库

fengxianqi

大前端 Rollup webpack

应急指挥中心平台搭建,移动可视化指挥解决方案

t13823115967

可视化数据分析搭建 应急指挥

人工智能不过尔尔,基于Python3深度学习库Keras/TensorFlow打造属于自己的聊天机器人(ChatRobot)

刘悦的技术博客

人工智能 tensorflow chatbot 聊天机器人 keras

重磅|中国PostgreSQL分会与腾讯云战略合作协议签订

PostgreSQLChina

数据库 postgresql 软件 开源社区

如何基于 SDK 快速开发一款IoT App 控制智能灯(iOS 版)

IoT云工坊

ios App 物联网 IoT sdk

没能进入大数据领域

escray

面试 面经

智慧仓储管理系统,是否能解决购物狂欢节后新一轮爆仓危机?

一只数据鲸鱼

物联网 数据可视化 智慧物流 智慧仓储

盘点 2020 | 10 天开发前台系统技术系列

老魚

CSS 大前端 全栈 js 盘点2020

生产环境全链路压测建设历程 21:某快递 A 股上市公司的生产压测案例之基于测试流量的混沌工程(故障演练)

数列科技杨德华

全链路压测 七日更

从MongoID的生成讨论分布式唯一ID生成方案

行如风

雪花算法 分布式ID 全局唯一ID 流星算法

一线大厂开源三份JDK+Spring+Mybatis源码笔记

Java架构追梦

Java spring 源码 jdk mybatis

扒开 SqlSession 的外衣

田维常

mybatis

如何通过 Serverless 轻松识别验证码?

Serverless Devs

人工智能 Serverless 云原生

字节二面跪拜“Redis源码”后,面试官直接推荐这份笔记!真是NB

比伯

Java 编程 架构 面试 程序人生

为什么要TDD(测试驱动开发)

sherlockq

敏捷开发 TDD 极限编程

什么是浮点数?

Kaito

计算机基础 浮点数

英特尔赵宏:从硬件创新到平台突破,PC的未来非常值得期待

新闻科技资讯

英特尔力邀150家产业大咖推动Evo严苛认证,打造PC界的奥斯卡

新闻科技资讯

星域母子币系统软件开发|星域母子币APP开发

系统开发

抢先体验全新升级版Eternal Wallet!

Geek_c610c0

数字货币 数字货币钱包开发

高空立体云防控系统搭建,智能化平安小区建设方案

t13823115967

平安小区 智慧平安社区建设

anonymous匿名者场外交易系统APP软件开发

系统开发

深入浅出 ZooKeeper

vivo互联网技术

zookeeper 分布式 ZAB

快速接入 | 从 0 到 1 构建语音聊天室

拍乐云Pano

音视频 RTC 实时语音 语音聊天室 语聊房

九环智能合约开发

V19927655815

APP开发

云视频技术领军人赵加雨:如何提升在线教育课堂互动体验

拍乐云Pano

音视频 在线教育 RTC 互动课堂 白板

Mono C#编译器进入一个新的里程碑_.NET_朱永光_InfoQ精选文章