All Projects → nick-ulle → rstatic

nick-ulle / rstatic

Licence: other
An R package for static analysis of R code.

Programming Languages

r
7636 projects

Projects that are alternatives of or similar to rstatic

Pyt
A Static Analysis Tool for Detecting Security Vulnerabilities in Python Web Applications
Stars: ✭ 2,061 (+6340.63%)
Mutual labels:  static-analysis, control-flow-graph
analysis-net
Static analysis framework for .NET programs.
Stars: ✭ 19 (-40.62%)
Mutual labels:  static-analysis, static-single-assignment
Scalpel
Scalpel: The Python Static Analysis Framework
Stars: ✭ 176 (+450%)
Mutual labels:  static-analysis
jitana
A graph-based static-dynamic hybrid DEX code analysis tool
Stars: ✭ 35 (+9.38%)
Mutual labels:  static-analysis
goreporter
A Golang tool that does static analysis, unit testing, code review and generate code quality report.
Stars: ✭ 3,019 (+9334.38%)
Mutual labels:  static-analysis
gqlanalysis
gqlanalysis makes easy to develop static analysis tools for GraphQL in Go.
Stars: ✭ 36 (+12.5%)
Mutual labels:  static-analysis
klara
Automatic test case generation for python and static analysis library
Stars: ✭ 250 (+681.25%)
Mutual labels:  static-analysis
Fortran-Tools
Fortran compilers, preprocessors, static analyzers, transpilers, IDEs, build systems, etc.
Stars: ✭ 31 (-3.12%)
Mutual labels:  static-analysis
sonarlint4netbeans
SonarLint integration for Apache Netbeans
Stars: ✭ 23 (-28.12%)
Mutual labels:  static-analysis
logifix
Fixing static analysis violations in Java source code using Datalog
Stars: ✭ 17 (-46.87%)
Mutual labels:  static-analysis
mllint
`mllint` is a command-line utility to evaluate the technical quality of Python Machine Learning (ML) projects by means of static analysis of the project's repository.
Stars: ✭ 67 (+109.38%)
Mutual labels:  static-analysis
save-cloud
Cluster-based cloud mechanism for running SAVE framework
Stars: ✭ 30 (-6.25%)
Mutual labels:  static-analysis
nestif
Detect deeply nested if statements in Go source code
Stars: ✭ 30 (-6.25%)
Mutual labels:  static-analysis
phpstan-nette
Nette Framework class reflection extension for PHPStan & framework-specific rules
Stars: ✭ 87 (+171.88%)
Mutual labels:  static-analysis
sonar-css-plugin
SonarQube CSS / SCSS / Less Analyzer
Stars: ✭ 46 (+43.75%)
Mutual labels:  static-analysis
sonar-scala
A free and open-source SonarQube plugin for static code analysis of Scala projects.
Stars: ✭ 113 (+253.13%)
Mutual labels:  static-analysis
flextool
C++ compile-time programming (serialization, reflection, code modification, enum to string, better enum, enum to json, extend or parse language, etc.)
Stars: ✭ 32 (+0%)
Mutual labels:  static-analysis
vim-phpstan
A Vim plugin for PHPStan - https://github.com/phpstan/phpstan. It calls `phpstan` to do static analysis of your PHP code and displays the errors in Vim's quickfix list.
Stars: ✭ 26 (-18.75%)
Mutual labels:  static-analysis
phpstan
PHP Static Analysis in Github Actions.
Stars: ✭ 41 (+28.13%)
Mutual labels:  static-analysis
phpstan-webmozart-assert
PHPStan extension for webmozart/assert
Stars: ✭ 132 (+312.5%)
Mutual labels:  static-analysis

rstatic

rstatic is a package that makes it easier to analyze R code. These are the guiding principles:

  • Reference semantics make code easier to transform. Want to make major code transformations without losing track of an important expression? References have you covered. rstatic's code objects have reference semantics by way of R6.

  • Method dispatch on code objects makes recursive descent algorithms easier to understand. This is more effective if code is organized into meaningful, extensible classes. rstatic's class hierarchy is arranged according to the semantics of R.

  • Access to the parent of a node in an abstract syntax tree is useful for some analyses. rstatic transparently keeps track of each node's parents.

  • Access to code elements by name is clearer than by index. We'd rather write my_call$args[[2]] to access a call's second argument than my_call[[3]]. rstatic uses a consistent set of names for code elements.

  • Abstract syntax trees are not ideal for analyses that need control- and data-flow information. rstatic can convert code to a control flow graph in static single assignment (SSA) form. SSA form exposes data flows by giving each variable definition a unique name.

The codetools and CodeDepends packages use R's built-in language objects to extract similar information from code. They may be more appropriate for quick, ad-hoc analyses.

Installation

rstatic is unstable and under active development, so it's not yet available on CRAN. To install, open an R prompt and run:

install.packages("devtools")

devtools::install_github("nick-ulle/rstatic")

Usage

The package includes a vignette that serves as an introduction. To access the vignette, open an R prompt and run:

library(rstatic)
vignette("rstatic-intro")

Known Issues

See the to-do list.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].