SICP第一版前言

計(jì)算機(jī)就像小提琴贡避。試想一下痛黎,門(mén)外漢第一次聽(tīng)留聲機(jī)予弧,接著就去拉小提琴。之后湖饱,他定會(huì)說(shuō)掖蛤,小提琴聽(tīng)起來(lái)真糟糕。此類(lèi)情節(jié)井厌,我們?cè)缫褟娜吮局髁x者和絕大多數(shù)計(jì)算機(jī)科學(xué)家口中聽(tīng)聞過(guò)蚓庭。人們常說(shuō),計(jì)算機(jī)程序?qū)μ囟繕?biāo)是有效的仅仆,但缺乏靈活性彪置。可是蝇恶,你既不可能拉好小提琴拳魁,也不可能碼好打字機(jī),除非你學(xué)習(xí)如何使用它們撮弧。

——Marvin Minsky “為什么程序是表達(dá)不求甚解潘懊、囫圇吞棗之想法的良好媒介(Why Programming is a Good Medium for Expressing Poorly?Understood and Sloppily Formulated Ideas)“

本書(shū)是MIT計(jì)算機(jī)科學(xué)的入門(mén)科目。在MIT贿衍,對(duì)于所有主修電子工程或計(jì)算機(jī)科學(xué)的學(xué)生授舟,這是門(mén)必修課,是四門(mén)之一的“公共核心課程”贸辈。其他還包括:兩門(mén)電路和線(xiàn)性系統(tǒng)課程释树、一門(mén)數(shù)字系統(tǒng)設(shè)計(jì)課程。自1978年擎淤,我們便已致力于本課程的開(kāi)發(fā)奢啥。從1980年秋開(kāi)始,每年都在6到7百名學(xué)生中用現(xiàn)在的方式講授本課程的內(nèi)容嘴拢。雖然有些人已使用過(guò)計(jì)算機(jī)桩盲,其中還有少數(shù)人已有大量的軟件或硬件的設(shè)計(jì)經(jīng)驗(yàn),但是絕大多數(shù)學(xué)生先前幾乎都沒(méi)有過(guò)正式的計(jì)算訓(xùn)練席吴。

我們對(duì)這門(mén)計(jì)算機(jī)科學(xué)導(dǎo)論的材料安排反映了兩大關(guān)注點(diǎn)赌结。第一,我們想要建立一種觀(guān)念孝冒,即計(jì)算機(jī)語(yǔ)言不僅是指導(dǎo)計(jì)算機(jī)執(zhí)行操作的手段柬姚,更是表達(dá)方法觀(guān)念的新穎的、規(guī)范的媒介庄涡。因此量承,程序必定是寫(xiě)給人閱讀的,其次才是給機(jī)器執(zhí)行。第二宴合,我們相信焕梅,該層次課程的基本內(nèi)容的著重點(diǎn)不該是特定程序設(shè)計(jì)語(yǔ)言的結(jié)構(gòu)的語(yǔ)法,也不該是計(jì)算特定函數(shù)快速精巧的算法卦洽,更不該是算法的數(shù)學(xué)分析以及計(jì)算理論贞言,而該是用于控制大型軟件系統(tǒng)復(fù)雜度的技巧。

我們的目標(biāo)是阀蒂,學(xué)生完成本課程后可以對(duì)編碼風(fēng)格和編程美學(xué)有良好的感知该窗。他們應(yīng)當(dāng)掌握控制大型系統(tǒng)復(fù)雜度的主要技巧;應(yīng)當(dāng)有能力閱讀50頁(yè)長(zhǎng)的程序——只要程序的書(shū)寫(xiě)風(fēng)格良好;應(yīng)當(dāng)知道程序何時(shí)不必去閱讀蚤霞,何時(shí)不必去理解酗失;應(yīng)當(dāng)有把握修改程序,并保持原作者的本意和風(fēng)格昧绣。

