This book focuses on key theoretical topics of computing, in particular formal
languages and abstract machines. It is intended primarily to support the theoretical
modules on a computer science or computing-related undergraduate degree
scheme.
Though the book is primarily theoretical in nature, it attempts to avoid the
overly mathematical approach of many books on the subject and for the most part
focuses on encouraging the reader to gain an intuitive understanding. Proofs are
often only sketched and, in many cases, supported by diagrams. Wherever possible,
the book links the theory to practical considerations, in particular the
implications for programming, computation and problem solving.
A Concise Introduction to Languages, Machines and Logic provides an accessible introduction to three key topics within computer science: formal languages, abstract machines and formal logic. Written in an easy-to-read, informal style, this textbook assumes only a basic knowledge of programming on the part of the reader.
The approach is deliberately non-mathematical, and features: - Clear explanations of formal notation and jargon, - Extensive use of examples to illustrate algorithms and proofs, - Pictorial representations of key concepts, - Chapter opening overviews providing an introduction and guidance to each topic, - End-of-chapter exercises and solutions, - Offers an intuitive approach to the topics.
This reader-friendly textbook has been written with undergraduates in mind and will be suitable for use on course covering formal languages, formal logic, computability and automata theory. It will also make an excellent supplementary text for courses on algorithm complexity and compilers.