This thesis presents new methods of compiler flow analysis for modern computer languages running on a uniprocessor or multiprocessor. These methods allow flow analysis information to be extracted directly from a high-level representation of the source programs, even in parallel. To achieve this goal, we develop and utilize the Extended Abstract Syntax Tree (EAST), and the Symbol Table Data Relational Tree (STDRT) representations, to perform our flow analysis based on these structures. By these approaches, the compiler is able to keep the most useful information and apply this information during various optimization stages. We also introduce several scheduling algorithms for parallelizing the flow analysis phase. An experimental compiler and its results support the usefulness of these methods.