這些技能絕不僅適用于計(jì)算機(jī)編程规肴。我們教授和使用的技巧適用于所用工程設(shè)計(jì)。通過(guò)構(gòu)建抽象來(lái)控制復(fù)雜度夜畴,即適時(shí)隱藏細(xì)節(jié)拖刃;過(guò)建立通用接口來(lái)控制復(fù)雜度,這使我們構(gòu)建系統(tǒng)時(shí)能夠用“拼湊”的方法來(lái)組合規(guī)范的贪绘、易于理解的模塊兑牡;通過(guò)構(gòu)造描述設(shè)計(jì)的新語(yǔ)言來(lái)控制復(fù)雜度,它強(qiáng)調(diào)設(shè)計(jì)的特殊點(diǎn)税灌,弱化其余部分均函。

我們堅(jiān)信“計(jì)算機(jī)科學(xué)”不是科學(xué),并且“計(jì)算機(jī)科學(xué)”的重要性和計(jì)算機(jī)本身無(wú)關(guān)菱涤,這些觀(guān)念根植于本課程的開(kāi)發(fā)過(guò)程苞也。計(jì)算機(jī)革命是思維方式的革命,是思維表達(dá)的革命狸窘。這些改變的本質(zhì)是墩朦,過(guò)程認(rèn)識(shí)論(最好的稱(chēng)謂)的顯露,——從命令式的角度研究知識(shí)的結(jié)構(gòu)坯认,這與傳統(tǒng)數(shù)學(xué)學(xué)科的說(shuō)明式的角度截然不同翻擒。數(shù)學(xué)提供精確處理“what is”的框架。計(jì)算提供精確處理“how to”的框架牛哺。

在教學(xué)過(guò)程中陋气,我們使用程序設(shè)計(jì)語(yǔ)言L(fǎng)isp的一種方言。我們從未正式教這門(mén)語(yǔ)言引润,因?yàn)闆](méi)有必要巩趁。我們只管使用,學(xué)生便可在幾天之內(nèi)通過(guò)實(shí)踐學(xué)會(huì)。這是類(lèi)Lisp語(yǔ)言的一大優(yōu)勢(shì):除了少數(shù)組合復(fù)合表達(dá)式的方法议慰,幾乎沒(méi)有語(yǔ)法結(jié)構(gòu)蠢古。所有規(guī)范化特性能在一小時(shí)內(nèi)講完,就像國(guó)際象棋别凹。一段短時(shí)間后草讶,我們忘掉了該語(yǔ)言的語(yǔ)法細(xì)節(jié)(因?yàn)楸緛?lái)就沒(méi)有),開(kāi)始著手實(shí)際問(wèn)題——理解我們要計(jì)算什么炉菲,如何把問(wèn)題分解為易處理的幾個(gè)部分堕战,如何處理各個(gè)部分。Lisp的另一優(yōu)勢(shì)是拍霜,它支持(非強(qiáng)制)程序模塊化分解的大規(guī)模策略的能力優(yōu)于其他所有語(yǔ)言嘱丢。我們可以構(gòu)造過(guò)程和數(shù)據(jù)抽象,可以使用高階函數(shù)獲得慣用法的通用模式祠饺,可以使用賦值和數(shù)據(jù)轉(zhuǎn)換(data mutation)模擬局部狀態(tài)越驻,可以使用流(stream)和延時(shí)求值(delayed evaluation)鏈接程序的各部分,還可以簡(jiǎn)易實(shí)現(xiàn)嵌入式語(yǔ)言道偷。所有這些都深植于Lisp的交互式環(huán)境伐谈,該環(huán)境極好地支持增量式程序的設(shè)計(jì)、構(gòu)造试疙、測(cè)試和調(diào)試诵棵。我們要感謝世代的Lisp巫師(wizard天才),其中首推John McCarthy祝旷,他設(shè)計(jì)了功能極其強(qiáng)大履澳、設(shè)計(jì)極其優(yōu)雅的實(shí)用工具。

