This is an implementation of the (simple) While language in Scala---mostly useful for studing principles of program analysis.
Clone the repository and then run:
$ sbt compile test
We will guide the implementation according to the book
Flemming Nielson, Hanne R. Nielson, and Chris Hankin. 2010.
Principles of Program Analysis.
Springer Publishing Company, Incorporated.
- abstract syntax of the While language (Chap. I)
- control-flow graph (Chapter II)
- intraprocedural data-flow analysis (Chapter II)
- interprocedural data-flow analysis (Chapter II)
At this moment the four basic data flow analysis were implemented:
- Available Expressions Analysis
- Reaching Definitions Analysis
- Very Busy Expressions Analysis
- Live Variables Analysis