附錄A 計算機的0和1

附錄A 計算機的0和1

1.0 一切皆是映射

計算機領(lǐng)域中的所有問題,都可以通過向上一層進行抽象封裝來解決.這里的封裝的本質(zhì)概念胸梆,其實就是”映射“。

就好比通過的電子電路中的電平進行01邏輯映射,于是有了布爾代數(shù)惧磺,數(shù)字邏輯電路系統(tǒng)青责;

對01邏輯的進一步封裝抽象成CPU指令集映射,誕生了匯編語言嫁赏;

通過匯編語言的向上抽象一層編譯解釋器其掂,于是有了pascal,fortran潦蝇,C語言款熬;
再對核心函數(shù)api進行封裝形成開發(fā)包(Development Kit), 于是有了Java深寥,C++ 。

當然這里這么說贤牛,不是那么準確惋鹅,意思是這個意思。

從面向過程到面向?qū)ο罂梗俚皆O計模式负饲,架構(gòu)設計,面向服務喂链,各種軟件理論五花八門返十,但萬變不離其宗——你要解決一個怎樣的問題?你對這個世界的本質(zhì)認知是怎樣的椭微?你的業(yè)務領(lǐng)域的邏輯問題洞坑,流程等等。

Grady Booch:我對OO編程的目標從來就不是復用蝇率。相反迟杂,對我來說,對象提供了一種處理復雜性的方式本慕。這個問題可以追溯到亞里士多德:您把這個世界視為過程還是對象排拷?在OO興起運動之前,編程以過程為中心--例如結(jié)構(gòu)化設計方法锅尘。然而监氢,系統(tǒng)已經(jīng)到達了超越其處理能力的復雜性極點。有了對象藤违,我們能夠通過提升抽象級別來構(gòu)建更大的浪腐、更復雜的系統(tǒng)--我認為,這才是面向?qū)ο缶幊踢\動的真正勝利顿乒。


“天地和而萬物生议街,陰陽接而變化起¤甸” 《荀子·禮記》

由于涉及任務名字較多特漩,特給出簡要索引。為了行文簡潔犹菱,本章節(jié)用代號標注人名拾稳。比如Z代號Konrad Zuse。本章節(jié)人名代號縮寫:

A

Ada Lovelace, 阿達·洛芙萊斯腊脱,1815年12月10日-1852年11月27日访得,世界上第一個程序員。英國詩人拜倫之女,數(shù)學家悍抑。計算機程序創(chuàng)始人鳄炉,建立了循環(huán)和子程序概念。為計算程序擬定“算法”搜骡,寫作的第一份“程序設計流程圖”拂盯,被珍視為“第一位給計算機寫程序的人”。為了紀念阿達·奧古斯塔對現(xiàn)代電腦與軟件工程所產(chǎn)生的重大影響记靡,美國國防部將耗費巨資谈竿、歷時近20年研制成功的高級程序語言命名為Ada語言,它被公認為是第四代計算機語言的主要代表摸吠。

B

Charles Babbage空凸,查爾斯·巴貝奇(1792—1871),計算機先驅(qū)寸痢。

P

Blaise Pascal呀洲,布萊士·帕斯卡, 1623年6月19- 1662年8月19日,法國數(shù)學家啼止、物理學家道逗、哲學家、散文家献烦。

16歲時發(fā)現(xiàn)著名的帕斯卡六邊形定理:內(nèi)接于一個二次曲線的六邊形的三雙對邊的交點共線滓窍。17歲時寫成《圓錐曲線論》(1640),是研究德札爾格(Girard Desargues)射影幾何工作心得的論文巩那,包括上述定理贰您。這些工作是自希臘阿波羅尼奧斯(Apollonius of Perga)以來圓錐曲線論的最大進步。1642年他設計并制作了一臺能自動進位的加減法計算裝置拢操,被稱為是世界上第一臺數(shù)字計算器,為以后的計算機設計提供了基本原理舶替。他的論文手稿對萊布尼茨(Gottfried Leibniz)建立微積分學有很大啟發(fā)令境。

L

Gottfried Wilhelm Leibniz,萊布尼茨顾瞪,1646年7月1日-1716年11月14日舔庶,德國哲學家、數(shù)學家陈醒,歷史上少見的通才惕橙,被譽為十七世紀的亞里士多德。在1716年《致徳雷蒙先生的信——論中國的自然神教》中講述了自己的二進制源于《易經(jīng)》的過程和途徑钉跷。

T

Alan Turing, 阿蘭?麥席森?圖靈(Alan Mathison Turing弥鹦,1912.6.23—1954.6.7),英國數(shù)學家、邏輯學家彬坏,計算機之父朦促。

Z

Konrad Zuse,康拉德·楚澤1910年6月22日-1995年12月19日栓始。德國工程師务冕。他提出了計算機程序控制的基礎(chǔ)概念,于1941年Zuse首次設計完成了使用繼電器的程序控制計算機幻赚。

