天天看點

用Roslyn項目分析代碼

微軟這個月在Redmond召開了Lang.NEXT大會,會上有一個演講,示範了Roslyn項目這個代碼分析工具。Dustin Campbell的演講“更深入了解Roslyn項目”對它做了介紹,并以一個示例項目代碼的建構作為結束。

Roslyn架構并沒有打算用來作為可定制的編譯器,它的目的是将C#和Visual Basic的使用盡可能最大化。這兩個語言的編譯器都已經全部重新編寫,這樣Roslyn的C#編譯器用C#開發,Roslyn的VB編譯器用VB開發。 Campbell發現:這讓原來的編輯器中很多不合理的地方和bug都有機會修正。

  • 不可變:對象不能改變,要想改變,隻能在原來版本上建立新對象。
  • 完整:源代碼重新表示,包括空格、注釋、錯誤等等。
  • 彈性:用容錯來處理錯誤。比如:失敗的代碼上幾乎總是會做到完成語句,這樣讓分析器必須可以處理。
  • 高效:項目在建構快照上展現了效率,而且能夠增量分析代碼。

chaunceyhao

繼續閱讀