[robocheck-dev] Current Status

Faur Andrei da3drus at gmail.com
Mon Jul 20 17:32:05 EEST 2009


Salut,

> Researching:
> - AST (Andrei ai mai găsit vreun utilitar care să facă treaba?)

- sparse : documentatie 0, trebuie sapat mult prin cele 30k linii
de cod pentru a vedea exact cum se leaga lucrurile

- Frama-C : foloseste CIL[1] , care la randul sau se bazeaza pe
scrierea de module in Ocaml pentru a il lega de alte aplicatii

- ANTLR : am gasit doua gramatici de C deja scrise. Una din ele
a fost scrisa in 98 pentru ANTLRv2 si nu este compatibila cu ultima
versiune de ANTLR (asa ca ar trebui portata). A doua versiune
este mai recenta, e compatibila, insa nu genereaza un AST, ci
doar un parse tree. Cea mai buna mi se pare prima doarece stie
sa parseze si extensii de gcc.

- Clang[2] : inca nu am apucat sa ma uit, am inteles ca are o librarie
numita libast care s-ar putea sa fie exact ce ne trebuie

Primele doua pica din start, nu cred ca reusesc sa produc ceva in
timp util folosindu-le. Mai ramane sa ma uit la Clang. ANTLR-ul
pare a fi cea mai buna solutie, insa e de munca si acolo.

Remind me again de ce ne trebuie AST? Ce tipuri de erori trebuie
prinse incat sa fie nevoie de un AST propriu? Este posibil ca acele
tipuri de erori sa nu aiba nevoie de un AST complet, ci doar de unul
care contine informatia relevanta pentru acele erori. Spre exemplu,
daca am vrea sa verificam lungimea functiilor, atunci nu ar fi necesara
parsarea corpului acelor functii, eliminand astfel o intreaga subramura
a arborelui, making life easier.

AndreiF

[1] http://manju.cs.berkeley.edu/cil/
[2] http://clang.llvm.org/


More information about the robocheck-dev mailing list