- Home
- Computers
- Programming
- Understanding Computation (From Simple Machines to Impossible Programs)
Understanding Computation (From Simple Machines to Impossible Programs)
- Availability: Confirm prior to ordering
- Branding: minimum 50 pieces (add’l costs below)
- Check Freight Rates (branded products only)
Branding Options (v), Availability & Lead Times
- 1-Color Imprint: $2.00 ea.
- Promo-Page Insert: $2.50 ea. (full-color printed, single-sided page)
- Belly-Band Wrap: $2.50 ea. (full-color printed)
- Set-Up Charge: $45 per decoration
- Availability: Product availability changes daily, so please confirm your quantity is available prior to placing an order.
- Branded Products: allow 10 business days from proof approval for production. Branding options may be limited or unavailable based on product design or cover artwork.
- Unbranded Products: allow 3-5 business days for shipping. All Unbranded items receive FREE ground shipping in the US. Inquire for international shipping.
- RETURNS/CANCELLATIONS: All orders, branded or unbranded, are NON-CANCELLABLE and NON-RETURNABLE once a purchase order has been received.
Product Details
Overview
Finally, you can learn computation theory and programming language design in an engaging, practical way. Understanding Computation explains theoretical computer science in a context you’ll recognize, helping you appreciate why these ideas matter and how they can inform your day-to-day programming.
Rather than use mathematical notation or an unfamiliar academic programming language like Haskell or Lisp, this book uses Ruby in a reductionist manner to present formal semantics, automata theory, and functional programming with the lambda calculus. It’s ideal for programmers versed in modern languages, with little or no formal training in computer science.
- Understand fundamental computing concepts, such as Turing completeness in languages
- Discover how programs use dynamic semantics to communicate ideas to machines
- Explore what a computer can do when reduced to its bare essentials
- Learn how universal Turing machines led to today’s general-purpose computers
- Perform complex calculations, using simple languages and cellular automata
- Determine which programming language features are essential for computation
- Examine how halting and self-referencing make some computing problems unsolvable
- Analyze programs by using abstract interpretation and type systems








