This book is about synchronous programming for the design of, safety critical, embedded systems, such as automotive, avionics, nuclear power plants, telecommunication and multimedia. The techniques presented promote the use of formal concepts, i.e. those having a mathematically sound basis. Such concepts enable non ambiguous and rigorous reasoning about the critical properties of addressed systems in order to ensure their reliability. The synchronous programming language, SIGNAL, is used to demonstrate the pragmatic design of embedded systems. This is an invaluable tutorial/reference for scientists, practitioners and students.