重要
このパッケージは冬眠:非アクティブですが、将来それを再訪するかもしれません。
それまでの間、Rコード分析のニーズについてはFlowRをチェックしてください。
Rstaticは、Rコードの分析を容易にするパッケージです。これらは指針です:
参照セマンティクスにより、コードが変換されやすくなります。重要な表現を追跡することなく、主要なコード変換をしたいですか?参考文献で説明しましたか。 Rstaticのコードオブジェクトには、 R6を介して参照セマンティクスがあります。
コードオブジェクトへのメソッドディスパッチにより、再帰的な降下アルゴリズムが理解しやすくなります。これは、コードが意味のある拡張可能なクラスに整理されている場合、より効果的です。 Rstaticのクラス階層は、Rのセマンティクスに従って配置されています
抽象的な構文ツリー内のノードの親へのアクセスは、一部の分析に役立ちます。 rstaticは、各ノードの両親を透過的に追跡します。
名前によるコード要素へのアクセスは、インデックスよりも明確です。 my_call$args[[2]]を書き込みmy_call[[3]]よりもコールの2番目の引数にアクセスします。 rstaticは、コード要素の一貫した名前のセットを使用します。
抽象的な構文ツリーは、制御およびデータフロー情報が必要な分析には理想的ではありません。 rstaticは、コードを静的シングル割り当て(SSA)フォームでコントロールフローグラフに変換できます。 SSAフォームは、各変数定義に一意の名前を与えることにより、データフローを公開します。
CodetoolsおよびCodeDependsパッケージは、Rの組み込みの言語オブジェクトを使用して、コードから同様の情報を抽出します。それらは、迅速なアドホック分析により適している場合があります。
rstaticは不安定でアクティブな開発中であるため、Cranではまだ利用できません。インストールするには、Rプロンプトを開いて実行します。
install.packages( " devtools " )
devtools :: install_github( " nick-ulle/rstatic " )パッケージには、紹介として機能するビネットが含まれています。ビネットにアクセスするには、Rプロンプトを開いて実行します。
library( rstatic )
vignette( " rstatic-intro " )To-Doリストを参照してください。