I am currently studying "Introduction to Static Analysis" by Xavier Rival and Kwangyeuk Yi. In the first parts of the book, they focus on analysis by abstract interpretation of a language for geometry in
To build the project, you can run :
makeand then to install it, you can run :
make installYou will then have installed the binaries interpreter and analyzer which provides both the interpretation for the language and its analysis.
The parsed BNF grammar of the language is as follows:
program ::=
init ';' stmt_list EOF
;
init ::=
'init' '(' set '×' set ')'
;
set ::=
'[' INT ',' INT ']'
;
stmt_list ::=
stmt (';' stmt)*
;
stmt ::=
operation
| '{' stmt_list '}' 'or' '{' stmt_list '}'
| 'iter' '{' stmt_list '}'
;
operation ::=
'translation' '(' INT ',' INT ')'
| 'rotation' '(' INT ',' INT ',' INT ')'
;