The ad-hoc use of unions to encode disjoint sum types in C programs and the inability of C’s type system to check the safe use of these unions is a long standing source of subtle...
By determining, statically, where the structure of a program requires sets of variables to share a common tation, we can identify abstract data types, detect ion violations, find ...
C programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency wit...
We study the type checking and type inference problems for intuitionistic linear logic: given a System F typed λ-term, (i) for an alleged linear logic type, determine whether the...
Program understanding tools manipulate program represensuch as abstract syntax trees, control-flow graphs, or data-flow graphs. This paper deals with the use of visitor combinat...