Erlang is a programming language for building robust concurrent systems. The language is the result of research into the combination of modern ideas about declarative programming with conventional process based models of computation for real-time applications. The language is being widely used in the telecommunications industry and has been used both for prototyping and product development. Erland integrates ideas from logic and functional programming with a process/message passing model of concurrency to provide a solid basis for the development of embedded real-time robust distributed software. Erlang programs are typically five times shorter than their equivalents in conventional languages, so project development times can be greatly reduced. This book is a complete description of Erlang and contains many examples of how robust real-time systems can be programmed using Erlang.