Skip to content
This repository has been archived by the owner on Jun 4, 2019. It is now read-only.

Internals

Tej Chajed edited this page Nov 21, 2017 · 19 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 languages. 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, also written in OCaml, to perform some complex refactoring and to find bugs. In fact one of the latest programming languages from Microsoft, F#, is directly inspired by 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: