Internals

pad edited this page Feb 12, 2011 · 18 revisions

Internals

On OCaml

OCaml may seem to be a weird choice. It's not a very popular language. Nevertheless in the "static analysis world", it is one of the most popular langage. Researchers in Berkeley and Stanford are using OCaml for performing analysis of C code (e.g. Necula with CIL at Berkeley, Aiken with Saturn at Stanford), some type inferers for Ruby are written in OCaml (DRuby), the Windows Device verifiers (based on work from Microsoft Research by Thomas Ball on SLAM) is written in OCaml, people in the Linux kernel are using the Coccinelle tool to perform some complex refactoring and to find bugs, also written in OCaml. In fact one of the latest programming language of Microsoft, F#, is directly inspired (one could say copy) from OCaml.

OCaml is good for code analysis. Trust me.

Architecture

Overview

Subsystems documentation

Extending pfff

Adding a new language

You can use the code in lang_lisp/ (the simplest language) as a source of inspiration. Then do in order: