SICP - “计算机程序的结构和解释”

相同的解释会很好

有人可以解释一下吗 元语言抽象

有帮助吗?

解决方案

SICP真正开车回家,这是可以看的代码和数据作为同一事物的点。

我想通用图灵机(输入到UTM是一个程序的只是一个表示)或冯·诺依曼体系结构(其中单个存储结构用于保存代码和数据),当前理解这一点,但SICP所作的想法更清晰。方案(Lisp的)帮助这里,作为用于程序的语法是完全一样的语法一般列表,即S-表达式。

一旦你的代码和数据的“对等”,顿时很多事情变得容易。例如,可以编写具有不同的评价方法的程序(懒惰,非确定性,)。以前,我可能会认为这将需要一个扩展的编程语言;在现实中,我只是将它加入到自己的语言,从而使核心语言是最小的。再举一个例子,你同样可以实现面向对象的框架;再次,这是我可能会天真地以为将需要修改的语言。

顺便说一下,有一两件事我想SICP曾提到更多:类型。在键入的编译的检查时间是一个了不起的事情。所述SICP实现面向对象编程的没有这样做的好处。

其他提示

我没读过那本书呢,我只是看了看视频课程,但它教会了我很多。作为一等公民功能是令人兴奋的我。执行一个“变量”是我很新的东西。看着那些视频的方式我现在看到的JavaScript和编程一般发生了很大变化之后。

呵呵,我想,我撒了谎,真的让我吃惊的是,+是一个功能的东西。

我想SICP最令人惊讶的是看实际需要的原语如何少做一个图灵完整的语言 - 几乎任何东西都可以从几乎一无所有建

由于我们正在讨论SICP,我会在我的标准插头的视频讲课的 http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ ,这是计算机科学最好的介绍,你可以希望得到在20小时内。

我认为非常酷的一个是 溪流 延迟评估。我认为关于生成素数的一件事非常巧妙。就像“PEZ”分配器一样,神奇地分配序列中的下一个素数。

这是“数据和代码是相同的东西”从A雷克斯的回答让我非常深刻的方式的一个例子。

当我被教导的Lisp早在俄罗斯,我们的老师告诉我们,语言约为列表:汽车,CDR,利弊。感到惊讶什么我是,你并不需要在所有这些功能的事实 - 你可以写你自己的,给予关闭。所以,Lisp是不是毕竟列表!这是一个巨大的惊喜。

我是完全不熟悉的一个概念是具有两个功能的协程想法,即做补充性工作和具有它们之间的程序流控制交替。

我还在上高中的时候我读SICP,我把重点放在第一和第二章。对于当时的我,我很喜欢,你可以表达代码所有这些数学思想,并有电脑做最脏的工作。

当我辅导SICP,我被不同方面留下深刻印象。其一,难题的数据和代码实际上是同一个东西,因为代码是可执行的数据。在元语言抽象的章是令人难以置信很多,有许多带回家的消息。首先是所有的规则是任意的。这个困扰一些学生,特别是那些谁是在心脏的物理学家。我觉得美不是在规则本身,而是在学习的规则的结果。在代码的单行变化可能意味着词法作用域和动态作用域之间的差。

今天,虽然SiC颗粒仍然是有趣和有见地的很多,我不明白,这已经成为过时。首先,它不教调试技巧和工具(包括我型系统在那里),这是在当今的庞大系统的工作是必不可少的。

我最惊讶的是多么容易实现语言。一个可以写Scheme解释到黑板。

我觉得递归在不同意义阅读一些SICP的章节之后

我现在是一节“序列常规接口”和发现的过程是一等公民相当迷人的概念。此外,递归的应用是我从来没有在任何语言见过。

闭包。

从最初的必要背景的人(的Java,C#等 - 我只看过一SICP一年多前的第一次,和我重新阅读现在),在功能方面的想法是一个很大的启示我;它完全改变了我想今天我的工作方式。

我读的书(不运动)的大部分。我学到的是如何抽象现实世界中,在一个特定的水平,以及如何实现一种语言。

每个章节都有自己的想法让我感到吃惊:

在头两章告诉我抽象现实世界的两种方法:用程序,用数据抽象抽象

第3章介绍在现实世界中的时间。这导致的状态。我们尝试分配,这引起了问题。然后,我们尝试流。

第4章为约元语言抽象,换句话说,我们通过构建的评估器,其确定表达式的含义实现一个新的语言。

由于在第4章所述评估是本身一个Lisp程序,它继承底层Lisp的系统的控制结构。因此,在第5章中,我们潜入与抽象模型的帮助下一个真正的计算机的一步一步的操作,寄存器机。

感谢。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top