Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kraks/dataflow-analysis
Racket Implementation of Data-flow Analyses
https://github.com/kraks/dataflow-analysis
dataflow-analysis racket static-analysis
Last synced: about 2 months ago
JSON representation
Racket Implementation of Data-flow Analyses
- Host: GitHub
- URL: https://github.com/kraks/dataflow-analysis
- Owner: Kraks
- Created: 2016-11-03T06:15:07.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-06-27T03:22:25.000Z (over 7 years ago)
- Last Synced: 2024-11-06T08:44:06.673Z (3 months ago)
- Topics: dataflow-analysis, racket, static-analysis
- Language: Racket
- Homepage:
- Size: 26.4 KB
- Stars: 2
- Watchers: 3
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Dataflow Analysis
A Racket implementation of traditional dataflow analyses for an imperative language TIP.
### Target: the TIP Language
These analyses are targeted for S-Expression based TIP language. The syntax is largely extracted from the great lecture notes _Static Program Analysis_[1].
**An Example**
```
{while {> 5 x}
{{if {== x 3}
{:= x 4}
{:= x 5}}
{:= x {- x 1}}}}
```### File Descriptions
* `parser.rkt` functions that parse s-exp based TIP to abstract syntax tree (AST).
* `ast.rkt` the abstract syntax tree structure definitions.
* `cfg.rkt` contrlo flow graph (CFG) structure definitions; CFG is transformed from AST.
* `dfa.rkt` chaotic iteration framework and algorithm, which operates on CFG.
* `reaching-def.rkt` reaching definition analysis.
* `very-busy.rkt` very busy expressions analysis.
* `available-expr.rkt` available expressions analysis.
* `live-var.rkt` live variables analysis.See test cases in each files.
### TODO
* SSA-based analysis
* Pointer analysis### References
[1] [Static Program Analysis](https://cs.au.dk/~amoeller/spa/)