1.1 二進制01與易經(jīng)陰陽

二進制數(shù)是用0和1兩個數(shù)碼來表示的數(shù)禀忆。它的基數(shù)為2,進位規(guī)則是“逢二進一”落恼,借位規(guī)則是“借一當二”箩退,由18世紀德國數(shù)理哲學大師萊布尼茲發(fā)現(xiàn)。當前的計算機系統(tǒng)使用的基本上是二進制系統(tǒng)领跛。

19世紀愛爾蘭邏輯學家B對邏輯命題的思考過程轉(zhuǎn)化為對符號0乏德,1的某種代數(shù)演算,二進制是逢2進位的進位制吠昭。0喊括、1是基本算符。因為它只使用0矢棚、1兩個數(shù)字符號郑什,非常簡單方便,易于用電子方式實現(xiàn)蒲肋。

二進制的發(fā)現(xiàn)直接導致了電子計算器和計算機的發(fā)明蘑拯,并讓計算機得到了迅速的普及,進入各行各業(yè)兜粘,成為人類生活和生產(chǎn)的重要工具申窘。

二進制的實質(zhì)是通過兩個數(shù)字“0”和“1”來描述事件。在人類的生產(chǎn)孔轴、生活等許多領(lǐng)域剃法,我們可以通過計算機來虛擬地描述現(xiàn)實中存在的事件,并能通過給定的條件和參數(shù)模擬事件變化的規(guī)律路鹰。二進制的計算機幾乎是萬能的贷洲,能將我們生活的現(xiàn)實世界完美復制,并且還能根據(jù)我們?nèi)祟惤o定的條件模擬在現(xiàn)實世界難以實現(xiàn)的各種實驗晋柱。

但是优构,不論計算機能給我們?nèi)绾味嘧儭⑷绾瓮昝姥憔骸⑷绾螐碗s的畫面钦椭,其本源只是簡單的“0”和“1”。“0”和“1”在計算機中通過不同的組合與再組合玉凯,模擬出一個紛繁復雜势腮、包羅萬象的虛擬世界。

計算機世界與現(xiàn)實世界

在易經(jīng)中漫仆,我們前輩圣賢們都毫不懷疑地肯定陰陽是構(gòu)成世界的基礎(chǔ)捎拯,他們不斷地使用陰陽進行組合和再組合來描述世界萬物的變化規(guī)律——八卦贴见。

八卦

這里我們來利用二進制對陰陽概念進行置換招拙,用“陰”來表示“0”,用“陽”來表示“1”酗钞,數(shù)的二進制就等同于自然界的“陰”和“陽”吗浩,就是自然界中存在的兩種對立統(tǒng)一的兩種“能量”建芙。

二進制的“0”和“1”通過計算機里能夠創(chuàng)造出一個虛擬的、紛繁的世界懂扼。自然界中的陰陽形成了現(xiàn)實世界的萬事萬物禁荸。

所以自然世界的“陰”“陽”作為基礎(chǔ)切實地造就了復雜的現(xiàn)實世界,計算機的“0”和“1”形象地模擬現(xiàn)實世界的一切現(xiàn)象阀湿,易學中的“卦”和“陰陽爻”抽象地揭示了自然界存在的事件和其變化規(guī)律赶熟。

所以說,編程的本質(zhì)跟大自然創(chuàng)造萬物的本質(zhì)是一樣的陷嘴。

另外映砖,陰陽就是在同一個屬概念“對立統(tǒng)一(全集U)”下的兩個種概念“陰(集X)和陽(集Y)”之間的一種不相容關(guān)系。陰陽的內(nèi)涵互相否定灾挨,一個概念“陰集”肯定對象陰的屬性邑退,而否定“陽”的屬性;另一個概念“陽集”則以否定陰概念所肯定的屬性而肯定“陽”的屬性劳澄;

陰陽的外延互相排斥

X∩Y=0

而又互補

X∪Y=U=1
1-Y=X

其總和等于它們最鄰近的屬概念(對立統(tǒng)一整體)的外延地技,即兩個種概念陰陽外延的和或并

X+Y=X∪Y=U

OK,這就是我們熟知的,數(shù)理邏輯里面的所謂的bool代數(shù)了秒拔。

布爾代數(shù)起源于數(shù)學領(lǐng)域乓土,是一個用于集合運算和邏輯運算的公式:〈B,∨溯警,∧,? 〉狡相。其中B為一個非空集合梯轻,∨,∧為定義在B上的兩個二元運算尽棕,?為定義在B上的一個一元運算喳挑。
通過布爾代數(shù)進行集合運算可以獲取到不同集合之間的交集、并集或補集,進行邏輯運算可以對不同集合進行與伊诵、或单绑、非。

1.2 向上抽象封裝一層

一切皆是映射曹宴。

