Busy waiting occurs whenever a process repeatedly checks a condition until it becomes true without influencing that condition itself, thereby effectively wasting system resources and introducing the risk of system failure due to race conditions. Hence, busy waiting is considered bad programming practice and can be avoided by the use of higher communication facilities. In the development of critical systems, for which correctness and robustness are of vital importance, software quality assurance is of great value. However, it is difficult and impractical to manually discover busy waiting in existing program code, which is why a static analysis tool is needed. This book, based on the master's thesis of the author, describes an algorithm that targets the detection of busy waiting using methods of static control flow analysis in theory and practice. The main results that are presented include a static analysis tool for detecting busy waiting in programs written in the Ada programminglanguage, which is often used for critical applications, and a framework providing a powerful CFG-based representation of Ada source code facilitating comprehensive static control flow analysis in general.