In this book the author gives a broad overview of different areas of research in nonmonotonic reasoning, and presents some new results and ideas based on his research. The guiding principles are: clarification of the different research activities in the area, which have sometimes been undertaken independently of each other; and appreciation of the fact that these research activities often represent different means to the same ends, namely sound theoretical foundations and efficient computation. The book begins with a discussion of the various types of nonmonotonic reasoning, their applications and their logics. Theorem proving techniques for these logics are also described. The following chapters deal with formulations of nonmonotonic inheritance, and nonmonotonic reasoning based on nonmonotonic rules. The final chapter discusses the achievements in the field in the light of the Yale shooting example. The book will be welcomed by researchers in theoretical computer science and artificial intelligence.