2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

用 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:092278
用户头像

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

关注

评论

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

2020-09-03-第十三周学习总结

路易斯李李李

商业通识 : 商业为什么能进步?

Walker

学习 得到 个人成长 商业

LeetCode题解:239. 滑动窗口最大值,单调队列,JavaScript,详细注释

Lee Chen

大前端 LeetCode

给DevOps加点料——融入安全性的DevSecOps

禅道项目管理

DevOps 运维 测试 开发 安全性

拥抱K8S系列-05-基于docker部署面临的问题

张无忌

Docker 运维

深入理解JVM垃圾回收机制 - GC Roots枚举

Skye

GC Roots枚举 安全点 安全区域 OopMap

oeasy教您玩转linux010206 蒸汽机车 sl

o

有奖征文重磅来袭,来!一起玩把大的!

有只小耳朵

用函数式写法精简Java代码的一个例子

Sean

Java 函数式编程

从湖南“软硬兼施”,管窥三湘水畔的智能浪潮

脑极体

架构师训练营第十三周总结

张明森

程序的机器级表示-数组的分配和访问

引花眠

计算机基础

3. 站在使用层面,Bean Validation这些标准接口你需要烂熟于胸

YourBatman

Hibernate-Validator Bean Validation 数据校验

你问我答:容器平台改造后的安全是如何解决的?

BoCloud博云

云计算 容器 微服务 PaaS 博云

甲方日常 8

句子

工作 随笔杂谈 日常

给大家介绍下,这是我的流程图软件 —— draw.io

程序员小航

工具 流程图 draw.io drawio-desktop 画图软件

一点思考|工作十几年了,竟从未用过do-while!

王磊

Java

翻转链表,机器学习视觉训练,对数据的人工标注,使信息丢失,John 易筋 ARTS 打卡 Week 16

John(易筋)

大数据 学习 ARTS 打卡计划 翻转链表 Google论文评判人工预处理

[翻译] Go Concurrency Patterns: Pipelines and cancellation[Go并发模式]

卓丁

channel pipeline

ARTS打卡 第15周

引花眠

微服务 ARTS 打卡计划

Spring 5 中文解析测试篇-Spring测试

青年IT男

Spring5 JUnit

握草,你竟然在代码里下毒!

小傅哥

Java 程序员 小傅哥 bug 有毒代码

Golang Package sync 透析

卓丁

sync Go 语言

阿里巴巴发布国内首个公益区块链标准 用技术让公益公开透明

CECBC

区块链 公益

不支持原子性的 Redis 事务也叫事务吗?

大头星

Java redis 事务

实战解读丨Linux下实现高并发socket最大连接数的配置方法

华为云开发者联盟

Linux TCP socket 高并发

透彻理解AQS源码分析系列之AQS基础二

InfoQ_d2212957090d

Go: gops如何与Go运行时交互?

陈思敏捷

gops Go 语言

学习 Java,有什么书籍推荐?学习的方法和过程是怎样的?

沉默王二

Java 学习 程序员 书单

ARTS Week15

时之虫

ARTS 打卡计划

读后感之《任正非:以客户为中心》

王新涵

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