人的生命只有一次搂橙。生命太短暫,所以不要去做一些重復無聊的事情笛坦。能交給計算機做的区转,就盡量交給計算機去做。此乃編程的濫觴之地版扩。

縱覽整個計算機的發(fā)展史废离,最重要的思想非“抽象”莫屬。

一層層的抽象封裝了實現(xiàn)的細節(jié)礁芦,計算機開疆擴土蜻韭,南征北戰(zhàn),發(fā)展到了今天蔚為壯觀的互聯(lián)網(wǎng)柿扣,云計算肖方,大數(shù)據(jù),機器智能的時代窄刘。

同時窥妇,也使得程序員寫代碼,從最初的拿著符號表在紙袋上打孔娩践,到使用近似自然語言的高級程序設計語言來編程活翩,以及當今各種庫,api翻伺,框架材泄,集成開發(fā)工具集,智能化的編碼提示吨岭,代碼生成等等技術(shù)拉宗,使得我們現(xiàn)在程序員,能更多的去關(guān)注問題本身以及邏輯的實現(xiàn)辣辫。

從只有少數(shù)技術(shù)人會用的命令行的操作系統(tǒng)unix旦事、dos,到人性化的GUI圖形界面操作系統(tǒng)急灭,以及移動互聯(lián)網(wǎng)時代的智能設備姐浮,計算機越來越融入到人類生活的方方面面。

正如解決數(shù)學問題通常我們會談“思想”葬馋,諸如反證法卖鲤、化繁為簡等肾扰,解決計算機問題也有很多非常出色的思想。思想之所以稱為思想蛋逾,是因為“思想”有拓展性與引導性集晚,可以解決一系列問題。

解決問題的復雜程度直接取決于抽象的種類及質(zhì)量区匣。過將結(jié)構(gòu)偷拔、性質(zhì)不同的底層實現(xiàn)進行封裝,向上提供統(tǒng)一的API接口沉颂,讓使用者覺得就是在使用一個統(tǒng)一的資源条摸,或者讓使用者覺得自己在使用一個本來底層不直接提供、“虛擬”出來的資源铸屉。

計算機中的所有問題 , 都可以通過向上抽象封裝一層來解決钉蒲。

比如,在OSI參考模型中彻坛,計算機之間的信息傳送問題被分為7個較小而且更容易管理的問題顷啼,每個小問題都由模型中的一個層來解決。模型中的每一層都解決一個不同的問題昌屉。整個OSI/RM模型共分7層钙蒙,從下往上分別是:物理層、數(shù)據(jù)鏈路層间驮、網(wǎng)絡層躬厌、傳輸層、會話層竞帽、表示層扛施、應用層。如下圖所示:

the **Open Systems Interconnection model **(**OSI model**)
封裝
解封裝

其中,從最底層的物理鏈路層層層向上封裝抽象, 解決了復雜的網(wǎng)絡通信的問題.

計算機領(lǐng)域內(nèi)的任何問題,基本都可以通過向上封裝一層來解決.
同樣的,任何復雜的問題, 最終總能夠回歸最本質(zhì),最簡單.

1.3 編程之初:從機械計算機到能接受指令的計算機

1.3.1 機械計算機簡史

計算機屹篓,它的始祖應該是計算工具疙渣,這正是人類發(fā)明這種機器的初衷。英語里“Calculus”(計算)一詞來源于拉丁語堆巧,既有“算法”的含義妄荔,也“石”的意思。遠古的人們用石頭來計算捕獲的獵物谍肤,石頭就是他們的計算工具啦租。人類最早的計算工具是手指(英語單詞“Digit”釋義: 數(shù)字,手指,足趾)。中國古人常用“結(jié)繩”來幫助記事荒揣,“結(jié)繩”當然也可以充當計算工具刷钢。石頭、手指乳附、繩子…… 這些都是古人用過的“計算機”内地。

中國商周時代使用的計算工具“算籌”,是一種竹制赋除、木制或骨制的小棍。古人在地面或盤子里反復擺弄這些小棍举农,通過移動來進行計算颁糟,從此出現(xiàn)了“運籌”這個詞航背,運籌就是計算。

中國古代科學家祖沖之最先算出了圓周率小數(shù)點后的第6位玖媚,使用的工具正是算籌婚脱,這個結(jié)果即使用筆算也很不容易求得今魔。

算籌在使用中,一旦遇到復雜運算常弄得繁雜混亂错森,讓人感到不便篮洁,于是我們中國古人又發(fā)明了一種新式的計算機——算盤。

算盤

珠算盤最早可能萌芽于漢代瓦阐,定型于南北朝垄分。它利用進位制記數(shù)娃磺,通過撥動算珠進行運算:

上珠每珠當五,下珠每珠當一豺瘤,每一檔可當作一個數(shù)位坐求。

打算盤必須記住一套口訣晌梨,口訣相當于算盤的“軟件”。算盤本身還可以存儲數(shù)字泛领,使用起來的確很方便,它幫助中國古代數(shù)學家取得了不少重大的科技成果绰更,在人類計算工具史上具有重要的地位锡宋。

15世紀以后执俩,隨著天文、航海的發(fā)展丹皱,計算工作日趨繁重摊崭,迫切需要探求新的計算方法并改進計算工具杰赛。1630年乏屯,英國數(shù)學家奧特雷德使用當時流行的對數(shù)刻度尺做乘法運算,突然萌生了一個念頭:若采用兩根相互滑動的對數(shù)刻度尺蛤迎,不就省得用兩腳規(guī)度量長度嗎含友?他的這個設想導致了“機械化”計算尺的誕生窘问。

計算尺

算尺(slide rule),或計算尺惠赫,通常指對數(shù)計算尺是一個模擬計算機,通常由三個互相鎖定的有刻度的長條和一個滑動窗口(稱為游標)組成庭砍。在1970年代之前使用廣泛怠缸,之后被電子計算器所取代,成為過時技術(shù)。

1850年以后罐呼,對數(shù)計算尺迅速發(fā)展侦高,成了工程師們必不可少的隨身攜帶的“計算機”奉呛,直到20世紀五、六十年代登馒,它仍然是代表工科大學生身份的一種標志咆槽。

凝聚著許許多多科學家和能工巧匠智慧的早期計算工具秦忿,在不同的歷史階段發(fā)揮過巨大作用灯谣,但也將隨著科學發(fā)展而逐漸消亡,最終完成它們的歷史使命峻呛。

1623 年杀饵,德國科學家契克卡德制造了人類有史以來第一臺機械計算機谬擦,這臺機器能夠進行六位數(shù)的加減乘除運算惨远,并能通過鈴聲輸出答案话肖,通過轉(zhuǎn)動齒輪來進行操作最筒。

帕斯卡的加法器

1642 年床蜘,法國科學家帕斯卡發(fā)明了著名的帕斯卡機械計算機蔑水,首次確立了計算機器的概念搀别。他制造出的機械式加法機是一種系列齒輪組成的裝置,外形像一個長方盒子蒂培,用鑰匙旋緊發(fā)條后才能轉(zhuǎn)動护戳,利用齒輪傳動原理单刁,通過手工操作羔飞,來實現(xiàn)加、減運算么伯。

帕斯卡是真正的天才田柔,他在諸多領(lǐng)域內(nèi)都有建樹骨望。后人在介紹他時擎鸠,說他是數(shù)學家、物理學家袜蚕、哲學家牲剃、流體動力學家和概率論的創(chuàng)始人凿傅。凡是學過物理的人都知道一個關(guān)于液體壓強性質(zhì)的“帕斯卡定律”,這個定律就是他的偉大發(fā)現(xiàn)并以他的名字命名的夭坪。他甚至還是文學家,其文筆優(yōu)美的散文在法國極負盛名戏仓∩脱辏可惜仁热,長期從事艱苦的研究損害了他的健康,1662年英年早逝举哟,死時年僅39歲妨猩。他留給了世人一句至理名言:“人好比是脆弱的蘆葦秽褒,但是他又是有思想的蘆葦销斟。”

全世界“有思想的蘆葦”约谈,尤其是計算機領(lǐng)域的后來者窗宇,都不會忘記帕斯卡在渾沌中點燃的亮光军俊。1971年發(fā)明的一種程序設計語言——PASCAL語言,就是為了紀念這位先驅(qū)担败,使帕斯卡的英名長留在電腦時代里提前。

帕斯卡逝世后不久泳唠,與法蘭西毗鄰的德國萊茵河畔笨腥,有位英俊的年輕人正挑燈夜讀脖母。黎明時分,青年人站起身烤礁,揉了一下疲乏的腰部脚仔,臉上流露出會心的微笑舆绎,一個朦朧的設想已醞釀成熟亿蒸。雖然在帕斯卡發(fā)明加法器的時候边锁,他尚未出世,但這篇由帕斯卡親自撰寫的關(guān)于加法計算機的論文音半,卻使他似醍醐灌頂曹鸠,勾起強烈的發(fā)明欲彻桃。他就是德國大數(shù)學家、被《不列顛百科全書》稱為“西方文明最偉大的人物之一”的萊布尼茨(G.Leibnitz)眠屎。

萊布尼茨在1674年造出一臺更完美的機械計算機改衩。

帕斯卡的計算機經(jīng)由萊布尼茨的改進之后葫督,人們又給它裝上電動機以驅(qū)動機器工作板惑,成為名符其實的“電動計算機”洒放,并且一直使用到本世紀20年代才退出舞臺往湿。盡管帕斯卡與萊布尼茨的發(fā)明還不是現(xiàn)代意義上的計算機惋戏,但它們畢竟昭示著人類計算機史里的第一抹曙光响逢。

1.3.2 能接受指令的計算機

用一堆計算器舔亭、計數(shù)器、存儲器钦铺、譯碼器矛洞,造出一個能接受指令的計算機器。小心翼翼的通上電锭沟,“醒來吧识补,孩子”李请,就像給他賦予生命一般导盅,這些破銅爛鐵奇跡般的蘇醒過來白翻,按照你給他的指令,完成你想要的工作岛琼,人世間沒有比這樣的事情更讓人神往了槐瑞。

B和他的分析機和Ada的算法

1822年巴貝奇花了近10年時間困檩,構(gòu)想悼沿、研制成功了第一臺差分機糟趾,它能根據(jù)設計者的安排甚牲,自動完成高次多項式的整個運算過程丈钙,它的存儲器是由齒輪組構(gòu)成著恩,“差分機”是程序設計思想萌芽階段的產(chǎn)物。研制第二臺差分機轉(zhuǎn)眼又是10年纵顾,在研制過程中栋盹,他一味追求盡善盡美例获,對于多種部件的要求精益求精榨汤。可是這種近乎苛刻的想法與要求妓灌,超越了當時的技術(shù)水平虫埂,但卻為英國機床工業(yè)的發(fā)展培訓了不少工程師掉伏。巴貝奇花費了政府資助他的17000英鎊和他本人的13000英鎊仍然沒有制成斧散,這臺差分機研制中途夭折,被送進了倫敦博物館栗精。
  
面對挫折和失敗悲立,巴貝奇沒有氣餒新博,他從法國用穿孔卡片操縱機械化織機上的織圖裝置得到啟發(fā)赫悄,1833年又開始構(gòu)思定名為“分析機”的新自動化計算機,其開創(chuàng)性在于這是歷史上第一臺具有運算器写隶、存儲器慕趴、控制器冕房、輸入輸出器等基本部件的通用計算機耙册,并且巴貝奇在設計中還創(chuàng)造性地提出了自動制定指令序列的概念觅玻,計算機借此可不需要人的幫助從而上一步運行到下一步培漏。

1834 年牌柄,巴貝奇提出了分析機的概念珊佣,他設計的分析機共分為三個部分:堆棧咒锻,運算器惑艇,控制器滨巴。堆棧是保存數(shù)據(jù)的齒輪式寄存器恭取。運算器是對數(shù)據(jù)進行各種運算的裝置蜈垮。控制器是對操作順序進行控制牍氛,并對所要處理的數(shù)據(jù)及輸出結(jié)果加以選擇的裝置搬俊。阿達·奧古斯塔為這臺分析機的計算擬定了“算法”蜒茄,寫作了一份“程序設計流程圖”檀葛。

為了該機的設計屿聋、研制润讥,巴貝奇耗盡了畢生的精力楚殿。該“分析機”的設計方案是以齒輪為元件脆粥,以蒸氣機為動力变隔。他設計了30多種“分析機”的方案,并設計有2000多張詳細的機器圖紙和幾萬個零件的圖紙匣缘,開創(chuàng)了大規(guī)模自動化計算機研究之先河猖闪。但他關(guān)于計算機的設計思想當時卻沒有幾個人能夠理解,而且又受到當時技術(shù)條件極大限制孵户。近四十年的研制萧朝,“分析機”終未能制成岔留。巴貝奇在生命垂危之際留言道:“任何人不惜步我的后塵夏哭,而能成功地建造一個包括了數(shù)學分析的全部執(zhí)行部門的機器献联,……我就敢把我的聲譽交給他去評價竖配,因為只有他才能充分鑒賞我努力的實質(zhì)及其成果的價值何址。”1871年巴貝奇遺憾地離開了人世进胯,他留下厚厚的圖紙用爪,零散的“分析機”部件和一大堆筆記被收藏在倫敦博物館。
  
巴貝奇知音難覓胁镐,但當時英國著名詩人拜侖的女兒愛達·拉夫拉夫斯基伯爵夫人卻能理解巴貝奇的工作偎血,由于她杰出的數(shù)學天賦在英國劍橋大學就拜巴貝奇為師,不僅深深理解巴貝奇的思想并全力協(xié)助研制“分析機”盯漂,而且在經(jīng)濟上也作了最大支持颇玷。可惜愛達早逝就缆,但她在程序設計上的突出貢獻帖渠,被譽為世界第一位程序員,她的名字也與現(xiàn)代計算機程序設計語言Ada緊緊地聯(lián)系在一起竭宰。
  
巴貝奇去逝前的著名留言被后來制成自動程序控制的機電式計算機—MARK—I的研制者美國科學家霍華德·艾肯博士所引用空郊,并將其寫到MARK—I的說明書上,因為艾肯博士的研制完全是受到當時保存良好的巴貝奇科研資料啟發(fā)切揭,艾肯還認為巴貝奇的這段話簡直就是對他的說的狞甚,巴貝奇設計思想不僅啟發(fā)后人,而且他當時要制成“分析機”的理想伴箩,也于二十一世紀九十年代入愧,由英國政府花巨款,在倫敦將它按原樣設計制造成功并作展示嗤谚,人們無不為之設計的巧妙而加以贊嘆棺蛛,巴貝奇無愧于自動化計算機研制的先驅(qū)。

Z和他的機器Z1-Z4

1945年巩步,就在盟軍攻陷法西斯德國的首都柏林后不久旁赊,從阿爾卑斯山區(qū)偏僻小鎮(zhèn)欣特斯泰因傳來一個驚人的消息:一個糧倉地窖里發(fā)現(xiàn)了德國研制的先進計算機。

兩名英國情報官聞訊匆匆趕到了欣特斯泰因椅野。在攻占該鎮(zhèn)的法國士兵帶領(lǐng)下终畅,打開了糧倉地窖大門。地窖里面確實存放著一臺機器竟闪。情報官湊上前仔細打量离福,這機器怎么看也不像是德國的“先進計算機”,充其量是某個印刷廠遺棄的排字機炼蛤。兩人互相對視著苦笑了一陣:“德軍再傻妖爷,也不會把這么重要的設備放在交通極為不便的山區(qū)±砼螅”

過了很長時間之后絮识,西方計算機界終于認識到绿聘,這臺貌不驚人的機器,的確是當時最先進的計算機次舌,它研制成功的時間熄攘,要比美國、英國的同類發(fā)明更早彼念;更重大的意義還在于挪圾,它是最先采用程序控制的數(shù)字計算機。這臺機器的名稱是Z-4逐沙,它的發(fā)明人就是Konrad Zuse洛史。

Z在父母的幫助下,把家中的起居室隔出一間酱吝,改造成“實驗室”兼“制造廠”也殖,孤身一人開始了漫長的研制生涯。

Z認為务热,計算機最重要的部分不一定是計算本身忆嗜,而是過程和計算結(jié)果的傳送和儲存。

因此崎岂,他把研究的重點放在存儲器上捆毫,設計了一種可以存儲64位數(shù)的機械裝置——數(shù)千片薄鋼板用螺栓擰在一起的笨重部件,體積約1立方米——然后與機械運算機構(gòu)連接起來冲甘。朋友們都不太懂他想干什么绩卤,只能提供有限的幫助,例如江醇,幫他用切割設備加工了數(shù)以百計的金屬片濒憋。其它的薄鋼板,只好靠手鋸在圓鋼上一片一片鋸下來陶夜。以這種簡陋的條件凛驮,1938年,Z居然完成了一臺可編程數(shù)字計算機Z-1条辟。他花光了僅有的幾千馬克黔夭,還是無法買到更合適的零件。因此羽嫡,Z-1計算機實際上是一臺實驗模型本姥,雖然可以完成3×3矩陣運算過程,但始終未能投入實際使用杭棵。

Z-1計算機最大的貢獻是第一次采用了二進制數(shù)婚惫,在薄鋼板組裝的存儲器中,楚澤用一個在細孔中移動的針,指明數(shù)字“0”或“1”辰妙。這是受到L的啟發(fā),他后來發(fā)表的研究報告甫窟,副題就是“向萊布尼茨致敬”密浑。這臺機器也采用了“穿孔帶”輸入程序,不過不是紙帶粗井,而是35毫米電影膠片尔破;數(shù)據(jù)則由一個數(shù)字鍵盤敲入,計算結(jié)果用小電燈泡顯示浇衬。由于純機械式Z-1計算機性能不理想懒构,第二年,楚澤的朋友給了他一些電話公司廢棄的繼電器耘擂,楚澤用它們組裝了第二臺電磁式計算機Z-2胆剧, 這臺機器已經(jīng)可以正常工作。

1941年醉冤,第三臺電磁式計算機Z-3完成秩霍,使用了2600個繼電器,用穿孔紙帶輸入蚁阳,實現(xiàn)了二進制數(shù)程序控制铃绒。

程序控制的想法雖然過去也有人提倡,但Z是把它付諸實施的第一人螺捐。

Z-3能達到每秒3~4次加法的運算速度颠悬,或者在3~5秒內(nèi)完成一次乘法運算。1942年定血,在緊張研究的間隙里赔癌,他寫作了世界上第一個下國際象棋的計算機程序。

Z-3正常工作了3年澜沟。1944年届榄,美國空軍對柏林實施空襲,Z的住宅連同Z-3計算機一起被炸得支離破碎倔喂。在德國法西斯即將毀滅前夕铝条,Z于1945年又建造了一臺比Z-3更先進的電磁式Z-4計算機,存儲器單元也從64位擴展到1024位席噩,繼電器幾乎占滿了一個房間班缰。為了使機器的效率更高,Z甚至設計了一種編程語言Plankalkuel 悼枢,這一成果使楚澤也躋身于計算機語言先驅(qū)者行列埠忘。

因害怕再次被炸,Z把Z-4搬來搬去,四處轉(zhuǎn)移莹妒,最后帶著它飛往德國南部名船,搬到了阿爾卑斯山區(qū)欣特斯泰因小鎮(zhèn),于是才有了前面那一幕旨怠。

希特勒戰(zhàn)敗后渠驼,Z輾轉(zhuǎn)流落到瑞士一個荒涼的村莊,一度轉(zhuǎn)向研究計算機軟件理論鉴腻,最早提出了“程序設計”的概念迷扇。1949年,楚澤把他的Z-4計算機安裝在瑞士蘇黎士技術(shù)學院爽哎,并且一直穩(wěn)定地運行到1958年蜓席。這時,美课锌、英計算機界才相信德國有位建筑工程師厨内,比他們更早地研制出程序控制數(shù)字計算機的事實。目前渺贤,在慕尼黑一家博物館里隘庄,仍然存放著一臺Z-3原型機,只是它已經(jīng)無法正常運作癣亚。

隨后丑掺,Z創(chuàng)辦了“Z計算機公司”,1958年研制出電子管通用計算機Z-22R述雾,距離第一臺電子管通用計算機ENIAC誕生已經(jīng)過去了12年之久街州。

如果Z不是生活在法西斯統(tǒng)治下的德國,他可能早就把Z型計算機系列升級為電子計算機玻孟,世界計算機的歷史將會改寫唆缴。事實上,早在1938年黍翎,Z和他的朋友已經(jīng)在考慮用2000個電子管和其他電子元件組裝新的計算機面徽。當他在戰(zhàn)后聽說美國賓夕法尼亞大學早已研制出電子管計算機的消息,不禁感嘆地說:“我所能做的匣掸,僅僅是搖搖頭而已趟紊。”讀來碰酝,令人唏噓不已霎匈。歷史往往不由人決定江锨。真實的歷史夸盟,總是比人們想象中的要殘酷許多。

圖靈(T)和他的機器戀人克里斯托弗

1931年圖靈進入劍橋大學國王學院戚炫,畢業(yè)后到美國普林斯頓大學攻讀博士學位,二戰(zhàn)爆發(fā)后回到劍橋墨吓,后曾協(xié)助軍方破解德國的著名密碼系統(tǒng)Enigma球匕,幫助盟軍取得了二戰(zhàn)的勝利。

1936年帖烘,圖靈向倫敦權(quán)威的數(shù)學雜志投了一篇論文亮曹,題為“論數(shù)字計算在決斷難題中的應用”。在這篇開創(chuàng)性的論文中蚓让,圖靈給“可計算性”下了一個嚴格的數(shù)學定義,并提出著名的“圖靈機”(Turing Machine)的設想讥珍。

示意圖
圖靈機工作原理圖

“圖靈機”不是一種具體的機器历极,而是一種思想模型,可制造一種十分簡單但運算能力極強的計算裝置衷佃,用來計算所有能想象得到的可計算函數(shù)趟卸。

“圖靈機”與“馮?諾伊曼機”齊名,被永遠載入計算機的發(fā)展史中氏义。

1950年10月锄列,圖靈又發(fā)表了另一篇題為“機器能思考嗎”的論文,成為劃時代之作惯悠。也正是這篇文章邻邮,為圖靈贏得了“人工智能之父”的桂冠。

你能理解《模擬游戲》中Turing對克里斯托弗(電影《模仿游戲》圖靈將這臺機器命名為克里斯托弗)的一往情深嗎克婶?

圖靈機:克里斯托弗

小結(jié)

《易傳·系辭上傳》:“易有太極筒严,是生兩儀,兩儀生四象情萤,四象生八卦鸭蛙。” 如今的互聯(lián)網(wǎng)世界筋岛,其基石卻是01(陰陽)娶视,不得不佩服我華夏先祖的博大精深的智慧。

最初睁宰, 人們使用物理的或邏輯的二進制機器指令來編寫程序肪获, 嘗試著表達思想中的邏輯, 控制硬件計算和顯示柒傻, 發(fā)現(xiàn)是可行的贪磺;

接著, 創(chuàng)造了助記符 —— 匯編語言诅愚, 比機器指令更容易記憶寒锚;

再接著劫映, 創(chuàng)造了編譯器、解釋器和計算機高級語言刹前, 能夠以人類友好自然的方式去編寫程序泳赋, 在犧牲少量性能的情況下, 獲得比匯編語言更強且更容易使用的語句控制能力:條件喇喉、分支祖今、循環(huán), 以及更多的語言特性: 指針拣技、結(jié)構(gòu)體千诬、聯(lián)合體、枚舉等膏斤, 還創(chuàng)造了函數(shù)徐绑, 能夠?qū)⒁幌盗兄噶罘庋b成一個獨立的邏輯塊反復使用;

逐漸地莫辨,產(chǎn)生了面向過程的編程方法傲茄;

后來, 人們發(fā)現(xiàn)將數(shù)據(jù)和邏輯封裝成對象沮榜, 更接近于現(xiàn)實世界盘榨, 且更容易維護大型軟件, 又出現(xiàn)了面向?qū)ο蟮木幊陶Z言和編程方法學蟆融, 增加了新的語言特性: 繼承草巡、 多態(tài)、 模板型酥、 異常錯誤捷犹。

為了不必重復開發(fā)常見工具和任務, 人們創(chuàng)造和封裝了容器及算法冕末、SDK萍歉, 垃圾回收器, 甚至是并發(fā)庫档桃;

為了讓計算機語言更有力更有效率地表達各種現(xiàn)實邏輯枪孩, 消解軟件開發(fā)中遇到的沖突, 還在語言中支持了元編程藻肄、 高階函數(shù)蔑舞, 閉包 等有用特性。

為了更高效率地開發(fā)可靠的軟件和應用程序嘹屯, 人們逐漸構(gòu)建了代碼編輯器攻询、 IDE、 代碼版本管理工具州弟、公共庫钧栖、應用框架低零、 可復用組件、系統(tǒng)規(guī)范拯杠、網(wǎng)絡協(xié)議掏婶、 語言標準等, 針對遇到的問題提出了許多不同的思路和解決方案潭陪, 并總結(jié)提煉成特定的技術(shù)和設計模式雄妥, 還探討和形成了不少軟件開發(fā)過程, 用來保證最終發(fā)布的軟件質(zhì)量依溯。 盡管編寫的這些軟件和工具還存在不少 BUG 老厌,但是它們都“奇跡般地存活”, 并共同構(gòu)建了今天蔚為壯觀的互聯(lián)網(wǎng)時代的電商黎炉,互聯(lián)網(wǎng)金融枝秤,云計算,大數(shù)據(jù)拜隧,物聯(lián)網(wǎng)宿百,機器智能等等的“虛擬世界”趁仙。


參考資料

http://amuseum.cdstm.cn/AMuseum/xinxiguan/htm/skzljisuanji.htm

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洪添,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子雀费,更是在濱河造成了極大的恐慌干奢,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盏袄,死亡現(xiàn)場離奇詭異忿峻,居然都是意外死亡,警方通過查閱死者的電腦和手機辕羽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門逛尚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刁愿,你說我怎么就攤上這事绰寞。” “怎么了铣口?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵滤钱,是天一觀的道長。 經(jīng)常有香客問我脑题,道長件缸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任叔遂,我火速辦了婚禮他炊,結(jié)果婚禮上争剿,老公的妹妹穿的比我還像新娘。我一直安慰自己佑稠,他們只是感情好秒梅,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著舌胶,像睡著了一般捆蜀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上幔嫂,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天辆它,我揣著相機與錄音,去河邊找鬼履恩。 笑死锰茉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的切心。 我是一名探鬼主播飒筑,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绽昏!你這毒婦竟也來了协屡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤全谤,失蹤者是張志新(化名)和其女友劉穎肤晓,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體认然,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡补憾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了卷员。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盈匾。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖毕骡,靈堂內(nèi)的尸體忽然破棺而出削饵,到底是詐尸還是另有隱情,我是刑警寧澤挺峡,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布葵孤,位于F島的核電站,受9級特大地震影響橱赠,放射性物質(zhì)發(fā)生泄漏尤仍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一狭姨、第九天 我趴在偏房一處隱蔽的房頂上張望宰啦。 院中可真熱鬧苏遥,春花似錦、人聲如沸赡模。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漓柑。三九已至教硫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辆布,已是汗流浹背瞬矩。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锋玲,地道東北人景用。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像惭蹂,于是被迫代替她去往敵國和親伞插。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

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

  • 附錄1 計算機簡史 1.0 一切皆是映射 計算機領(lǐng)域中的所有問題,都可以通過向上一層進行抽象封裝來解決.這里的封裝...
    光劍書架上的書閱讀 1,236評論 0 10
  • 無處不在盾碗、無所不能的電腦媚污,已歷經(jīng)了50多個春華秋實。50余年在人類的歷史長河中只是一瞬間置尔,電腦卻徹底改變了我們的生...
    闊爺閱讀 3,425評論 0 12
  • 把你當作精神寄托 若離去 瞬間世界崩塌
    愛花癡閱讀 196評論 0 0
  • 廣州銀光軟件科技有限公司成立于2006年初杠步,由行業(yè)管理顧問和軟件技術(shù)專業(yè)人才組建氢伟,是國家高新技術(shù)科技企業(yè)榜轿。立足于互...
    y3soft1804閱讀 3,365評論 0 0
  • 不知道什么時候,“細思極恐”這個詞出現(xiàn)在我的周圍朵锣。老實說谬盐,一開始的時候?qū)@個詞并沒有什么感覺,有時候會佩服別人可以...
    冷小血閱讀 1,390評論 0 0