Understanding Computation: From Simple Machines to Impossible Programs (Paperback)

Tom Stuart

買這商品的人也買了...

商品描述

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

商品描述(中文翻譯)

終於,你可以以一種引人入勝且實用的方式學習計算理論和程式語言設計。《理解計算》在你熟悉的背景下解釋了理論計算機科學,幫助你理解這些想法的重要性以及它們如何影響你日常的編程。

本書不使用數學符號或像Haskell或Lisp這樣的陌生學術程式語言,而是以Ruby以簡化的方式呈現形式語義學、自動機理論和函數式編程與λ演算。這對於熟悉現代語言但在計算機科學方面沒有正式培訓的程式設計師來說是理想的選擇。

本書的內容包括:
- 理解語言中的圖靈完備性等基本計算概念
- 發現程式如何使用動態語義將想法傳達給機器
- 探索當計算機被簡化到最基本時可以做什麼
- 了解通用圖靈機如何演變為今天的通用計算機
- 使用簡單的語言和元胞自動機進行複雜計算
- 確定哪些程式語言特性對於計算是必要的
- 通過抽象解釋和類型系統分析程式
- 探討停機問題和自指性如何使某些計算問題無法解決

這段文字是HTML代碼,請忽略HTML標籤,只需提供純文字即可。