其他core¶
编译原理¶
编译器:
前端
词法分析
语法分析
类型检查
中间代码生成
后端
目标代码的生成和优化
* 将中间代码翻译成目标机器能够运行的二进制机器码
指令集:
复杂指令集计算机(CISC)
通过增加指令的数量减少需要执行的指令数
精简指令集计算机(RISC)
使用更少的指令完成目标的计算任务
AST:
Abstract syntax tree(抽象语法树)
Concrete syntax tree
SSA:
Static Single Assignment(静态单赋值)
主要作用是对代码进行优化,所以它是编译器后端的一部分
代码编译领域除了 SSA 还有很多中间代码的优化方法
编译器生成代码的优化也是一个非常古老并且复杂的领域
思考¶
确定性的知识vs临床智慧¶
在学校,我们根据完备的信息做出完美的决定(医学院)
在社会,我们必须根据不完备的信息做出完美的决定(实际看病)
不确定的、易变的、不完备的抽象知识
例子:
一个体面的高收入人,急剧消瘦,以为是「癌症」,按「癌症」检查没有问题。
但一天医生看到他和一瘾君子聊天,猜测他可能吸毒并有艾滋,看「艾滋」一查,果然。
医学不是一门确定的科学和可能性的艺术,你真正要成为一个好大夫,靠医学教科书不可能成就你,恰恰是来自于你平时充分旁顾的,别人的世界的知识,才会让你成为真正的医生,其他行业也一样。