Scheme,我們使用的Lisp方言怀跛,試圖糅合Lisp和Algol的強(qiáng)大功能和優(yōu)雅設(shè)計(jì)距贷。從Lisp那里,獲得元語(yǔ)言的能力吻谋,這源自L(fǎng)isp簡(jiǎn)潔的語(yǔ)法忠蝗,源自L(fǎng)isp將程序作為數(shù)據(jù)對(duì)象的統(tǒng)一表示,源自L(fǎng)isp的數(shù)據(jù)垃圾回收和堆分配機(jī)制漓拾。從Algol那里阁最,獲得靜態(tài)域(lexical scoping)和塊結(jié)構(gòu),這是當(dāng)年Algol委員會(huì)的程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)先驅(qū)贈(zèng)與我們的禮物骇两。在此速种,我希望提及John Reynolds和Peter Landin,他們洞悉了Church的Lambda演算與程序設(shè)計(jì)語(yǔ)言結(jié)構(gòu)間的關(guān)系低千。我們也應(yīng)該感激計(jì)算機(jī)出現(xiàn)之前配阵,在這領(lǐng)域不懈探索的數(shù)學(xué)家們。這些先驅(qū)包括:Alonzo Church、Barkley Rosser棋傍、Stephen Kleenex救拉,以及Haskell Curry。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瘫拣,一起剝皮案震驚了整個(gè)濱河市近上,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拂铡,老刑警劉巖壹无,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異感帅,居然都是意外死亡斗锭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)失球,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)岖是,“玉大人,你說(shuō)我怎么就攤上這事实苞〔虺牛” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵黔牵,是天一觀(guān)的道長(zhǎng)聪轿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)猾浦,這世上最難降的妖魔是什么陆错? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮金赦,結(jié)果婚禮上音瓷,老公的妹妹穿的比我還像新娘。我一直安慰自己夹抗,他們只是感情好绳慎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著漠烧,像睡著了一般杏愤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沽甥,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天声邦,我揣著相機(jī)與錄音,去河邊找鬼摆舟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恨诱。 我是一名探鬼主播媳瞪,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼照宝!你這毒婦竟也來(lái)了蛇受?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤厕鹃,失蹤者是張志新(化名)和其女友劉穎兢仰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體剂碴,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡把将,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了忆矛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片察蹲。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖催训,靈堂內(nèi)的尸體忽然破棺而出洽议,到底是詐尸還是另有隱情,我是刑警寧澤漫拭,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布亚兄,位于F島的核電站,受9級(jí)特大地震影響采驻,放射性物質(zhì)發(fā)生泄漏儿捧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一挑宠、第九天 我趴在偏房一處隱蔽的房頂上張望菲盾。 院中可真熱鬧,春花似錦各淀、人聲如沸懒鉴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)临谱。三九已至,卻和暖如春奴璃,著一層夾襖步出監(jiān)牢的瞬間悉默,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工苟穆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抄课,地道東北人唱星。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像跟磨,于是被迫代替她去往敵國(guó)和親间聊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第一部分Common Lisp介紹第1章 介紹一下Lisp你在學(xué)的時(shí)候覺(jué)得已經(jīng)明白了抵拘,寫(xiě)的時(shí)候更加確信了解了哎榴,教別...
    geoeee閱讀 2,947評(píng)論 5 8
  • 說(shuō)明 函數(shù)式編程和面向?qū)ο缶幊炭梢哉f(shuō)是編程的兩大宗教,猶如編輯器之爭(zhēng)一樣僵蛛,之間口角不斷尚蝌。我雖然靠著OOP的主力語(yǔ)言...
    lingyv閱讀 1,690評(píng)論 1 14
  • Lisp的本質(zhì) - climbdream的個(gè)人空間 - 開(kāi)源中國(guó)社區(qū)https://my.oschina.net/...
    葡萄喃喃囈語(yǔ)閱讀 700評(píng)論 0 10
  • 人工智能編程范式:Common Lisp案例學(xué)習(xí)Peter Norvig 前言 范式(paradigm):名詞,一...
    geoeee閱讀 1,753評(píng)論 7 13
  • 最近因?yàn)橐コ湮荆泄ぷ麝┤欢蛊裕嗔瞬簧贂r(shí)間,于是在貓堡蹲了兩期喉酌!學(xué)了Q版人物和速寫(xiě)热凹。也算是重置兒時(shí)的愛(ài)好~畫(huà)...
    繽妮閱讀 233評(píng)論 0 1