计算机程序的构造和解释——笔记(一)

计算机程序的构造和解释——笔记(一)

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

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

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

 

转载于:https://www.cnblogs.com/worgeling/archive/2013/03/13/2958313.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100840.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 视频直播本地测试服务器搭建「建议收藏」

    视频直播本地测试服务器搭建「建议收藏」如何搭建局域网推流服务器?一搭建服务器所需    1.nginx    2.nginx–rtmp-module    3.Homebrew

    2022年5月15日
    40
  • golang 设置代理

    golang 设置代理goenv-wGOPROXY=https://goproxy.cn,direct阿里云配置如下:exportGOPROXY=https://mirrors.aliyun.com/gopro

    2022年7月1日
    27
  • 贪心算法——C++实现经典案例——初级

    贪心算法——C++实现经典案例——初级最简单的钱币找零问题 这个问题在我们的日常生活中很普遍 假设 1 元 2 元 5 元 10 元 20 元 50 元 100 元的纸币分别有 c0 c1 c2 c3 c4 c5 c6 张 现在要用这些钱来支付 K 元 至少要用多少张纸币 用贪心算法的思想 很显然 每一步尽可能用面值大的纸币即可 在日常生活中我们自然而然也是这么做的 在程序中已经事先将 Value 按照从小到大的顺序排好 贪心分析 贪心算

    2025年12月7日
    3
  • Linux命令之tail – 输出文件尾部/动态监视文件尾部

    Linux命令之tail – 输出文件尾部/动态监视文件尾部本文链接:http://codingstandards.iteye.com/blog/832575  (转载请注明链接)用途说明tail命令可以输出文件的尾部内容,默认情况下它显示文件的最后十行。它常用来动态监视文件的尾部内容的增长情况,比如用来监视日志文件的变化。与tail命令对应的是head命令,用来显示文件头部内容。 常用参数格式:tailfile

    2022年6月4日
    33
  • html精灵图坐标如何确定,背景设置及精灵图

    html精灵图坐标如何确定,背景设置及精灵图背景色.box{width:450px;height:450px;border:1pxsolidaqua;background-color:burlywood;/*背景色默认可以从内边距透出来*/padding:20px;/*控制背景的覆盖范围*/background-clip:content-box;/*渐变*/background:linear-gradient(45deg,re…

    2022年5月11日
    34
  • 普林斯顿体系架构和哈佛架构的区别_边和 普林斯顿

    普林斯顿体系架构和哈佛架构的区别_边和 普林斯顿目前接触到的单片机架构就这两种:普林斯顿体系和哈佛结构:两者的主要区别是:codememory和datememory是不是分开存放。普林斯顿体系是程序存储器和数据存储器集合一体的架构;MEMORY单总线到CPU,这样在一个工作周期中:读指令—译码—-取数据过程中,读指令和取数据两次访问不得不分开按次序执行,效率低;特别是这样的设计使得CPU在访存时遇到了很大的瓶颈,特别是现在C

    2022年10月4日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号