1.计算机体系
回看1930--1960年计算机的发展,有三位人物不得不提:哥德尔,图灵和冯诺依曼。
图灵设计了通用计算机理论模型,冯诺依曼设计了计算机体系结构,化理论为现实;哥德尔在符号系统和逻辑推演上功勋斐然,证明了计算机理论的极限,并奠定了程序设计语法的基础。这三部分相辅相成,就在我们敲击每一行代码时,键盘下看不见的东西在忠实地运行着几十年前定下的规则。
“冯诺依曼体系结构的核心就是指令存储和程序驱动执行”
约翰·冯·诺依曼体系结构的核心思想在设计EDVAC时诞生。大家可能听说过ENIAC,世界上第一台"通用"计算机,而EDVAC是它的下一代通用计算机。
哥德尔和逻辑推演
任何高级程序语言都是基于图灵机状态转移规则而设计。但在设计具体内容时是语言的“文法”系统在起作用。规定一系列产生式规则和符号,就能从元符号出发自顶向下地推出程序语句,或者从程序语句出发自底向上归纳回原始产生式。这些东西编译器在用。
除了数理逻辑演算外,哥德尔的定理暂时可能只是告诉我们,计算机存在理论上的极限。但是由此产生的停机问题和图灵不可判定性可能会成为解决一系列问题的出口。
2.计算机语言分类:
① 机器语言:直接用二进制指令表达,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义(如0000代表 加载(LOAD),0001 代表 存储(STORE))。
② 汇编语言:使用一些特殊的符号来代替机器语言的二进制码(又称符号语言), 计算机不能直接识别,需要用一种软件将汇编语言翻译成机器语言,汇编语言依赖于硬件体系,开发难度大 (如加法指令ADD/ADC、减法指令SUB/SBB)。
③ 高级语言:使用一定格式的自然语言进行编写源代码,通过编译器将源代码翻译成计算机直接识别的机器语言,之后再由计算机执行,不直接操作硬件,把繁琐的翻译操作交给编译器完成。
网友评论