Chapter1:基础

整本书的核心:语言的设计与实现,让我想到一句话:意识决定形态,结构决定功能。

行文的逻辑基本就是

1.提出一种设计的必要性,

2.设计从最初到现在的演变,

3.为实现这一设计,不同的语言用了不同的策略,

4.实现的细节,包括运行前的编译,运行中的检查等,也有可能是个语法糖,简单的实现换来优美的设计。

charpter1.0引言

1.机器语言通过指令集控制处理器,指令包括数字的运算,存储位的读写,地址的计算等

2.汇编语言是指令集的助记形式,用的是英文的缩写,机器语言是进制数

汇编语言与机器语言一一对应,所以本质上还是用指令集思考问题,是机器相关的。由汇编器完成两种语言的翻译

机器相关的汇编语言+很多种不同的指令集=同一想法在不同机器上复现很困难

最后,高级语言登场,逐渐实现机器无关性

且高级语言的单条语句与指令集中的单条语句不再对应,这也说明了编译器要足够了解程序正文的语义,进而翻译成机器语言

硬件的复杂化(不容易提升手写汇编语言的效率)+编译技术进步(生成越来越高效的汇编语言)=高级语言被人接受

这一历史体现了“边际成本”的有趣现象,一种设计的优势与劣势是相对的,人们追求优雅一致的设计,但又不想放弃简单高效的实现。

语言的设计目标:清晰,紧凑,易于维护,表达能力强,方便优雅,概念清晰,实现效率

charpter1.2程序设计语言的分类

说明式

  函数式:

  数据流:

命令式

  冯 诺伊曼:C

  脚本:python

  面向对象:Java

函数式:函数递归,目标函数递归为子问题

数据流:数据在功能节点间流动 tensorflow?

逻辑式:满足逻辑的值,不断筛选和加工 SQL

冯 诺伊曼:计算值(表达式,函数返回值),在变量上存储值,修改变量。

脚本:为特定目标快速建立原型

面向对象:对象维护状态(域),修改状态(方法)

charpter1.3:设计一种语言的目的

表达能力:为表达一种设计,是语言自带了特性,还是进行了语法包装?

实现效率:了解实现的细节,在语言中模拟缺乏的特性

charpter1.4

#!未完

猜你喜欢

转载自www.cnblogs.com/qmcj/p/9074671.html