计算机程序设计哲学

计算机程序设计哲学

计算机抽象模型

图灵机(Turing machine)

  • 一台图灵机是一个七元组,M = {Q,Σ,Γ,δ,q0,qaccept,qreject},其中 Q,Σ,Γ 都是有限集合,且满足: 1、Q 是状态集合; 2、Σ 是输入字母表,其中不包含特殊的空白符; 3、Γ 是带字母表,其中 □∈Γ且Σ∈Γ ; 4、 δ:Q ×「 → Q × Γ × {L,R} 是转移函数,其中L,R 表示读写头是向左移还是向右移; 5、q0∈Q是起始状态; 6、qaccept是接受状态。 7、qreject是拒绝状态,且qreject≠qaccept。
  • 对于任意一个图灵机,因为它的描述是有限的,因此我们总可以用某种方式将其编码为字符串。我们用 <M> 表示图灵机 M 的编码。我们可以构造出一个特殊的图灵机,它接受任意一个图灵机 M 的编码<M> ,然后模拟 M 的运作,这样的图灵机称为通用图灵机(Universal Turing Machine)。现代电子计算机其实就是这样一种通用图灵机的模拟,它能接受一段描述其他图灵机的程序,并运行程序实现该程序所描述的算法。

计算

系统状态

时间与空间

ThreadLocal

From Process to Thread, from Thread to Coroutine

HashMap

Queue

State

Lock

Data Structure & Algorithm

Map

From Tree to Graph

Recursion

  • 调用自身

“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”

Gateway

Service

Abstract and Model

Iass-Pass-Sass-Fass-Bass

AOP

DI

OS Architecture

“一切皆是映射”

FP

From Hardware to 01, From 01 to Assembly

Compiler

VM

Programming Language