我们正在努力恢复Google Play商店上的Unionpedia应用程序
传出传入
🌟我们简化了设计以优化导航!
Instagram Facebook X LinkedIn

计算机程序的构造和解释

指数 计算机程序的构造和解释

《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,SICP)是一本关于计算机程序设计的总体性观念的基礎教科书,由MIT press與McGraw-Hill共同出版行銷。作者是麻省理工学院的教授哈尔·阿伯尔森、傑拉德·傑伊·薩斯曼,此外傑拉德·傑伊·薩斯曼的妻子Julie Sussman也有參與本書的製作。封底的作者圖像是由其實驗室的同僚Nick Papadakis後製的合成照。 书中使用程序设计语言Lisp的方言Scheme来解释计算机科学的核心概念,包括抽象(abstraction),递归(recursion),直譯器(interpreters),以及(metalinguistic abstraction)。具體而微地由宏觀到微觀給出清楚地輪廓與脈絡。.

目录

  1. 25 关系: American Scientist彼德·諾米格傑拉德·傑伊·薩斯曼哈尔·阿伯尔森函數程式語言理查德·斯托曼程序设计程序设计方法编程语言直譯器首字母縮略字计算机科学麻省理工学院蘿莉控開放式課程網頁自由软件自由软件基金会色情艾伦·佩利递归LISPScheme抽象模因4chan

  2. LISP程式語言
  3. Scheme語言
  4. 創作共享授權書籍
  5. 计算机科学与技术书籍
  6. 麻省理工學院

American Scientist

《American Scientist》(非正式的縮寫是AmSci)是美國發行的一本關於科學和技術的雙月刊雜誌。自1913年由出版。每期都包括著名科學家和工程師撰寫的專題文章,從分子生物學到計算機工程領域的研究綜述。 每期還會有漫畫家()的作品,包括、和。還有專欄Scientists' Nightstand (直譯為「科學家的床頭櫃」)用於評論大量與科學有關的書籍和小說。 線上版(American Scientist Online )於2003年5月公開。.

查看 计算机程序的构造和解释和American Scientist

彼德·諾米格

彼德·諾米格(Peter Norvig,),生於美國,計算機科學家,專長為人工智慧,為JScheme的共同作者之一。現為Google公司研究總監(Director of Search Quality)。.

查看 计算机程序的构造和解释和彼德·諾米格

傑拉德·傑伊·薩斯曼

傑拉德·傑伊·薩斯曼(Gerald Jay Sussman,),生於美國,著名計算機科學家,現為麻省理工學院教授。他是自由軟體基金會的創始元老之一,現任理事。.

查看 计算机程序的构造和解释和傑拉德·傑伊·薩斯曼

哈尔·阿伯尔森

哈尔·阿伯尔森(Hal Abelson,)是美国麻省理工學院电子工程和计算机科学部门的一名著名计算机科学教授,电气电子工程师学会院士, 创作共用,自由软件基金会,麻省理工网络开放课程,媒体实验室 Center for Mobile Learning,MIT App Inventor的创始领导人。.

查看 计算机程序的构造和解释和哈尔·阿伯尔森

函數程式語言

函數式編程(functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。.

查看 计算机程序的构造和解释和函數程式語言

理查德·斯托曼

查德·马修·斯托曼(Richard Matthew Stallman,簡稱RMS,),美国程序员,自由软件活动家。他发起自由软件运动,倡导软件使用者能够对软件自由进行使用、学习、共享和修改,确保了这些软件被称作自由软件。斯托曼发起了GNU项目,并成立了自由软件基金会。他开发了GCC、GDB、GNU Emacs,同时编写了GNU通用公共许可协议。 Stallman为了创建一个完全由免费软件组成的类Unix计算机操作系统在1983年9月推出了GNU项目。凭借这个,他又发起了自由软件运动。他迄今为止一直是GNU项目的组织者,作为主要开发者的他开发了一些被广泛使用的GNU软件,其中包括GCC GDB GNU Emacs。在1985年10月他创立了自由软件基金会。 斯托曼开创了Copyleft的概念,它使用版权法的原则来保护使用、修改和分发自由软件的权利,并且是描述这些术语的自由软件许可证的主要作者。最为人所称道的是GPL(最广泛使用的自由软件协议)。 1989年,他和别人一起创立了League for Programming Freedom。自20世纪90年代中期以来,斯托曼花他大部分时间组织参与宣传自由软件,反对软件专利和数字版权管理的以及他认为剥夺用户自由的其他法律和技术系统运动。这包括最终用户许可协议、保密协议、 产品激活、加密狗、软件复制保护、专有格式、二进制软件包(没有源代码的可执行文件)。 截至2016年,他获得了十五个荣誉博士及教授称号。.

查看 计算机程序的构造和解释和理查德·斯托曼

程序设计

电脑程序设计(Computer programming),或稱程式設計(programming),是给出解决特定问题程序的过程,軟體開發過程中的重要步驟。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应包括分析、设计、编碼、测试、除错等不同阶段。 在计算机技术发展的早期,軟體開發主要就是程序设计。但随着技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件系统,如操作系统、数据库系统、应用服务器,而且这些专用的软件系统愈来愈成为普遍的系統環境的一部分。这种情况下軟體開發的内容越来越丰富,不再只是纯粹的程序设计,还包括数据库设计、用户界面设计、通信协议设计和复杂的系统配置过程。 专业的程序设计人员被称为程序员。某种意思上,程序设计的出现甚至早于电子计算机的出现。英国著名诗人拜伦的女儿愛達·勒芙蕾絲曾设计了巴贝奇分析机上計算伯努利數的一个程序。她甚至还建立了循环和子程序的概念。由于她在程序设计上的突破性創新,愛達·勒芙蕾絲被称为世界上第一位程序员。 任何设计工作都是在各种条件限制和相互矛盾的需求之间寻求一种平衡。這種觀點反映在程式設計上,就是硬體儲存空間與程式執行時間的限制。 空間方面,在计算机技术发展的早期,由于机器资源比较昂贵,如何縮小儲存空間往往是设计关心的首要重點;而随着硬件技术的飞速发展,電腦上資料儲存媒體的價格降低,空間不再是考慮的第一要點,一些較耗時的運算也漸漸發展出以空間換取時間的模式。 時間方面,在早期,如何加強程式效率、縮短程式執行時間是程式設計師的共同目標;而在硬體效能進步、效率差距縮小,软件规模與複雜度卻日益增加的現在,程序的结构、可维护性、重複使用性、彈性等因素更顯得重要。在多人合作的程式設計專案裡,程式設計師們會加上各種註解以協助其他參與者理解程式碼,,但卻因能達到較好的溝通並提高程式碼的可維護性,而成為目前的主流。 然而,隨著智慧型手機等攜帶裝置的興起,執行時間的縮短與儲存空間的有效運用再次成為焦點,形成與主機伺服器類型應用程式不同的重點考慮方向。.

查看 计算机程序的构造和解释和程序设计

程序设计方法

《程序设计方法》(How to Design Programs, HtDP)是一本由MIT出版社出版的关于如何设计程序的教材。作者为Matthias Felleisen、Robert Bruce Findler、Matthew Flatt和Shriram Krishnamurthi。该书介绍了一种设计诀窍,从问题描述出发,通过六个步骤编写出完整的程序。 和另外一本名著《计算机程序的构造和解释》类似,《程序设计方法》使用Scheme语言。事实上,作者提供了专门为该书开发的程序设计环境,名为DrScheme。DrScheme提供了从初级到高级的一系列语言级别。 这本书的中文版由黄林鹏和朱崇恺翻译,人民邮电出版社出版。.

查看 计算机程序的构造和解释和程序设计方法

编程语言

编程语言(programming language),是用来定义计算机程序的形式語言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 最早的编程语言是在電腦發明之前產生的,當時是用來控制及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的编程語言,而且每年仍有新的编程語言誕生。很多编程語言需要用指令方式說明計算的程序,而有些编程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。 编程语言的描述一般可以分為及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部份,2011年後的版本為ISO/IEC 9899:2011,而其他55語言(像Perl)有一份主要的文件,視為是。.

查看 计算机程序的构造和解释和编程语言

直譯器

譯器(interpreter),是一種電腦程式,能夠把高階程式語言一行一行直接轉譯執行。直譯器像是一位「中間人」,每次執行程式時都要先轉成另一種語言再作執行,因此直譯器的程式運行速度比較緩慢。它不會一次把整個程式轉譯出來,而是每轉譯一行程式敘述就立刻執行,然後再轉譯下一行,再執行,如此不停地進行下去。 直譯器的好處是它消除了編譯整個程式的負擔,程式可以拆分成多個部分來模組化,但這會讓執行時的效率打了折扣。相對地,編譯器已一次將所有原程式碼翻譯成另一種語言,如機械碼,執行時便無需再依賴編譯器或額外的程式,故而其運行速度比較快。.

查看 计算机程序的构造和解释和直譯器

首字母縮略字

首字母縮略字(Acronym)是將相關詞句的第一個字母縮寫而組合成一個新字。 「首字母縮略字」又稱為「頭字語」。 而這個新字的發音則是依據這個新字書寫的方式。例如“laser”(激光)一字就是取“Light Amplification by Stimulated Emission of Radiation”的首字母縮略字。而它的發音就是依據laser的英文发音规则來發音。他們常常是幾個單詞的第一個字母合併而成(比如北約的縮寫詞NATO,激光的縮寫詞laser),也有幾個單詞分別的前幾個字母合併而成(比如比荷盧三國關稅同盟的英文Benelux就是由三國的首字母Belgium Netherlands Luxembourg合併而成)。 人們常常可以潛移默化地認識認知這些單詞,卻沒有一個潛在的標準。這些縮寫詞在過去並沒有很廣泛的應用,直到二十世紀才逐漸流行起來。在西方語言中,這些縮寫詞屬於造詞法的範疇中,而且被看作是混合詞的一類。在中文裏這些詞逐漸被人們接受,被收錄到了現代漢語詞典的附錄裏。.

查看 计算机程序的构造和解释和首字母縮略字

计算机科学

计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.

查看 计算机程序的构造和解释和计算机科学

麻省理工学院

麻省理工學院(Massachusetts Institute of Technology,縮寫為MIT)是位於美國麻薩諸塞州劍橋市的私立研究型大學。成立於1861年,當時目的是為了響應。學校採用了辦學,早期著力於應用科學與工程學的實驗教學。麻省理工的研究人員在二戰及冷戰期間,致力開發電腦、雷達及慣性導航系統技術;戰後的防禦性科技研究使學校得以進一步發展,教職員人數及校園面積在的帶領下有所上升。大學於1916年遷往現在位於查爾斯河北岸的校址,沿岸伸延逾,佔地。 擁有6間學術學院、32個學系部門的麻省理工學院常獲納入全球最佳學府之列。學校一直聞名於物理科學與工程學的教研,但在近代亦大力發展諸如生命科學、經濟學、管理學、語言學等其他學術範疇。別名「工程師」的麻省理工體育校隊合計31支,涵蓋不同項目,學生因此可參與不同類型的跨校體育聯賽。 ,著名麻省理工師生、校友或研究人員包括了91位諾貝爾獎得主、52位國家科學獎章獲獎者、45位羅德學者、38名麥克阿瑟獎得主、6名菲爾茲獎獲獎者、25位图灵奖得主。此校同時具很強的創業文化,由其校友所創辦的公司利潤總值相當於全球第十一大經濟體。.

查看 计算机程序的构造和解释和麻省理工学院

蘿莉控

蘿莉控(ロリコン),又稱幼女控,源自日語蘿莉塔情結(lolita complex)的縮約。但意義不完全一致,是指對蘿莉有特別愛好之人。蘿莉指的是日本動漫中,低龄的、未有首次的第二性徵發育(根据各别情况可能有差异)、身材嬌小的女性角色,蘿莉控一詞也主要用在日本動漫中。一般認為蘿莉控只是單純欣賞女童的可愛,與戀童癖的意義上稍微不同,因此這個詞並無負面意義。.

查看 计算机程序的构造和解释和蘿莉控

開放式課程網頁

從2001年開始,麻省理工學院將所有課程的相關資料上網,稱為開放式課程網頁(MIT OpenCourseWare),是一個免費而開放的教育資源,供全世界各地的機構、學生和自學者使用。 麻省理工學院「開放式課程網頁」的目標:.

查看 计算机程序的构造和解释和開放式課程網頁

自由软件

自由軟體(free software),根據自由軟體基金會对其的定義,是一类可以不受限制地自由使用、複製、研究、修改和分發的,尊重使用者自由的軟體。這方面的不受限制正是自由軟體最重要的本質,與自由軟體相對的是专有软件(proprietary software),或被稱為私有軟體、封閉軟體(其定義與是否收取費用無關──自由軟體不一定是免費軟體)。自由軟體受到選定的「自由軟體授權協議」保護而發佈(或是放置在公有領域),其發布以原始碼為主,二進制檔案可有可無。自由軟體許可證的類型主要有GPL许可证和BSD许可证兩種。.

查看 计算机程序的构造和解释和自由软件

自由软件基金会

自由軟件基金會(Free Software Foundation,FSF)是一個致力於推廣自由軟件的美國民間非營利性組織。它於1985年10月由理查德·斯托曼建立。其主要工作是執行GNU計劃,開發更多的自由軟件。 從其建立到1990年代中自由軟件基金會的基金主要被用來僱用編程師來發展自由軟件。從1990年代中開始寫自由軟件的公司和個人繁多,因此自由軟件基金會的僱員和志願者主要在自由軟件運動的法律和結構問題上工作。.

查看 计算机程序的构造和解释和自由软件基金会

色情

色情作品(pornography)基本上泛指以刺激性欲為目的,而製作的性事描绘,其包括小說文章、雜誌(書刊)、明信片、相片(photograph)、雕刻成像、繪圖、動態影像或動畫、錄音及成音、电子游戏等。色情作品描绘的主體包括在靜態相片中呈現姿態的色情模特兒(pornographic model)、在色情片當中表演的色情演員或偶像明星(porn star)。色情片的演出者若不牽涉動態劇情也可僅稱模特兒。然而一些現場實況的活動——如脫衣舞等之類的——通常超出色情描述產物的一般定義範圍。虽然色情物品描繪而令人聯想到性事物,但色情物品卻不直接等同實體的動作或性事本身。 社會普遍認為與性有關的描寫是不道德、上癮的,甚至会毒害人的。被標籤為色情的事物,一般皆擬以法律作規範,並取得了不同程度的成功,該些法律會規範其對不特定人群開放的程度、展示或持有的合法性。這類理據以至色情作品一詞的定義,皆會隨著時代演變、文化淵源、各國情境等因子而有所差異。 由於社會對於性議題研討的態度漸趨寬容,而法律上對於猥褻的定義也變得更為狹窄,所以色情行業的生產和消費在20世紀後半葉上升。錄像帶與互聯網的引進更使色情業盛行至全球各地,年產值高達數十億美元;僅美國就佔據了25億美元,其中包括各式各樣的媒體、週邊產品和色情產業,在全球各地累計產值更接近千億美元的規模,僱用成千上萬的演員以及幕後支援和製作人員。與此一行業相关的組織还有專門的行業出版物貿易團體、私人組織(如)、政府機構以及政治組織。像Pornhub、RedTube、YouPorn般的色情網站一直擔任着自製或半職業色情作品的儲存庫,由色情物品的創作者免費提供(其可稱為暴露癖),其对傳統商業色情電影業構成挑戰。 在不違反法律或道德爭議的前提之下,色情商品已應用在某一些特殊的情境。例如:生育門診當中用在刺激男子取精。一些夫婦幾次使用色情商品建立“性”趣、變換情趣或用在前戲的一部分。也有一些證據表明,色情可用於治療窺陰癖。.

查看 计算机程序的构造和解释和色情

艾伦·佩利

艾倫·傑·佩利(Alan Jay Perlis,),生于美国宾夕法尼亚州匹兹堡,是美国计算机程序设计领域的科学家,首届图灵奖的获得者。.

查看 计算机程序的构造和解释和艾伦·佩利

递归

递归(Recursion),又译为--,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。.

查看 计算机程序的构造和解释和递归

LISP

LISP是具有悠久歷史的計算機編程語言家族,有獨特和完全括號的前綴符號表示法。起源於西元1958年,是現今第二悠久而仍廣泛使用的高階編程語言。只有FORTRAN編程語言比它更早一年。LISP編程語族已經演變出許多種方言。現代最著名的通用編程語種是Common Lisp和Scheme。 LISP最初創建時受到阿隆佐·邱奇的lambda演算的影響,用來作為計算機程序實用的數學表達。因為是早期的高階編程語言之一,它很快成為人工智能研究中最受歡迎的編程語言。在計算機科學領域,LISP開創了許多先驅概念,包括:.

查看 计算机程序的构造和解释和LISP

Scheme

Scheme是一种函数式编程语言,是Lisp的两种主要方言之一(另一种为Common Lisp)。不同于Common Lisp,Scheme遵循極簡主義哲学,以一个小型语言核心作为标准,加上各种强力语言工具(语法糖)来扩展语言本身。 麻省理工學院與其他院校曾采用Scheme教授计算机科学入門課程。著名的入門教材《-zh-hans:计算机程序的构造和解释;zh-hant:電腦程式的構造和解釋-》(SICP)利用Scheme來解釋程序設計 。Scheme的廣泛受眾被視為一個主要優勢,然而不同實現之間的差異成為了它的一個劣勢。 Scheme最早由麻省理工學院的蓋伊·史提爾二世與傑拉德·傑伊·薩斯曼在1970年代發展出來,並由兩人發表的「λ論文集」推廣開來。 Scheme語言與λ演算關係十分密切。小寫字母「λ」是Scheme語言的標誌。 Scheme的哲学是:设计计算机语言不应该进行功能的堆砌,而应该尽可能减少弱点和限制,使剩下的功能显得必要。Scheme是第一個使用靜態作用域的Lisp方言,也是第一个引入“干净宏”和第一类续延的编程语言。.

查看 计算机程序的构造和解释和Scheme

抽象

抽象在不同領域中的不同意思:.

查看 计算机程序的构造和解释和抽象

模因

#重定向 迷因.

查看 计算机程序的构造和解释和模因

4chan

4chan是於2003年推出的一個仿雙葉頻道(2chan)風格、以ACG相關討論為主題的美國貼圖討論版網站,原为分享圖片和討論日本動漫文化而建,現亦與英文互聯網的次文化和运动相關,許多英文網路流行物也源由於此。此網站是匿名者和玩家門網絡行動的起源,使用者也曾引起各種著名網絡攻擊事件,該網站用户大部分以匿名身份發文,其机制與具爭議的文化也引起了美國與他國媒體的關注。.

查看 计算机程序的构造和解释和4chan

另见

LISP程式語言

Scheme語言

創作共享授權書籍

计算机科学与技术书籍

麻省理工學院

亦称为 SICP,Structure and Interpretation of Computer Programs,電腦程序的構造和解釋。