Structure and Interpretation of Computer Programs 读书笔记 前言

Structure and Interpretation of Computer Programs 读书笔记 前言

2020, Jan 13    

写在最前面

本文主要用来记录自己再工作之余阅读的这本书籍的读书笔记,在记录的同时,也会加入一些自己的一些思考与总结(括号中的内容)

书籍目录架构

  1. 构造过程抽象
  2. 构造数据抽象
  3. 模块化、对象和状态
  4. 元语言抽象
  5. 寄存机器里的计算

序言部分笔记

  • 程序员必须同时追求具体部分的完美和继承的适宜性。
  • 每一个计算机程序都是现实中或者精神中的某一个过程的模型,通过人的头脑孵化出来。
  • 如果艺术解释了我们的梦想,那么计算机就是以程序的名义执行着他们。
  • 计算机是一位一丝不苟的”工匠”:它的程序必须正确,我们希望的所有东西,都必须表述得准确到每一点细节。
  • 掌握强有力的组织技术,将会提升我们构造大型重要程序的能力。
  • 计算机必须遵守物理定律。如果它们要快速执行,几个纳秒做一次状态转换,那么就必须在很短的距离内传导电子。
  • 计算机永远都不够大也不够快。硬件技术的每一次突破都带来了更大规模的程序设计事业(同时也会带来更大规模的机会,机会总是无处不在的,但是能发现并抓住机会的人却没有那么多)
  • Lisp语言有着非常简单的语法和语义,程序的语法分析可以看做一种很简单的工作。这样,语法分析技术对于Lisp程序几乎就没有价值,语言处理器的构造不会成为大型Lisp系统发展的变化和阻碍。最后,正是这种语法和语义的极端简单性,给所有的Lisp程序员都带来了负担和自由。任何规模的Lisp程序,除了那种寥寥几行的程序外,都包含考虑周到的各种功能。
  • 发明并调整,调整恰当后再去发明!

前言部分笔记

  • 计算机语言并不仅仅是一种让计算机去执行操作的方式,更重要的是,它是一种表述有关方法学的思想的新颖的形式化媒介。因此,程序必须写的能够供人阅读,偶尔地去供计算机执行。
  • 能够对程序设计的风格要素有一种很好的审美观。……知道在什么时候哪些地方不需要去读,哪些东西不需要去理解。应该很有把握地去修改一个程序,同时又能保持原来作者的精神和风格。
  • 计算机革命是关于我们如何去思考,以及如何去表达自己所思考的