Important
Ce package est en hibernation: inactif, bien que je puisse le revoir à l'avenir.
En attendant, consultez Flowr pour vos besoins d'analyse de code R.
RSTATIC est un package qui facilite l'analyse du code R. Ce sont les principes directeurs:
La sémantique de référence facilite le code. Vous voulez faire des transformations de code majeures sans perdre la trace d'une expression importante? Les références que vous avez couvertes. Les objets de code de RSTATIC ont une sémantique de référence au moyen de R6 .
La répartition de la méthode sur les objets de code rend les algorithmes de descente récursifs plus faciles à comprendre. Ceci est plus efficace si le code est organisé en classes significatives et extensibles. La hiérarchie de classe de RSTATIC est organisée selon la sémantique de R.
L'accès au parent d'un nœud dans une arborescence de syntaxe abstrait est utile pour certaines analyses. RSTATIC garde de manière transparente la trace des parents de chaque nœud.
L'accès aux éléments de code par son nom est plus clair que par index. Nous préférons écrire my_call$args[[2]] pour accéder au deuxième argument d'un appel que my_call[[3]] . RSTATIC utilise un ensemble cohérent de noms pour les éléments de code.
Les arbres de syntaxe abstraits ne sont pas idéaux pour les analyses qui ont besoin d'informations sur le contrôle et le flux de données. RSTATIC peut convertir le code en un graphique de flux de contrôle sous forme statique unique (SSA). Le formulaire SSA expose les flux de données en donnant à chaque définition de la variable un nom unique.
Les codetools et les packages de codes utilisent des objets en langage intégrés de R pour extraire des informations similaires à partir du code. Ils peuvent être plus appropriés pour les analyses rapides et ad hoc.
RSTATIC est instable et sous développement actif, il n'est donc pas encore disponible sur CRAN. Pour installer, ouvrez une invite R et exécutez:
install.packages( " devtools " )
devtools :: install_github( " nick-ulle/rstatic " )Le package comprend une vignette qui sert d'introduction. Pour accéder à la vignette, ouvrez une invite R et exécutez:
library( rstatic )
vignette( " rstatic-intro " )Voir la liste des tâches.