Introduction.- Understanding Decimal Addition.- Basic Mathematical Concepts.- Number Formats and Boolean Algebra.- Hardware.- Five Designs of RAM.- Arithmetic Circuits.- A Basic Sequential MIPS Machine.- Some Assembler Programs.- Context-Free Grammars.- The Language C0.- A C0-Compiler.- Compiler Consistency Revisited.- Operating System Support.- A Generic Operating System Kernel.
Prof. Dr. Wolfgang J. Paul received his Ph.D. in 1973 from Saarland University. He did a postdoc in Cornell, and worked as a professor of mathematics in Bielefeld and in a research role with IBM in San Jose. He was appointed a professor in Saarbrücken in 1986, where he is now the Head of the Institute for Computer Architecture and Parallel Computing. He shared the Leibniz Prize in 1987 with Günter Hotz and Kurt Mehlhorn. He was the scientific director of the Verisoft project. His research interests include hardware design, computer architecture, and the formal verification of processors and microkernels.
Dr. Christoph Baumann received his Ph.D. in 2014 from Saarland University. As a staff member of the Institute for Computer Architecture and Parallel Computing he worked on the avionics component of the Verisoft XT project. Currently he is doing a postdoc at the KTH Royal Institute of Technology in Stockholm, working in the PROSPER and HASPOC projects on provably secure execution platforms for embedded systems. His research interests include the formal specification of modern processors, the formal verification of real-world operating systems, and information flow security.
Petro Lutsyk, M.Sc., is a scientific staff member of the Institute for Computer Architecture and Parallel Computing. His research interests include hardware design, hardware-assisted virtualization, and formal verification of hardware and low-level software.
Dr. Sabine Schmaltz received her Ph.D. in 2013 from Saarland University where she was a staff member of the Institute for Computer Architecture and Parallel Computing. She is currently creating a sewing community website while being a full-time caregiver for her son. Her research interests include operating systems, hypervisors, hardware architectures, compilers, formal verification, formal theories of systems, pervasive formal verification, and applied functional programming.
The pillars of the bridge on the cover of this book date from the Roman Empire and they are in daily use today, an example of conventional engineering at its best. Modern commodity operating systems are examples of current system programming at its best, with bugs discovered and fixed on a weekly or monthly basis. This book addresses the question of whether it is possible to construct computer systems that are as stable as Roman designs.
The authors successively introduce and explain specifications, constructions and correctness proofs of a simple MIPS processor; a simple compiler for a C dialect; an extension of the compiler handling C with inline assembly, interrupts and devices; and the virtualization layer of a small operating system kernel. A theme of the book is presenting system architecture design as a formal discipline, and in keeping with this the authors rely on mathematics for conciseness and precision of arguments to an extent common in other engineering fields.
This textbook is based on the authors' teaching and practical experience, and it is appropriate for undergraduate students of electronics engineering and computer science. All chapters are supported with exercises and examples.