早期計算工具
人類利用工具輔助算數已有數千年的歷史,例如利用重量平衡原理所發明的秤,或是賬房拿方格布以簡易的
數據結構原理,按照高度清點錢幣堆疊。
歷史上
算盤是人類的專門用來計算的工具,在公元前五世紀
希臘的
希羅多德有紀錄埃及人有使用,後來其希臘字
άβακασ成為拉丁文、英文的
abacus。
20世紀初期,希臘人在一艘約
西元前65年遇難的沉船上,找到已有兩千年歷史的安提凱希拉儀器,據信用途是計算天體運行周期,協助古人籌備宗教節日和提醒穀物收割。此器件由37道青銅
齒輪和刻度盤組成,齒輪彼此咬合,有一組齒輪的作用甚至是模擬月球的運動方式。這項技術工藝失傳後,直到1600年後人類才有能力發明出複雜度旗鼓相當的計算機械。
1614年,
蘇格蘭數學家納皮爾發現利用加減計算乘除的方法,依此發明
對數,納皮爾在製作第一張對數表的時候,必需進行大量的乘法運算,而一條物理線的
距離或
區間可表示
真數,於是他設計出計算器
納皮爾的骨頭協助計算。到1633年,
英國牧師奧特雷德利用對數基礎,發明出一種圓形計算工具比例環(Circles of Proportion),後來逐漸演變成近代熟悉的
計算尺。直到口袋型計算器發明之前,有一整個世代的
工程師,以及跟數學沾上邊的專業人士都使用過計算尺。
美國阿波羅計畫里的工程師甚至利用計算尺就將人類送上了
月球,其精確度達到3或4位的
有效數字。
巴斯卡的滾輪式加法器
1623年,
德國科學家施卡德建造出世界已知的第一部機械式計算器,成為計算機世代之父,這部機械改良自時鐘的齒輪技術,能進行六位數的加減,並經由鐘聲輸出答案,因此又稱為“算數鐘”,可惜後來毀於火災,施卡德也因戰禍而逝。
1642年
法國數學家
帕斯卡為稅務所苦的稅務員父親發明了
滾輪式加法器,可透過轉盤進行加法運算。1673年德國數學家
萊布尼茨使用階梯式圓柱齒輪加以改良,製作出可以四則運算的步進計算器,可惜成本高昂,不受當代重視。
直到1820年之後,機械式計算器才被廣為使用。法國人湯瑪斯以萊布尼茨的設計為基礎,率先成功量產可作四則運算的機械式計算器,後來命名為湯瑪斯計算器(Thomas Arithmometer),此後機械式計算器風行草偃,直到1970年代的150年間,有十進制的
加法機、康普托計算器、門羅計算器以及
科塔計算器等相繼面市。萊布尼茨還倡導過現代電腦的核心理論──
二進制系統,不過直到1940年代(從1800年代的巴貝奇,到1946年誕生的
埃尼阿克),大部分的設計連小數點都未能兼顧。
卡片時期
19世紀的雅卡爾提花織布機
1725年,
法國紡織工人
魯修為便於轉織圖樣,在
織布機套上穿孔紙帶,他的合作夥伴則在1726年著手改良設計,將紙帶換成相互串連的穿孔卡片,以此達到僅需手工進料的半自動化生產。1801年,法國人雅卡爾發明提花織布機,利用
打孔卡控制織花圖樣,與前者不同的是,這部織布機變更連串的卡片時,無需更動機械設計,此乃可程式化機器的里程碑。
何樂禮在1880年代利用打孔卡發明制表機
美國憲法規定每十年必須進行一次
人口普查,1880年排山倒海的普查資料就花費了8年時間處理分析,因此美國統計學家
赫爾曼·何樂禮在1890年開發出一種排序機,利用打孔卡儲存資料,再由機器感測卡片,協助
美國人口調查局對統計資料進行自動化制表,結果不出3年就完成戶口普查工作。
何樂禮在1896年成立制表機器公司,幾經併購,後來成為
國際商業機器有限公司(IBM)的一部分。到了1950年,IBM的卡片已在業界與政府機構廣泛使用,為了讓卡片可作為證明檔案重複使用,卡片上都印有“請勿摺疊、捲曲或毀損”的警告字樣,這行警語後來還成為後二次大戰時期的流行標語。
直到1970年代為止,不少電腦設備仍以卡片作為處理媒介,世界各地都有科學系或工程系的大學生拿著大疊卡片到當地的電腦中心遞交作業程式,一張卡片代表一行程式,然後耐心排隊等著自己的程式被電腦中心的大型電腦處理、編譯並執行。一旦執行完畢,就會印出附有身份識別的報表,放在電腦中心外的檔案盤裡。如果最後印出一大串程式語法錯誤之類的訊息,學生就得修改後重新再跑一次執行程式。打孔卡直到今日仍未絕跡,其特殊的尺寸(80行的長度)在世界各地仍使用在各式表格、記錄和程式用途上。
程式化時期
可程式化是
通用計算機的重要定義,意即只要變更指令的儲存序列,通用計算機就能模擬其它形式的計算機。
1823年,英國數學家巴貝奇在政府的支持下,開始建造以蒸汽引擎驅動的
差分機,用來比較數字間的差異,經歷10年未能竟功,巴貝奇遂轉而研究設計得更為完整,直接利用打孔卡輸入和儲存資料的
分析機,可惜最後巴貝奇窮其畢生精力都未能造出任一完整的差分機或分析機。
巴貝奇在1835年提到,分析機是一部一般用途的可程式化計算機,同樣是以蒸汽引擎驅動,吸收提花織布機的優點,使用打孔卡輸入資料,其中的重要創新是用
齒輪模擬
算盤的算珠。他最初的計畫是打算利用打孔卡控制機器進行運算,印出高精確度的對數表(特殊用途計算機),後來才轉而開發一般用途的可程式化計算機。
儘管巴貝奇的設計健全,方向正確(至少是僅需部分修正),計畫仍因各種大小問題而阻擾不斷。一來巴貝奇難以共事,任何人不合其意便起爭端,加上他的機器全是手工打造,上千個零件只要一個零件有一點小差錯,就會引起重大錯誤,因此需要遠超尋常的製造公差。英國政府也因差分機的經驗,不願繼續資助如此先進的科技,於是資金告馨後,這項計畫就在與技工的吵吵鬧鬧中告終。
倫敦科學博物館重建的差分機
英國著名
詩人拜倫之女
愛達曾經翻譯
義大利人所寫的《分析機概論》一書,並加以註解,後來與巴貝奇發展出相當深的關係,她曾說:“分析機所織者,是代數的連續花紋”。後來愛達為分析機的打孔卡安排指令順序,因此有人認為她是世界首位程式設計師,不過也有人不以為然,關於愛達的貢獻在計算機科學上的重要性尚有不少爭論。
倫敦科學博物館在1991年成功重建巴貝奇的
差分機,其間只做過一些無關緊要的修改,差分機依照巴貝奇的原樣設計運作,證明他的理論完全正確。館方使用電腦操作工具機建造重要零件,以達到機工時期的製造公差,也有人認為當時的技術無法製造出如此精確的零件,因此這樣算是作弊,巴貝奇的失敗不僅僅歸因政治與財政,他無止盡開發越來越複雜先進的計算機也是主因之一。今日電腦界將這種不斷為產品添加功能因而延誤發表日期或為後續工作造成瓶頸的行為稱作“蔓延危機”。
桌上型時期
當年NASA飛行研究中心的“電腦室”
1900年代初期,機械式計算器、收銀機、記賬機等都被重新設計,改用電動馬達,配合變檔齒輪使其更加靈活。1930年代,四則運算已經是桌上型機械計算器的基本功能,當時電腦的英文單字“Computer”指的是一群以運算元學計算器為業的“計算師”。在
曼哈頓計畫時期,許多精通微分方程式的女性數學家都擠在房間裡當起計算師報效祖國,後來的
諾貝爾獎得主
物理學家費曼先生還當過計算師主管。即使是名聞遐邇的
波蘭數學家
烏拉姆,在戰後也曾被利用來求取
氫彈的數學似近值。
科塔計算器
1948年,科塔計算器面市,這款機械式計算器造型輕便小巧,大小約莫有如一個胡椒粉研磨器。之後整個1950年代到1960年代,各種品牌相繼面市,爭奇鬥豔,好不熱鬧。
第一部全電子化的桌上型計算器是
英國人研發的ANITA Mk.VII,以數字管和177個微型
閘流管來顯示數字。1963年6月,佛萊登計算機公司發表EC-130型計算器,這款計算器是全
電晶體設計,配備一個5吋大的
陰極射線管(CRT),可顯示13位數字,採用後置波蘭表示法,當時售價2200
美元。EC-132型計算器則新增
平方根和
倒數功能。1965年,王安實驗室研發LOCI-2型計算器,是一款可顯示10位數字的電晶體桌上型計算器,使用數字管顯示,並可執行
對數運算。
最後隨著
積體電路(IC)和
微處理器的開發,昂貴笨重的計算器後來逐漸為輕薄小巧的電子器件所取代。
模擬時期
電腦在這個時代仍屬稀有,人們對於問題的解決方案通常是寫死在表格紙上(像是
曲線圖和列線圖解),用來一併解決相似的問題,比如說暖氣機里的溫度和壓力分布。
卡方分布的列線圖解
二次大戰之前,當時的最高科技是機械式和電動式的
模擬計算機,也被認為是前途光明的計算機趨勢。模擬計算機使用連續變化的
物理量,像是電勢、流體壓力、機械運動等,處理表示待解問題中相應量的器件。例如在1936年製作得相當精巧的水流積算器。跟現代的數字電腦比起來,模擬計算機相當不具彈性,必須手動裝配(像是重新改編程式)才能處理下一個待解問題,不過早期的數字電腦能力有限,無法解決太過複雜的問題,所以當時的模擬計算機還是占有優勢。直到數字電腦越來越快,擁有越來越強的記憶能力(像是
RAM)之後,模擬計算機就迅速受到淘汰,
程式設計從此成為人類另一項專業技能。
諾頓轟炸機瞄準器
1930年,現代電腦之父萬尼瓦爾·布希發明
微分分析器,模擬計算機科技至此達到頂峰,大部分的零件都已經被製造出來,終於,
賓夕法尼亞大學的摩爾電機工程研究所打造出最具影響力的數字電子計算機──電子數值積分計算器(埃尼阿克)。埃尼阿克的誕生終結了大部分模擬計算機的生路,不過從1950年代到1960年代,由數字電子學控制的混合型模擬計算機依然活躍,之後模擬計算機就套用在部分專業用途上。
早期數字電腦
1930年代後期到1940年代,受到二次大戰影響,此一時期被認為是計算機發展史中的混亂時期,戰爭開啟了現代電腦的時代,
電子電路、
繼電器、
電容及
真空管相繼登場,取代機械器件,就連類比計算器也被數字計算器所代替。阿塔那索夫貝理電腦(ABC)、Z3電腦、巨像電腦和
埃尼阿克也在手工精心打造下誕生,使用包含繼電器或真空管的電路,以打孔卡或打孔帶作為輸入和主要(非短期)儲存媒介。
在這個時期,功能各異的電腦陸續生產,穩定發展。剛開始的時候,沒人能想像現代電腦的存在,除了為世人遺忘的巴貝奇計畫和
艾倫·圖靈的數學理論。到了這個時代的後期,電子離散順序自動計算機登場,成為第一部可儲存程式的數字電腦。此一期間的電腦系統,暫存記憶體使用延遲線存儲器迅速崛起,直到1970年代中期,幾乎取代其它形式成為最主要的暫存記憶體。
1936年,圖靈發表的研究報告對計算機和計算機科學領域造成巨大衝擊,這篇報告主要是為了證明循環處理程式的死角,亦即
停機問題的存在。圖靈也以
算法概念為通用計算機(純理論器件)作出定義,後來稱為
圖靈機,取代
哥德爾漸趨累贅的通用語言。除了記憶體限制,現代電腦已經具備
圖靈完全的條件,也就是說,現代電腦的算法執行力已與通用圖靈機相當。記憶體限制有時也被視為一般用途電腦與特殊用途電腦的差別。
一部計算機要實際成為一般用途的電腦,就必須要有像是打孔帶之類便於使用的讀寫器件,而為了要達到多功能多用途,
馮·諾伊曼結構下的記憶體可一併儲存程式和資料,當時的電腦差不多都是使用這種架構。理論上這種架構可以套用在全機械的計算機上(像巴貝奇的設計),加上電子學,使得現代電腦的特徵──執行速度加快和微型化成為可能。
二次大戰時期的電腦發展分為三道平行方向,其中有兩方不是被大為忽略,就是被慎重的隱瞞起來,一個是德國科學家
楚澤的作品,再則是英國秘密開發的巨像電腦,兩者對美國的各項計算機計畫都沒有太多影響。戰後英美計算機科學家在一些將計算機器件實用化方面則有著重要的合作經驗。
楚澤Z系列
楚澤Z1電腦的重製機
1936年,在
德國獨力研發的楚澤,開始打造以記憶能力和可程式化為特色的Z系列計算器。1938年,楚澤在
柏林父親的公寓中完成Z1電腦,完全機械製造,使用
二進位制,但是由於部分零件精確度的問題,運作並不穩定。
楚澤後續機種Z3電腦完成於1941年,使用打孔膠捲作為輸入程式的媒介,以電話型繼電器為基礎,運作順利,因此成為首部可程式控制的功能性電腦。Z3電腦在許多方面都跟現代電腦相當類似,比如說使用了
浮點數,是多項先進功能中的先鋒。楚澤揚棄不好用的十進位制(巴貝奇早期設計皆使用十進位制)取簡單的二進位制,以當時的科技工藝來說,此舉使得他的機種易於製造,較為可靠,也有人認為這是楚澤比巴貝奇成功的主要原因之一。Z3電腦雖然被人忽略,不過已在1990年代證實合乎通用電腦定義(忽略其物理儲存容量限制)。
楚澤在1936年提出兩項發明
專利,並且預言記憶儲存器件將可同時儲存電腦指令和資料,這項遠見後來發展出
馮·諾伊曼結構,1949年為英國EDSAC電腦所套用。楚澤也主張第一款電腦高階
程式語言是他所設計(Plankalkül,1945年完成,1948年發表),雖然這款程式語言直到2000年才在
柏林自由大學首度成功執行──當時楚澤已經過世5年。
二次大戰時期,楚澤的部分發明遭到
盟軍轟炸,摧毀殆盡。直到很久以後,英美工程師對他的發明仍有大片未知,IBM認識到這點,因此資助楚澤在戰後成立的公司,作為使用楚澤專利的交換。
巨像電腦
二戰期間用來破譯德國密碼的巨像電腦
二次大戰期間,英國在
布萊切利園成功破解了部分德國軍事通訊密碼,在電機設計的炸彈機協助下,德軍的
恩尼格瑪密碼機大受威脅,炸彈機是
艾倫·圖靈與高登·威奇曼仿造1938年的波蘭解密機炸彈機所設計,運用一連串的電子邏輯演繹器件找出可能是恩尼格瑪密碼機的密碼。
德國還發展出一系列與恩尼格瑪密碼機全然不同的電傳打字機加密系統,像是用於高階軍事通訊的勞倫茲密碼機,英軍代號為“鮪魚”。1941年,勞倫茲密碼機的密碼首度遭到攔截,麥斯·紐曼教授及其同僚作為破解“鮪魚”團隊的一分子,負責詳細指揮巨像電腦的操作方法。巨像電腦“馬克一號”機是1943年的3月到12月之間,由湯米·佛勞斯其同僚建造於
倫敦多利士山的郵政研究局。
巨像電腦是第一部全然電子化的電腦器件,使用了數量龐大的真空管,以紙帶作為輸入器件,能夠執行各種布爾邏輯的運算,但仍未具備
圖靈完全的標準。巨像電腦建造到第9部“馬克二號”,但是其實體器件、設計圖樣和操作方法,直到1970年代都還是一個謎。後來
溫斯頓·邱吉爾親自下達一項銷毀命令,將巨像電腦全都拆解成巴掌大小的廢鐵,巨像電腦才因此在許多計算機歷史裡都未留下一紙紀錄。英國布萊切利園目前展有巨像電腦的重建機種。
美國的發展
1937年,美國數學家兼工程師
克勞德·香農在
麻省理工學院發表他的碩士論文,是史上首度將
布爾代數套用在電子繼電器和電閘上的人。論文題為《中繼和交換電路的符號分析》(A Symbolic Analysis of Relay and Switching Circuits),是
數字電路設計的實踐基礎。
1937年11月,在
貝爾實驗室工作的喬治·史提比茲在他家廚房組裝出一部以繼電器表示二進位制的電腦“K模型機”。貝爾實驗室後來在1938年通過史提比茲提出的所有研究計畫,1940年1月8日,
複數計算器完工。1940年9月11日,在
達特茅斯學院召開的
美國數學學會會議上,作為示範,史提比茲透過電話線向複數計算器傳送遠端指令,這是電腦遠端遙控的首度實例。參與會議的目擊者包括
約翰·馮·諾伊曼、約翰·莫克利和
諾伯特·維納都在回憶錄里提過這件事。
1941年6月,
埃尼阿克發明人之一約翰·莫克利短暫拜訪了阿塔納索夫,參觀過建造期間的ABC,之後是否對埃尼阿克的設計產生影響,計算機史學家曾進行過廣泛的討論。ABC誕生後一度汲汲無名,直到一件對上埃尼阿克的專利訴訟漢威對史派瑞案才浮上檯面,多次庭辯後,在許多複雜的因素下,埃尼阿克原有的專利保護遭到取消,電子計算機的發明被歸功於愛荷華州立大學。
1939年,
馬克一號在IBM安迪卡特(Endicott)實驗室起手開發,其正式名稱為自動化循序控制計算器(ASCC), 是為一般用途的電動機械計算機,由
哈佛大學數學家霍華·艾肯總籌指揮,IBM贊助人力資金。馬克一號參考巴貝奇分析機,使用十進位制、轉輪式儲存器、旋轉式開關以及電磁繼電器,由數個計算單元平行控制,經由打孔紙帶進行程式化(改良後改由紙帶讀取器控制,並可依條件切換讀取器)。雖然馬克一號被認為是第一部
通用計算機,但其實並沒達到
圖靈完全的條件。馬克一號後來移至哈佛大學,於1944年5月開機啟用。
埃尼阿克
美國製造的
埃尼阿克(全名為電子數值積分計算器)一般被認為是世上第一部一般用途的電子計算機,公認是有效利用電子學的大型電腦。埃尼阿克是現代計算機發展史上重要的里程碑,由約翰·莫克利和約翰·伊克特指導建造,起初它以運算速度震驚世人,表現超越同期設計千倍之譜,後來更以微型化潛力留名千古。
埃尼阿克的發展建造,始於1943年,1945年完工。設計剛發表時,不少研究人員認為這上千件脆弱的零件(像是
真空管)會承受不住壓力損毀殆盡,導致埃尼阿克整天下線修整,一無事處。這也的確,但是每秒數千次的運算速度,只要零件故障前能跑上幾個鐘頭也算值回票價了。埃尼阿克是符合
圖靈完全的器件,“程式”對埃尼阿克來說,是一段電子程式儲存器到主機的距離,之間是由電纜和開關拼湊連線出來的運作狀態,不過在當時,光是能夠獨立運算這點,就已被認為是一大勝利。
約翰·馮·諾伊曼寫過一篇廣為流傳的文章《EDVAC獨家報告》(First Draft of a Report on the EDVAC),內容描述EDVAC將程式和計算中的資料,設計儲存在同一記憶體內,於是莫克利和艾克特認知到埃尼阿克的局限後,便又著手進行改良。馮·諾伊曼的這項設計後來被稱為馮·諾伊曼架構,成為發展第一部真正具有運作彈性、一般用途數字電腦的設計基礎。
首代機構機種
馮·諾伊曼結構及其機種
英國曼徹斯特科學工業博物館的“寶貝”
競逐“第一部數字儲存程式電腦”名號的還有在
劍橋大學設計建造的
延遲存儲電子自動計算器(簡稱
EDSAC),EDSAC比曼徹斯特的“寶貝”年輕一個年頭,但是解決問題的能力不遑多讓,然而實際上,啟發EDSAC的就是埃尼阿克的繼任者──離散變數自動電子計算機(簡稱
EDVAC)。不像平行處理的埃尼阿克,EDVAC只使用單一的處理單元,此一設計簡單好用,走在後來微型化趨勢的前端,還增加了可靠的程度。近代電腦結構多取經自曼徹斯特馬克一號、EDSAC和EDVAC,有些人也將其視為電腦界的“
夏娃”。
歐洲大陸第一部通用型可程式化電腦是
小型電子計算機(簡稱МЭСМ),由
蘇聯基輔電機學會的瑟吉·亞歷塞維奇·列別捷夫帶領一組科學家團隊所建造,МЭСМ在1950年開始運作,使用6000根真空管,25千瓦的電力,每秒可作3000次運算。其它早期電腦還有澳洲設計的科學與工業研究議會自動計算機(簡稱CSIRAC),在1949年作首次程式測試。
1947年,一家以飲料起家的英國餐飲公司約瑟·里昂公司,對新式的辦公室管理技術產生莫大的興趣,決定積極參與電腦的商業開發。到了1951年,里昂一號電腦起跑,執行了世上第一個辦公室電腦的例行指令。
陳列在維也納科技博物館的UNIVAC。
1951年6月,
通用自動計算機(簡稱
UNIVAC I)送抵
美國人口調查局,這部電腦由
雷明頓蘭德公司製造,卻常被誤認為是“IBM的UNIVAC”。雷明頓蘭德公司後來以每台百萬美金以上的售價,賣出46部。UNIVAC是第一部量產的電腦,使用5200根真空管,125千瓦電力,所使用的水銀延遲線存儲器能儲存11個正十位數字組1000個(72位元字組),UNIVAC不像IBM的電腦,配備有打孔卡讀卡機,1930年代風行的金屬磁帶(即UNISERVO)導入後,結果與有些商用資料儲存器件並不相容。那個年代,其它電腦都用高速的打孔帶和現代的
磁帶作為輸出輸入設備。
1951年11月,約瑟·里昂公司開始每周定期在里昂一號上,運作一支糕餅評估程式,這是第一支在程式儲存電腦上的商業應用程式。
1952年,IBM公開
IBM 701電子資料處理器,是IBM 700/7000型系列的前鋒,也是IBM的第一部大型電腦。1954年推出IBM 704,所使用的磁芯記憶體後來成為大型電腦的標準配備。第一套可執行的一般用途高階
程式語言FORTRAN也是在1955年到1956年間,IBM為IBM 704所開發的,並在1957年初發表。
1954年,IBM推出一款電腦體積較小,價格和善,後來廣受歡迎。這款IBM 650重達900公斤,附屬的電力供應器件也有1350公斤左右,兩者各安置在與人等高的櫥櫃裡。這款電腦要價50萬美金,或可以每月$3500塊美金的代價出租。原本其磁鼓記憶體只能保存2000個十位數字組,還需要晦澀難明的編程程式才能有效運作,諸如此類的記憶體限制在之後的十年間主宰了編程程式,直到編程模組一番革命性的改變後,軟體開發才有了較人性化的轉變。
第三波世代
主條目:計算機硬體歷史 (1960年代後)
第三波電腦世代來臨,電腦使用度爆炸性的成長,這些全仰賴
傑克·基爾比和
羅伯特·諾伊斯的獨立發明
積體電路(或微晶片),引領
英特爾的馬辛·霍夫和Federico Faggin佛德里克·法金髮明
微處理器。在1960年代,大量的電腦技術和過去的第二波電腦世代重疊,直到1975年後期,第二波電腦世代的機器仍在持續量產,像是UNIVAC 494。
微處理器的誕生連帶刺激
微電腦的發展,輕便小巧,物廉價美的電腦成為個人及小公司唾手可得的工具,微電腦在1970年代初登場,到了1980年代後就已經成為家家戶戶都可看到的產品了。第一款流行的
個人電腦據信是出自
蘋果電腦公司的創辦人之一
斯蒂夫·沃茲尼亞克,不過他的第一部電腦
Apple I出現得比KIM-1和
Altair 8800晚,第一部具有圖形音效能力的蘋果電腦也晚於Commodore PET。電腦逐漸成為微電腦架構的天下,再加上來自大型電腦的特色後,現如今已主宰大部分的電腦市場。