Python 还能承担下一个时代的发展重任吗?Mojo 语言的横空出世对 AI 研发生态有什么影响? 了解详情
写点什么

书评:C# Annotated Standard

  • 2008-11-05
  • 本文字数:680 字

    阅读完需:约 2 分钟

当微软携手 HP 与 Intel 于 2000 年向 ECMA 提交 C# Standard 时,人们认为这是对传统的一次冲击。那时微软开发的所有编程语言都由其自己独自掌控。虽然微软提供了文档,但一般的开发人员不可能真正深入到语言的底层,更不用说编写自己的编译器了。

标准的一个副作用就是它看起来像是一个人写的。标准通常会说编译器可以做某些事情但不强制这样去做。在概念层次上这没什么问题,但对于我们理解微软的 C#编译器实际是怎么做的来说没有任何帮助。

这就是 Jagger、Perry 及 Sestoft 编写的书所发挥作用的地方。他们采取了 C# 2.0 标准并填补了空白。这本书充满了微软是如何实现其 C#编译器的细节信息。它还包含了 Mono 的 C#编译器的信息,虽然这可能有点过时了。

这本书真正的价值在于它对边缘情况的一些讨论。例如,标准中有一章谈到了 FGAB 问题。比如 F(G<A, B>(7)) 应该被解释成 F 具有参数 G<A, B> 和 7 还是 (G<A) 和 (B>7) 呢。在 C# 2.0 中这不算什么大问题,但由于我们经常把函数传递到其他函数中,因此它现在变得越来越重要了。作者主要通过两种方式来阐述标准:澄清非常深奥的文字以及描述编译器是如何对其进行处理的(在这种情况下微软和 Mono 的编译器都无法成功地对其进行解析)。

如果对这本书有什么抱怨的话,那肯定是抱怨太枯燥、技术性太强了。虽然他们确实谈到了关于语言是如何形成的大量背景信息,但却没有采取 Framework Design Guidelines 中所用的那种浅显的话语。由 Jon Jagger、Nigel Perry 及 Peter Sestoft 所著的 Annotated C# Standard 现已出版,你还可以通过 Google Book Search 来找到它。

查看英文原文: Review: C# Annotated Standard

2008-11-05 00:33354
用户头像

发布了 88 篇内容, 共 254.3 次阅读, 收获喜欢 6 次。

关注

评论

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

JAVA面向对象(八)--封装

加百利

Java 后端 6月日更

[译] R8 优化: 字符串操作

Antway

6月日更

Mysql是如何选择主键的

架构精进之路

MySQL 6月日更 主键

利用 iOS 14 Vision 的手势估测功能 实作无接触即可滑动的 Tinder App

iOSer

ios ios开发 iOS 14 Vision Tinder App

34岁安卓开发大叔感慨,帮你突破瓶颈

欢喜学安卓

android 程序员 面试 移动开发

Go语言实现的23种设计模式之结构型模式

华为云开发者联盟

设计模式 组合模式 Go 语言 结构型模式 适配器模式

一篇文章告诉你 GIS 存储如何选?

焱融科技

技术 容器 分布式 云原生 高性能

百度一款前端图片合成工具库MI开源啦!

百度开发者中心

百度 开源 图片

并发王者课-铂金4:令行禁止-为何说信号量是线程间的同步利器

MetaThoughts

Java 多线程 并发

从工单到需求管理,企业如何快速响应客户反馈?

万事ONES

项目管理 需求管理 需求 ONES

云算力挖矿系统APP模式开发方案

ZGC 新特性

meacial

Java ZGC JVM 软件开发

年份白酒推荐 商务聚会我选唐庄五星酒

Geek_50a546

Redis套路,一网打尽

Coder的技术之路

redis 缓存 面试

34岁Android开发大叔感慨,已拿offer附真题解析

欢喜学安卓

android 程序员 面试 移动开发

chia奇亚算力挖矿分发APP系统开发

薇電13242772558

区块链

详解Apache Dubbo的SPI实现机制

vivo互联网技术

dubbo 服务器 spi

项目管理100问 | 为什么你的项目进度总是在延期?

万事ONES

项目管理 项目排期 ONES 项目开发

8种图数据库对 NULL 属性值支持情况

华为云开发者联盟

图数据库 null 逻辑 语义网 图模型

曝光一个网站,我周末就耗在上面了。

why技术

Java Arthas

做项目管理,如何对复杂的项目工作进行分解

万事ONES

需求管理 ONES 项目管理工具

并发王者课-铂金3:一劳永逸-如何理解锁的多次可重入问题

MetaThoughts

Java 多线程 并发

英特尔谢晓清:开源是软件发展趋势

E科讯

唐庄酒业的酒好喝吗?纯粮酿造好味道

Geek_50a546

智能边缘时代 英特尔携手极视角赋能开发者 助推AIoT发展

E科讯

掌握鸿蒙轻内核静态内存的使用,从源码分析开始

华为云开发者联盟

鸿蒙 操作系统 内存 静态内存 鸿蒙轻内核

618大促又来了?3天2次大事故,不堪回首的加班经历……

TakinTalks稳定性社区

压力测试 全链路压测 大促 系统高可用 生产环境全链路压测

react源码解析16.concurrent模式

全栈潇晨

react.js

索信达控股:解析索信达模型管理利器

索信达控股

大数据 模型 风险管理 智能 数据管理平台

联邦学习这件小事(二)

趣链科技

区块链 隐私保护 加密技术 联邦计算

我试了试用 SQL查 Linux日志,好用到飞起

程序员小富

Java Linux 日志

  • 扫码加入 InfoQ 开发者交流群
书评:C# Annotated Standard_.NET_Jonathan Allen_InfoQ精选文章