写点什么

用 Roslyn 项目分析代码

  • 2012-04-27
  • 本文字数:620 字

    阅读完需:约 2 分钟

微软这个月在 Redmond 召开了 Lang.NEXT 大会,会上有一个演讲,演示了 Roslyn 项目这个代码分析工具。Dustin Campbell 的演讲“更深入了解 Roslyn 项目”对它做了介绍,并以一个示例项目代码的构建作为结束。

Roslyn 框架并没有打算用来作为可定制的编译器,它的目的是将 C#和 Visual Basic 的使用尽可能最大化。这两个语言的编译器都已经全部重新编写,这样 Roslyn 的 C#编译器用 C#开发,Roslyn 的 VB 编译器用 VB 开发。Campbell 发现:这让原来的编辑器中很多不合理的地方和 bug 都有机会修正。

Roslyn 的设计特性包括:

  • 不可变:对象不能改变,要想改变,只能在原来版本上创建新对象。
  • 完整:源代码重新表示,包括空格、注释、错误等等。
  • 弹性:用容错来处理错误。比如:失败的代码上几乎总是会做到完成语句,这样让分析器必须可以处理。
  • 高效:项目在构建快照上体现了效率,而且能够增量分析代码。

当 Roslyn 环境打开后,存在两个活跃的工作空间实例。第一个是传统工作空间,存留现在加载的 VS 解决方案。另一个实例是交互窗口(REPL)。这种分离有助于语句完成,并让 IntelliSense 在开发环境中的代码提示更为正确。

Campbell 指出:Roslyn 在 10 月份会以 Beta 版本提供,发布版本代码(1.0)不会与 Visual Studio 11 一同交付。实际上,它会作为未来 VS 的一部分发布。尽管 Campbell 没有明确说明:考虑到 Beta 版本支持 VS2010,看来微软会将其独立于正式的 VS 发布进行部署。

查看英文原文: Code Analysis with Project Roslyn

2012-04-27 11:092263
用户头像

发布了 479 篇内容, 共 179.6 次阅读, 收获喜欢 53 次。

关注

评论

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

wallys/PD-60 802.3AT Input Output 802.3AT/AT 85% Efficiency 10/100/1000M GE Surge Protection

wallys-wifi6

MT7915/MT7975/IPQ6000

创建企业wiki,你需要知道这些

Geek_da0866

AIRIOT答疑第5期|如何使用低代码业务流引擎?

AIRIOT

物联网

图像处理解决方案 veImageX 技术演进之路

字节跳动视频云技术团队

计算机视觉 图像处理 图像压缩 图像增强算法

编写一个具有搜索提示的搜索框

空城机

JavaScript 7月月更

硕果累累,再获认可!「报告、标准、评测」洞见科技走在前沿

洞见科技

隐私计算

乘势而上,OceanBase推动数字支付精益增长

OceanBase 数据库

构建知识库时,如何避免最常见的几个错误?

Geek_da0866

快速支持客户知识库的核心优势是什么?

Geek_da0866

区块链开发:如何从 Solidity 智能合约中发送和取款

devpoint

区块链 Solidity 7月月更

小海豚“变身”全新智能调度引擎,深入浅出在DDS的实践开发应用

白鲸开源

大数据 工作流调度 调度任务 分布式调度引擎 大数据调度

如何编写您的常见问题页面?

Geek_da0866

有数大数据基础平台之智能运维平台EasyEagle介绍:集群队列篇

网易数帆

大数据 数据智能 数据基础设施

Flink数据源拆解分析(WikipediaEditsSource)

程序员欣宸

Java flink 7月月更

AWS使用EC2降低DeepRacer的训练成本DeepRacer-for-cloud的实践操作

指剑

AWS Amazon EC2 deepracer

网络安全之ARP欺骗防护

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

离开大厂,一周965+远程工作报告

无人之路

大厂 内卷 955 远程 WLB

Dao智能合约Dapp系统开发技术

薇電13242772558

智能合约 dapp DAO

时代潮头,华为将风帆对准数字金融的风与海

脑极体

千亿营收之后,阿里云生态有了新打法

B Impact

建立的知识库的7个步骤

Geek_da0866

如何优雅的改变this指向

bo

JavaScript 前端 7月月更

为什么知识库很重要?这是我听过最好的答案

Geek_da0866

百度搜索打击盗版网文站点:互联网内容侵权现象为何屡禁不止

石头IT视角

二进制SCA指纹提取黑科技:Go语言逆向技术

华为云开发者联盟

云计算 安全 后端

华为云AI院长峰会在黔举行 推动人工智能产学研创新发展

极客天地

NFTScan 与 Atem Network 在 NFT 数据领域达成战略合作

NFT Research

NFT NFTScan

如何为您的企业设置内部Wiki?

Geek_da0866

【愚公系列】2022年07月 Java教学课程 07-变量和数据类型

愚公搬代码

7月月更

Gpushare.com | 如何使用TensorBoardX可视化工具?

恒源云

深度学习 PyTorch tensorboard GPU算力

用Roslyn项目分析代码_.NET_Jeff Martin_InfoQ精选文章