笔记-1

SICP

1
I’d like to welcome you to this course on computer science. Actually that is a terrible way to start. Computer science is a terrible name for this business. First of all it’s not a science. It might be engineering or it might be art ,but we’ll actually see that computer so-called science actually has a lot in common with magic, and we’ll see that in this course. So it’s not a science it’s also not really very much about computers. And it’s not about computers in the same sense that physics is not really about particle accelerators(粒子加速器), and biology is not really about microscopes(显微镜) and petri dishes(培养皿). And it’s not about computers in the same sense that geometry(几何学) is not really about using surveying instruments(仪器)
In fact , there’s a lot of commonality(共性) between computer science and geometry.

What is the essence of computer science or what is the essence of geometry ?

It’s certainly true that these Egyptians went off and using surveying instruments. Computer really what they were doing is starting to learn how to formalize intuitions about process. How to do things, starting to develop a way to talk precisely about how-to knowledge
For instance, here is a piece of mathematics that says what a square root is. The square root of X is the number Y, such that Y squared is equal to X and Y is greater than 0. Now that’s a fine piece of mathematics, but just telling you what a square root is doesn’t really say anything about how you might go out and find one. So let’s contrast that with a piece of imperative knowledge, how you might go out and find a square root. This, in fact, also comes from Egypt ancient Egypt. This is an algorithm due to Heron of Alexandria called how to find a square root by successive averaging: you make a guess, you improve that guess and the way you improve the guess is to average the guess and X / guess and you keep improving the guess until it’s good enough. That is method. That is how to do something as opposed to
declarative knowledge that says what you’re looking for. That is a process. And the thing that directs a process is a pattern of rules called a procedure. That control these magical spirits that are the processes. Using Lisp to make these processes come true.

Lisp is a language designed for talking about casting the spells(编写咒语般的程序) that are procedures to direct the processes.
2
In computer science we are in business of formalizing this sort of how-to imperative knowledge and how to do stuff. The real problems come when we try to build very, very large systems, computer programs that are thousands of pages long so long that nobody can really hold them in their heads all at once. So there are techniques for controlling the complexity of these large systems. And these techniques that are controlling complexity are what this course is really about. And in some sense, that’s really what computer science is about. Computer science, in some sense, isn’t real. Computer science deals with idealized components(理想化组件). We know as much as we want about these little program and data piece that we’re fitting thing tighter.
That means in building large program, there’s not all that much difference between what I can build and what I can imagine, because the parts are these abstract entities that I know as much as I want. I know about them as precisely as I’d like. So as opposed to(与…不同) other kinds of engineering, where the constraints(约束) on what you can build are the constraints of physical systems, that constraints of physics(物理定律) and noise(噪声) and approximation(近似值), the constraints imposed in building large software systems are the limitations of our own minds. So in that sense, computer science is like an abstract form of engineering(工程中的一种抽象模式). It’s the kind of engineering where you ignore the constraints that are imposed(强加) by reality.

3
Well, what are some of these techniques ?
First technique black-box abstraction(黑盒抽象), which is used in all of engineering is kind of abstraction called black-box abstraction: Take something and build a box about it. Let’s for example, if we looked at that square root method I might want to take that and build a box is “to find the square root of X” And that might be a whole complicated set of rules. And that might end up being(封装起来) a kind of what I can put in, say, 36 input, 6 output. And the important thing is that I’d like to design that so that is convenience to other users. If someone want to compute the square root of A plus the square root of B, he can take this thing and use it as a module(组件) without having to look inside and build new box. That’s the fundamental notion of putting something in a box using black-box abstraction to suppress(隐藏) detail, And the reason for that is you want to go off and build bigger boxes.

Second, conventional interfaces(实现相应的接口) suppose I want to express the idea: 将某个元素与另两个元素之和相乘(x(+ a1 a2)),举个例子来说,如果我用1与3的和再乘2得8,但我这里想讨论的是关于线性组合的基本想法,也就是你可以将两个元素的和再乘与另一个元素,在数集内思考这个问题很容易的,但是如果将这个想法应用于对连个向量a1,a2的相加然后乘以某一个因子X然后得到另一向量,或者是a1,a2都是多项式,将多项式相加然后再乘以2得到另一个多项式,再或者a1,a2是两个电信号... Now if our language is going to be good language for expressing those kind of general ideas, (x(+ a1 a2)) I’d like that to express the general idea of all different kinds of thing that a1 and a2 could be. Somewhere, there has to be the knowledge of the kinds of various things that you can add and the ways of adding them(不同的加的方式). So we need to controlling that kind of complexity. And the way you do that is by establishing conventional interfaces, Such as “plus” that have to work with all different kinds of data.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351