Shape analyses focusing on inferring highly complex properties of heap-manipulating programs are techniques used in the automatic verification of infinite-state programs.This survey provides a comprehensive introduction to the field of shape analysis, and presents the foundation of the topic in an accessible manner to readers who are not familiar with it. To do so, the authors characterize the essence of shape analysis compared to more classical pointer analyses as well as giving the intuition underlying the abstractions commonly used in shape analysis and the algorithms that allow to statically compute intricate semantic properties. The authors cover the main families of shape analysis abstraction and algorithms, highlight the similarities between them, and characterize the main differences between the most common approaches. Finally, the authors demonstrate the impact of the field by describing a few other static analysis works - array abstractions, dictionary abstractions and interprocedural analyses - that were influenced by the ideas of shape analysis.Researchers and students new to the concept of shape analysis will find this monograph a one-stop shop of information that will quickly get them up to speed on all aspects of the topic. With a comprehensive set of references, this accessible survey will enable the reader to adopt the techniques quickly in their own further research.