BOOKZONE
Understanding Computation: From Simple Machines to Impossible Programs
Paperback
by Tom Stuart
SKU:9789351101680
Bulk Discount Get Exta 5% upto 10%
Share

Talk about your brand
Share information about your brand with your customers. Describe a product, make announcements, or welcome customers to your store.
Finally,you can learn computation theory and programming language design in anengaging, practical way. Understanding Computation explains theoreticalcomputer science in a context you’ll recognize, helping you appreciate whythese ideas matter and how they can inform your day-to-day programming.
Rather than use mathematical notation or an unfamiliar academic programminglanguage like Haskell or Lisp, this book uses Ruby in a reductionist manner topresent formal semantics, automata theory, and functional programming with thelambda calculus. It’s ideal for programmers versed in modern languages, with littleor no formal training in computer science.
- Understandfundamental computing concepts, such as Turing completeness in languages
- Discoverhow programs use dynamic semantics to communicate ideas to machines
- Explorewhat a computer can do when reduced to its bare essentials
- Learnhow universal Turing machines led to today’s general-purpose computers
- Performcomplex calculations, using simple languages and cellular automata
- Determinewhich programming language features are essential for computation
- Examinehow halting and self-referencing make some computing problems unsolvable
- Analyzeprograms by using abstract interpretation and type systems
Table of Content
Chapter 1 Just Enough Ruby
- Interactive Ruby Shell
- Values
- Control Flow
- Objects and Methods
- Classes and Modules
- Miscellaneous Features
- Programs and Machines
Chapter 2 The Meaning of Programs
- The Meaning of “Meaning”
- Syntax
- Operational Semantics
- Denotational Semantics
- Formal Semantics in Practice
- Implementing Parsers
Chapter 3 The Simplest Computers
- Deterministic Finite Automata
- Nondeterministic Finite Automata
- Regular Expressions
- Equivalence
Chapter 4 Just Add Power
- Deterministic Pushdown Automata
- Nondeterministic Pushdown Automata
- Parsing with Pushdown Automata
- How Much Power?
Chapter 5 The Ultimate Machine
- Deterministic Turing Machines
- Nondeterministic Turing Machines
- Maximum Power
- General-Purpose Machines
- Computation and Computability
Chapter 6 Programming with Nothing
- Impersonating the Lambda Calculus
- Implementing the Lambda Calculus
Chapter 7 Universality Is Everywhere
- Lambda Calculus
- Partial Recursive Functions
- SKI Combinator Calculus
- Iota
- Tag Systems
- Cyclic Tag Systems
- Conway’s Game of Life
- Rule 110
- Wolfram’s 2,3 Turing Machine
Chapter 8 Impossible Programs
- The Facts of Life
- Decidability
- The Halting Problem
- Other Undecidable Problems
- Depressing Implications
- Why Does This Happen?
- Coping with Uncomputability
Chapter 9 Programming in Toyland
- Abstract Interpretation
- Static Semantics
- Applications
Appendix Afterword
Colophon
