Three different algorithms for dataflow analysis of computer programs are presented. Compilers for programming languages that support dynamically allocated data structures, such as C, C++, Fortran 90, Java, and LISP need to make worst-case decisions about the allocation of space for the data structures. The authors hope that the results of dataflow analysis of a wide variety of typical programs like those presented can be used by compiler builders to make more efficient storage allocation decisions. The two classes of algorithms discussed are labeled “flow-sensitive” and “flow-insensitive.” A third variation of flow-insensitive uses information about when variables are “killed” to improve efficiency. The paper’s extensive bibliography makes it a good starting point from which to learn more about this subject.