Bandera: extracting finite-state models from Java source code
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints