zoukankan      html  css  js  c++  java
  • 计算机程序的构造和解释——笔记(一)

    相信很多人同我一样,看到这本书的名字,就觉得这本书霸气,是一本难得的好书。源于各种各样的原因,我接触这本书的时间很晚。不像国内有些学校那样,在大学上课的时候,就选用的这本书作为教材。想来,非常羡慕。感谢裘宗燕老师的翻译,让我更加深刻的认识到计算机程序是如何组织起来的。鉴于这本书的含金量,不敢怠慢,需好好的思考,并记录下来。

    本书一开始用Lisp语言来做简要的说明,非常容易让大家明白,同时也羡慕上这么课的同学,能一开始就接触到Lisp。在看这本书之前,根据自己的理解,计算机语言最主要的就是要能起到表达的作用,但完全没有想得像本书阐述的那么深入,系统,全面。当看到作者指出强有力的语言都提供了三种机制:基本表达形式,组合的方法,抽象的方法。也相当明确的指出需要处理的两类要素:过程和数据。简单,直接,一下就击中我得要害。作者真是太给力了。

    以此为入口进行阐述, 即可一气贯通,由简入难。从大家熟知的数学四则远算开始解释说明表达式,组合,最后过渡到抽象。由此可见作者功力深厚,更不容易的是还能如此简单地表述出来。正巧,这段时间培训的新人,基础比较薄弱,可以借用书中实例,简单易懂。影响比较深刻的提炼是“表达式都是由值组成的”:数的值就是他们所表示的数值;内部运算符的值就是能完成相应操作的机器指令序列;其他名字的值就是在环境中关联于这一名字的那个对象。从这个角度出发,可以得出:内部运算法符和自定义的过程可以抽象为同一事物,都是极其指令序列;同时过程和数据,都可以抽象到值这个层面上来。这样带来的好处就是可以更加灵活地构造程序。  

  • 相关阅读:
    windows 按时自动化任务
    Linux libusb 安装及简单使用
    Linux 交换eth0和eth1
    I.MX6 GPS JNI HAL register init hacking
    I.MX6 Android mmm convenient to use
    I.MX6 GPS Android HAL Framework 调试
    Android GPS GPSBasics project hacking
    Python windows serial
    【JAVA】别特注意,POI中getLastRowNum() 和getLastCellNum()的区别
    freemarker跳出循环
  • 原文地址:https://www.cnblogs.com/worgeling/p/2958313.html
Copyright © 2011-2022 走看看