25

Roslyn プロジェクトの CaaS (Compiler As A Service) とは何ですか?

Roslyn 機能を使用すると、現在の C# 4.0 コンパイラよりも C# アプリケーションのパフォーマンスがどのように向上しますか?

Roslyn-CTP の既知の制限/問題は何ですか?

4

4 に答える 4

18

Roslyn に関して Compiler as a Service (CaaS) とは正確には何を意味するのでしょうか? Anders Hejlsberg が説明しているビデオを見ることができます(Roslyn についての話は 35 分から始まります)。基本的に、古い C# コンパイラは "ブラック ボックス" です。ソース コードが入ってくると、コンパイルされたアセンブリが出てきます。Roslyn を使用すると、そのボックス内にアクセスできます。つまり、一部のコードに関する構文情報と意味情報を取得し、それを変更して、コンパイラーに戻してさらに処理することができます。これを使用して、コード分析、リファクタリング、コード生成などを行うことができます。

Roslyn フォーラムには、現在の CTP に実装されていない機能の長いリストがあります。

パフォーマンスに関しては、Roslyn の目標には含まれていないと思います。また、JIT コンパイラは、C#/VB コンパイラよりもパフォーマンスの最適化にとって重要です。Roslyn は、JIT コンパイラではなく、C#/VB コンパイラを置き換えます。

于 2012-01-19T11:28:19.893 に答える
9

Roslyn に関する Compiler as a Service (CaaS) は、コンパイル中にコンパイラによって構築された構文モデルとセマンティック モデルを調べることができるパブリック API を使用して、コンパイル プロセスが分割されることを意味します。Roslyn C# および VB コンパイラは既存のコンパイラを完全に置き換えるため、現在のコンパイラと同じ方法で引き続き使用できます (テキスト ファイルを .net アセンブリに変換する個別の実行可能ファイルとして)。より深い、またはさまざまな種類のコード分析を行うツールを構築するのに役立つ API のライブラリです。

Roslyn は、既存のコンパイラを使用する場合に比べて特定のパフォーマンス上の利点を提供するわけではありません。Roslyn がリリースされると、それらはまったく同じになるからです。ただし、roslyn を使用して、ソース コードを改善する特殊なコード リファクタリングを構築することは可能です。

于 2012-01-23T22:34:12.167 に答える
6

Roslyn の利点の 1 つは、アプリケーションでスクリプト インターフェイスが必要な場合です。Roslyn を使用すると、スクリプトを C# ソース コードとして直接コンパイルし、アプリケーションのソースと同じプログラミングが可能で、それを直接使用できます。

于 2012-01-19T06:54:53.663 に答える
3

アスペクト指向プログラミングをより簡単に実装できる Roslyn に期待しています。AOP を使用すると、共通の「ポリシー」を記述して、コード全体に適用するのではなく、コード全体に適用できます。Roslyn コンパイラを使用すると、コンパイル時にこれらのポリシーをコード全体に織り込み、ビジネス コードを汚染するための横断的な懸念を維持できます。いくつかのユースケースが必要な場合は、PostSharp がユースケースとしてリストしている内容を確認してください

http://www.sharpcrafters.com/

  • ロギング ポリシー
  • 例外処理ポリシー
  • 自動スレッド同期 (UI スレッドで正しいものが呼び出されるようにする)
  • 関数呼び出しの自動監査
  • 自動プロパティの INotifyPropertyChanged 実装を自動的に生成する
  • もっと
于 2012-08-11T18:47:04.470 に答える