计算机原理

**電腦**（Electronic computer）亦稱**電子計算機**，是利用類比或者數位電子技術，根據一系列指令指示並且自動執行任意算術或邏輯操作序列的裝置。通用電腦因有能遵循被稱為「程式」的一般操作集的能力而使得它們能夠執行極其廣泛的任務。

電腦被用作各種工業和娛樂裝置的控制系統。這包括簡單的特定用途裝置（如微波爐和遙控器）、工業裝置（如工業機器人和電腦晶片），及通用裝置（如個人電腦和智慧型手機之類的行動裝置）等。儘管電腦種類繁多，但根據圖靈機理論，一部具有著基本功能的電腦，應當能夠完成任何其它電腦能做的事情。因此，理論上從智慧型手機到超級電腦都應該可以完成同樣的作業（不考慮時間和儲存因素）。由於科技的飛速進步，下一代電腦總是在效能上能夠顯著地超過其前一代，這一現象有時被稱作「摩爾定律」。通過網際網路，電腦互相連接，極大地提高了資訊交換速度，反過來推動了科技的發展。在 21 世紀的現在，電腦的應用已經涉及到方方面面，各行各業了。

自古以來，簡單的手動裝置 —— 就像算盤 —— 幫助人們進行計算。在工業革命初期，各式各樣機械的出現，初衷都是為了自動完成冗長而乏味的任務，例如織機的編織圖案。更複雜的機器在 20 世紀初出現，通過類比電路進行複雜特定的計算。第一台數位電腦出現於第二次世界大戰期間。自那時以來，電腦的速度，功耗和多功能性則不斷增加。在現代，機械計算機的應用已經完全被電腦所取代。

電腦在組成上形式不一。依然有大量體積龐大的巨型電腦為特別的科學計算或面向大型組織的事務處理需求服務。比較小的、為個人應用而設計的稱為微型電腦（Personal Computer，PC），在中國地區簡稱為「微機」。今天在日常使用「電腦」一詞時通常也是指此，不過現在電腦最為普遍的應用形式卻是嵌入式，嵌入式電腦通常相對簡單、體積小，並被用來控制其它裝置 —— 無論是飛機、工業機器人還是數位相機。

同電腦相關的技術研究叫電腦科學，而「電腦技術」指的是將計算機科學的成果應用於工程實踐所衍生的諸多技術性和經驗性成果的總合。「電腦技術」與「電腦科學」是兩個相關而又不同的概念，它們的不同在於前者偏重於實踐而後者偏重於理論。至於由資料為核心的研究則稱為資訊科技。

傳統上，現代電腦包含至少一個處理單元（通常是中央處理器（CPU））和某種形式的記憶體。處理元件執行算術和邏輯運算，並且排序和控制單元可以回應於儲存的資訊改變操作的順序。外圍裝置包括輸入裝置（鍵盤、滑鼠、操縱杆等）、輸出裝置（顯示器螢幕、印表機等）以及執行兩種功能（例如觸控式螢幕）的輸入 / 輸出裝置。外圍裝置允許從外部來源檢索資訊，並使操作結果得以儲存和檢索。

## 歷史

本來，電腦的英文原詞「computer」是指從事資料計算的人。而他們往往都需要藉助某些機械計算裝置或類比電腦。

這些早期計算裝置的祖先包括有算盤，以及可以追溯到公元前 87 年的被古希臘人用於計算行星移動的安提基特拉機械。隨著中世紀末期歐洲數學與工程學的再次繁榮，1623 年德國博學家 Wilhelm Schickard 率先研製出了歐洲第一部計算裝置，這是一個能進行六位以內數加減法，並能通過鈴聲輸出答案的「計算鐘」。使用轉動齒輪來進行操作。

1642 年法國數學家布萊士・帕斯卡在英國數學家威廉・奧特雷德所製作的「計算尺」的基礎上，將其加以改進，使能進行八位計算。還賣出了許多製品，成為當時一種時髦的商品。

1801 年，法國人約瑟夫・瑪麗・雅卡爾對織布機的設計進行改進，使用一系列打孔的紙卡片來作為編織複雜圖案的程式。儘管這種被稱作「雅卡爾織布機」的機器並不被認為是一部真正的電腦，但是其可程式化性質使之被視為現代電腦發展過程中重要的一步。

查爾斯・巴貝奇於 1820 年構想和設計了第一部完全可程式化電腦。但由於技術條件、經費限制，以及無法忍耐對設計不停的修補，這部電腦在他有生之年始終未能問世。約到 19 世紀晚期，許多後來被證明對電腦科學有著重大意義的技術相繼出現，包括打孔卡片以及真空管。德裔美籍統計學家赫爾曼・何樂禮設計了一部制表用的機器，其中便應用打孔卡片來進行大規模自動資料處理。

在 20 世紀前半葉，為了迎合科學計算的需要，許多專門用途的、複雜度不斷增長的類比電腦被研製出來。這些電腦都是用它們所針對的特定問題的機械或電子模型作為計算基礎。1930－1940 年代，電腦的效能逐漸強大並且通用性得到提升，現代電腦的關鍵特色被不斷地加入進來。

1936 年，艾倫・圖靈提出了圖靈機。

1937 年，年僅 21 歲的麻省理工學院研究生克勞德・夏農發表了論文《繼電器和開關電路的符號分析》，文中首次提及數位電子技術的應用。他向人們展示了如何使用開關來實現邏輯和數學運算。此後，他通過研究萬尼瓦爾・布希的微分模擬器進一步鞏固了他的想法。這是一個標誌著二進位電子電路設計和邏輯閘應用開始的重要時刻，而這些關鍵思想誕生的先驅，應當包括：阿爾蒙・斯特羅格，他為一個含有邏輯閘電路的裝置申請了專利；尼古拉・特斯拉，他早在 1898 年就曾申請含有邏輯閘的電路裝置；李・德富雷斯特，於 1907 年他用真空管代替了繼電器。

沿著這樣一條上下求索的漫漫長途去定義所謂的「第一部電腦」可謂相當困難。1941 年 5 月 12 日，德國工程師康拉德・楚澤完成了他的圖靈完全機電一體電腦「Z3」，這是第一部具有自動二進位數學計算特色以及可行的程式化功能的電腦，但還不是「電子」電腦。此外，其他值得注意的成就主要有：

1941 年夏天誕生的阿塔納索夫 - 貝瑞電腦是世界上第一部電腦，它使用了真空管計算機，二進位數值，可復用記憶體；在英國於 1943 年被展示的神秘的巨像電腦（Colossus computer），儘管程式化能力極為有限，但是它使人們確信使用真空管既值得信賴，又能實現電氣化的再編程；哈佛大學的馬克一號；以及基於二進位的 ENIAC，全名為電子數值積分計算器，這是第一部通用意圖的電腦，但由於其結構設計不夠彈性化，導致對它的每一次再編程都要重新連接電子線路。

1940 年代的第二次世界大戰中，為訓練轟炸機飛行員，美國海軍曾向麻省理工學院探詢，是否能夠開發出一款可以控制飛行模擬器的計算機。軍方當初的設想只是希望經由該計算機將飛行員類比操作產生的數據即時反映到儀表盤上。和以前的訓練系統林克訓練機不同，軍方計劃系統能儘可能真實地根據空氣動力學模型進行類比，以使其能適用於各種不同類型的飛機。於是麻省理工創造了旋風工程，其製造出了世界上第一臺能夠即時處理資料的旋風電腦，併發明了磁芯儲存裝置。這為個人電腦的發展做出了歷史性的貢獻。

開發埃尼阿克的小組針對其缺陷又進一步改善了設計，並最終呈現出今天我們所熟知的馮・紐曼結構（程式儲存體系結構）。這個體系是當今所有電腦的基礎。
20 世紀 40 年代中晚期，大批基於此一體系的電腦開始研製，其中以英國最早。儘管第一部研製完成並投入運轉的是小規模實驗機（Small-Scale Experimental Machine，SSEM），但真正被開發出來的實用機很可能是延遲儲存電子自動計算機（EDSAC）。

在整個 1950 年代，真空管電腦居於統治地位。1958 年 9 月 12 日在後來英特爾的創始人羅伯特・諾伊斯的領導下，發明了積體電路。

不久英特爾又推出了微處理器。1959 年到 1964 年間設計的計算機一般稱為第二代計算機。

到了 1960 年代，電晶體電腦將其取而代之。電晶體體積更小，速度更快，價格更加低廉，效能更加可靠，這使得它們可以商品化生產。

1964 年到 1972 年的計算機一般被稱為第三代計算機。大量使用積體電路，典型的機型是 IBM360 系列。

到了 1970 年代，積體電路技術的引入大大地降低了電腦生產成本，電腦也從此開始走向千家萬戶。1972 年以後的計算機習慣上被稱為第四代計算機。基於大規模積體電路，及後來的超大規模積體電路。Intel 4004 是美國英特爾公司 (Intel) 推出的第 1 款微處理器，也是全球第一款微處理器；1971 年 11 月 15 日發布。1972 年 4 月 1 日，英特爾推出 8008 微處理器。1976 年，史蒂夫・賈伯斯和斯蒂夫・沃茲尼亞克創辦蘋果計算機公司。並推出其 Apple I 計算機。1977 年 5 月 Apple II 型計算機發佈。1979 年 6 月 1 日，英特爾發佈了 8 位元的 8088 微處理器。

1982 年，微電腦開始普及，大量進入學校和家庭。1982 年 1 月康懋達 64 計算機發佈，價格 595 美元。

1982 年 2 月 Intel 80286 發佈。時脈提高到 20MHz，並增加了保護模式，可存取 640KB 記憶體。支援 1MB 以上的虛擬記憶體。每秒執行 270 萬條指令，整合了 134000 個電晶體。

1990 年 11 月，微軟發佈第一代 MPC（Multimedia PC，多媒體個人電腦標準）：處理器至少為 80286/12 MHz（後來增加到 80386SX/16 MHz），有光碟機，傳輸率不少於 150 KB/sec。

1994 年 10 月 10 日英特爾發佈 75MHz 奔騰處理器。1995 年 11 月 1 日，Pentium Pro 發佈。主頻可達 200MHz，每秒鐘完成 4.4 億條指令，整合了 550 萬個電晶體。1997 年 1 月 8 日英特爾發佈 Pentium MMX，對遊戲和多媒體功能進行了增強。

此後計算機的變化日新月異，1965 年發表的摩爾定律不斷被認證，預測在 2030 年代以前依然適用。

## 原理

儘管電腦技術自 20 世紀 40 年代第一部電子通用電腦誕生以來以來有了令人目眩的快速發展，但是今天電腦仍然基本上採用的是儲存程序結構，即馮・紐曼結構。這個結構實現了實用化的通用電腦。

儲存程序結構將一部電腦描述成四個主要部分：算術邏輯單元、控制電路、記憶體及輸入輸出裝置。這些部件通過一組一組的排線連接（特別地，當一組線被用於多種不同意圖的資料傳輸時又被稱為匯流排），並且由一個時鐘來驅動（當然某些其他事件也可能驅動控制電路）。

概念上講，一部電腦的記憶體可以被視為一組「細胞」單元。每一個「細胞」都有一個編號，稱為位址；又都可以儲存一個較小的定長資訊。這個資訊既可以是指令（告訴電腦去做什麼），也可以是資料（指令的處理物件）。原則上，每一個「細胞」都是可以儲存二者之任一的。

算術邏輯單元（ALU）可以被稱作電腦的大腦。它能做兩類運算：
第一類是算術運算，比如對兩個數位進行加減法。算術運算部件的功能在 ALU 中是十分有限的，事實上，
一些 ALU 根本不支援電路級的乘法和除法運算（理由是使用者只能通過編程進行乘除法運算）。第二類是比較運算，即給定兩個數，
ALU 對其進行比較以確定哪個更大一些。

輸入輸出系統是電腦從外部世界接收資訊和向外部世界回饋運算結果的手段。對於一部標準的個人電腦，輸入裝置主要有鍵盤和滑鼠，輸出裝置則是顯示器、印表機以及其他許多後文將要討論的可連接到電腦上的 I/O 裝置。

控制系統將以上電腦各部分聯絡起來。它的功能是從記憶體和輸入輸出裝置中讀取指令和資料，對指令進行解碼，
並向 ALU 交付符合指令要求的正確輸入，告知 ALU 對這些資料做哪些運算並將結果資料返回到何處。控制系統中一個重要組件就是一個用來保持跟蹤當前指令所在位址的計數器。
通常這個計數器隨著指令的執行而累加，但有時如果指令指示進行跳轉則不依此規則。

20 世紀 80 年代以來 ALU 和控制單元（二者合稱中央處理器）逐漸被整合到一塊積體電路上，稱作微處理器。
這類電腦的工作模式十分直觀：在一個時鐘周期內，電腦先從記憶體中取得指令和資料，然後執行指令，儲存資料，再取得下一條指令。這個過程被反覆執行，直至得到一個終止指令。

由控制器解釋，運算器執行的指令集是一個精心定義的數目十分有限的簡單指令集合。一般可以分為四類：1）、資料移動
（如：將一個數值從儲存單元 A 拷貝到儲存單元 B）2）、數邏運算（如：計算儲存單元 A 與儲存單元 B 之和，結果返回儲存單元 C）3）、
條件驗證（如：如果儲存單元 A 內數值為 100，則下一條指令位址為儲存單元 F）4）、指令序列改易（如：下一條指令位址為儲存單元 F）

指令如同資料一樣在電腦內部是以二進位來表示的。比如說，10110000 就是一條 Intel x86 系列微處理器的拷貝指令代碼。
某一個電腦所支援的指令集就是該電腦的機器語言。因此，使用流行的機器語言將會使既成軟體在一部新電腦上執行得更加容易。所以對於那些機型商業化軟體開發的人來說，它們通常只會關注一種或幾種不同的機器語言。

更加強大的小型電腦，大型電腦和伺服器可能會與上述電腦有所不同。它們通常將任務分擔給不同的 CPU 來執行。今天，
微處理器和多核個人電腦也在朝這個方向發展。

超級電腦通常有著與基本的儲存程序電腦顯著區別的體系結構。它們通常有著數以千計的 CPU，
不過這些設計似乎只對特定任務有用。在各種電腦中，還有一些微控制器採用令程式和資料分離的哈佛架構（Harvard architecture）。

## 電路實現

以上所說這一些概念性設計的物理實現是多種多樣的。如同我們前述所及，一部儲存程序式電腦既可以是巴比奇的機械式的，
也可以是基於數位電子的。但是，數位電路能通過諸如繼電器之類的電子控制開關來實現使用 2 進位數的算術和邏輯運算。
夏農的論文正是向我們展示了如何排列繼電器來組成能夠實現簡單布林運算的邏輯閘。其他一些學者很快指出使用真空管可以代替繼電器電路。
真空管最初被用作無線電電路中的放大器，之後便開始被越來越多地用作數位電子電路中的快速開關。當電子管的一個針腳被通電後，電流就可以在另外兩端間自由通過。

通過邏輯閘的排列組合我們可以設計完成很多複雜的任務。舉例而言，加法器就是其中之一。
該元件在電子領域實現了兩個數相加並將結果儲存下來 — 在電腦科學中這樣一個通過一組運算來實現某個特定意圖的方法被稱做一個演算法。
最終，人們通過數量可觀的邏輯閘電路組裝成功了完整的 ALU 和控制器。說它數量可觀，只需看一下 CSIRAC 這部可能是最小的實用化電子管電腦。
該機含有 2000 個電子管，其中還有不少是雙用元件，也即是說總計合有 2000 到 4000 個邏輯裝置。

真空管對於製造規模龐大的閘電路明顯力不從心。昂貴，不穩（尤其是數量多時），臃腫，能耗高，並且速度也不夠快 — 儘管遠超機械開關電路。
這一切導致 20 世紀 60 年代它們被電晶體取代。後者體積更小，易於操作，可靠性高，更省能耗，同時成本也更低。

20 世紀 60 年代後，電晶體開始逐漸為將大量電晶體、其他各種電器元件和連接導線安置在一片矽板上的積體電路所取代。
70 年代，ALU 和控制器作為組成 CPU 的兩大部分，開始被整合到一塊晶片上，並稱為「微處理器」。沿著積體電路的發展史，可以看到一片晶片上所整合元件的數量有了飛速增長。第一塊積體電路只不過包含幾十個部件，而到了 2015 年，一塊 Intel Core i7 處理器上的電晶體數目高達十九億之巨。

無論是電子管，電晶體還是積體電路，它們都可以通過使用一種正反器設計機制來用作儲存程序體系結構中的「儲存」部件。
而事實上正反器的確被用作小規模的超高速儲存。但是，幾乎沒有任何電腦設計使用正反器來進行大規模資料儲存。
最早的電腦是使用 Williams 電子管向一個電視屏或若干條水銀延遲線（聲波通過這種線時的走行速度極為緩慢足夠被認為是「儲存」在了上面）
發無線電子束然後再來讀取的方式來儲存資料的。當然，這些儘管有效卻不怎麼優雅的方法最終還是被磁性儲存取而代之。比如說磁芯記憶體，
代表資訊的電流可在其中的鐵質材料內製造恆久的弱磁場，當這個磁場再被讀出時就實現了資料恢復。動態隨機存取記憶體亦被發明出來。它是一個包含大量電容的積體電路，而這些電容元件正是負責儲存資料電荷 — 電荷的強度則被定義為資料的值。

## 輸入輸出裝置

輸入輸出裝置（I/O）是對將外部世界資訊傳送給電腦的裝置和將處理結果返回給外部世界的裝置的總稱。
這些返回結果可能是作為使用者能夠視覺上體驗的，或是作為該電腦所控制的其他裝置的輸入：對於一部機器人，控制電腦的輸出基本上就是這部機器人本身，如做出各種行為。

第一代電腦的輸入輸出裝置種類非常有限。通常的輸入用裝置是打孔卡片的讀卡機，用來將指令和資料匯入記憶體；而用於儲存結果的輸出裝置則一般是磁帶。隨著科技的進步，輸入輸出裝置的豐富性得到提高。以個人電腦為例：鍵盤和滑鼠是使用者向電腦直接輸入資訊的主要工具，而顯示器、印表機、擴音器、耳機則返回處理結果。此外還有許多輸入裝置可以接受其他不同種類的資訊，如數位相機可以輸入圖像。在輸入輸出裝置中，有兩類很值得注意：第一類是二級儲存裝置，如硬碟，光碟或其他速度緩慢但擁有很高容量的裝置。第二個是電腦網路存取裝置，通過他們而實現的電腦間直接資料傳送極大地提升了電腦的價值。今天，國際網際網路成就了數以千萬計的電腦彼此間傳送各種類型的資料。

## 程式

簡單說，電腦程式就是電腦執行指令的一個序列。它既可以只是幾條執行某個簡單任務的指令，也可能是可能要操作巨大數據量的複雜指令佇列。許多電腦程式包含有百萬計的指令，而
其中很多指令可能被反覆執行。在 2005 年，一部典型的個人電腦可以每秒執行大約 30 億條指令。電腦通常並不會執行一些很複雜的指令來獲得額外的機能，更多地它們是在按照程式設計師的排列來執行那些較簡單但為數眾多的短指令。

一般情況下，程式設計師們是不會直接用機器語言來為電腦寫入指令的。那麼做的結果只能是費時費力、效率低下而且漏洞百出。
所以，程式設計師一般通過「進階」一些的語言來寫程式，然後再由某些特別的電腦程式，如直譯器或編譯器將之翻譯成機器語言。
一些程式語言看起來很接近機器語言，如組譯程式，被認為是低階語言。而另一些語言，如即如抽象原則的 Prolog，則完全無視電腦實際執行的操作細節，可謂是高階語言。對於一項特定任務，應該根據其事務特點，程式設計師技能，可用工具和客戶需求來選擇相應的語言，其中又以客戶需求最為重要（美國和中國軍隊的工程專案通常被要求使用 Ada 語言）。

電腦軟體是與電腦程式並不相等的另一個詞彙。電腦軟體一個較為包容性較強的技術術語，它包含了用於完成任務的各種程式以及所有相關材料。舉例說，一個電動遊戲不但只包含程式本身，也包括圖片、聲音以及其他創造虛擬遊戲環境的資料內容。在零售市場，在一部電腦上的某個應用程式只是一個面向大量使用者的軟體的一個副本。這裡老生常談的例子當然還是微軟的 office 軟體組，它包括一系列互相關聯的、面向一般辦公需求的程式。

利用那些極其簡單的機器語言指令來實現無數功能強大的應用軟體意味著其編程規模註定不小。Windows XP 這個作業系統程式包含的 C++ 高階語言原始碼達到了 4000 萬行。當然這還不是最大的。如此龐大的軟體規模也顯示了管理在開發過程中的重要性。實際編程時，程式會被細分到每一個程式設計師都可以在一個可接受的時長內完成的規模。

即便如此，軟體開發的過程仍然行程緩慢，不可預見且遺漏多多。應運而生的軟體工程學就重點面向如何加快作業進度和提高效率與品質。

### 函式庫與作業系統

在電腦誕生後不久，人們發現某些特定作業在許多不同的程式中都要被實施，比如說計算某些標準數學函式。出於效率考量，這些程式的標準版本就被收集到一個「庫」中以供各程式呼叫。許多工經常要去額外處理種類繁多的輸入輸出介面，這時，用於連接的庫就能派上用場。

20 世紀 60 年代，隨著電腦工業化普及，電腦越來越多地被用作一個組織內不同作業的處理。很快，能夠自動安排作業時序和執行的特殊軟體出現了。這些既控制硬體又負責作業時序安排的軟體被稱為「作業系統」。一個早期作業系統的例子是 IBM 的 OS/360。

在不斷地完善中，作業系統又引入了時間共享機制 —— 並行。這使得多個不同使用者可以「同時」地使用機器執行他們自己的程式，看起來就像是每個人都有一部自己的電腦。為此，作業系統需要向每個使用者提供一部「虛擬機器」來分離各個不同的程式。由於需要作業系統控制的裝置也在不斷增加，其中之一便是硬碟。因之，作業系統又引入了檔案管理和目錄管理（資料夾），大大簡化了這類永久儲存性裝置的應用。此外，作業系統也負責安全控制，確保使用者只能存取那些已獲得允許的檔案。

當然，到目前為止作業系統發展歷程中最後一個重要步驟就是為程式提供標準圖形化使用者介面。
儘管沒有什麼技術原因表明作業系統必須得提供這些介面，但作業系統供應商們總是希望並鼓勵那些執行在其系統上的軟體能夠在外觀和行為特徵上與作業系統保持一致或相似。

除了以上這些核心功能，作業系統還封裝了一系列其他常用工具。其中一些雖然對電腦管理並無重大意義，但是於使用者而言很是有用。比如，蘋果公司的 Mac OS X 就包含視訊剪輯應用程式。

一些用於更小規模的電腦的作業系統可能沒用如此眾多的功能。早期的微型電腦由於記憶體和處理能力有限而不會提供額外功能，而嵌入式電腦則使用特定化了的作業系統或者乾脆沒有，它們往往通過應用程式直接代理作業系統的某些功能。

## 應用

起初，體積龐大而價格昂貴的數位電腦主要是用做執行科學計算，特別是軍用課題。如 ENIAC 最早就是被用作火炮彈計算和設計氫彈時計算斷面中子密度的（如今許多超級電腦仍然在類比核試驗方面發揮著巨大作用）。澳大利亞設計的首部儲存程序電腦 CSIRAC 負責對水電工程中的集水地帶的降雨情形進行評估。還有一些被用於解密，比如英國的「巨像」可程式化電腦。除去這些早年的科學或軍工應用，電腦在其他領域的推廣亦十分迅速。

從一開始，儲存程序電腦就與商業問題的解決息息相關。早在 IBM 的第一部商用電腦誕生之前，英國約瑟・里昂公司就設計製造了里昂一號以進行資產管理或迎合其他商業用途。由於持續的體積與成本控制，電腦開始向更小型的組織內普及。加之 20 世紀 70 年代微處理器的發明，廉價電腦成為了現實。80 年代，個人電腦全面流行，電子文件寫作與印刷，計算預算和其他重複性的報表作業越來越多地開始依賴電腦。

隨著電腦便宜起來，創作性的藝術工作也開始使用它們。人們利用合成器，電腦圖形和動畫來創作和修改聲音，圖像，視訊。電動遊戲的產業化也說明了電腦在娛樂方面也開創了新的歷史。

電腦小型化以來，機械裝置的控制也開始仰仗電腦的支援。其實，正是當年為了建造足夠小的嵌入式電腦來控制阿波羅 1 號才刺激了積體電路技術的躍進。今天想要找一部不被電腦控制的主動機械裝置要比找一部哪怕是部分電腦控制的裝置要難得多。可能最著名的電腦控制裝置要非機器人莫屬，這些機器有著或多或少人類的外表和並具備人類行為的某一子集。在批次生產中，工業機器人已是尋常之物。不過，完全的擬人機器人還只是停留在科幻小說或實驗室之中。

機器人技術實質上是人工智慧 (AI 人工智慧) 領域中的物理表達環節。所謂人工智慧 (AI 人工智慧) 是一個定義模糊的概念但是可以肯定的是這門學科試圖令電腦擁有目前它們還沒有但作為人類卻原生的能力。數年以來，不斷有許多新方法被開發出來以允許電腦做那些之前被認為只有人才能做的事情。比如讀書、下棋。然而，到目前為止，在研製具有人類的一般「整體性」智慧型的電腦方面，進展仍十分緩慢。

### 網路、網際網路

20 世紀 50 年代以來電腦開始用作協調來自不同地方之資訊的工具，美國軍方的賢者系統（SAGE）就是這方面第一個大規模系統。之後「軍刀」等一系列特殊用途的商業系統也不斷湧現出來。

70 年代後，美國各大院校的電腦工程師開始使用電信技術把他們的電腦連接起來。由於這方面的工作得到了 ARPA 的贊助，其電腦網路也就被稱為 ARPANET。此後，用於 ARPA 網的技術快速擴散和進化，這個網路也衝破大學和軍隊的範圍最終形成了今天的網際網路。網路的出現導致了對電腦屬性和邊界的再定義。昇陽電腦公司的約翰・蓋吉和比爾・喬伊就指出：「網路即是電腦」。電腦作業系統和應用程式紛紛向能存取諸如網內其它電腦等網路資源的方向發展。最初這些網路裝置僅限於為高端科學工作者所使用，但 90 年代後隨著電子郵件和全球資訊網技術的擴散，以及乙太網路和 ADSL 等網路連接技術的廉價化，網際網路已變得無所不在。今日入網的電腦總數，何止以千萬計；無線互聯技術的普及，使得網際網路在移動計算環境中亦如影隨形。比如在筆記本電腦上廣泛使用的 Wi-Fi 技術就是無線上網的代表性應用。

90 年代之後，在電話數據機 MODEM 技術成熟後，由窄頻的電話撥接，升級成為寬頻數據，這代表網路新時代來臨，由慢跑的速度改變而成開車的速度，也同時改變電腦使用者習慣，更大大普及網路連絡傳訊的方式，如即時通或 SKYPE 等等，以往只能文字傳訊提升至影音傳輸；而雲端、大數據時代造就了各種新型態行業，如網路商店、網路電商、網路拍賣、網路銷售、網路遊戲、網路設計及架設，以及越來越普遍性的雲端數據資料庫或備份庫，正在時時優化及改變現有人類的生活。

## 下一代電腦

自問世以來數位電腦在速度和能力上有了可觀的提升，迄今仍有不少課題顯得超出了當前電腦的能力所及。
對於其中一部分課題，傳統電腦是無論如何也不可能實現的，因為找到一個解決方法的時間還趕不上問題規模的擴充速度。因此，科學家開始將目光轉向生物計算技術和量子理論來解決這一類問題。比如，人們計劃用生物性的處理來解決特定問題（DNA 計算）。由於細胞分裂的指數級增長方式，DNA 計算系統很有可能具備解決同等規模問題的能力。當然，這樣一個系統直接受限於可控制的 DNA 總量。

量子電腦，是利用了量子物理世界的超常特性，一旦能夠造出量子電腦，那麼它在速度上的提升將令一般傳統電腦難以望其項背。

如今，人們正在積極研究用許多有前途的新型技術製造電腦，例如光學電腦、DNA 電腦、神經電腦和量子電腦。 大多數電腦都是通用的，能夠計算任何可計算的函式，並且僅受其記憶體容量和執行速度的限制。 然而，不同的電腦設計可以為特定問題提供非常不同的效能； 例如，量子電腦可能會很快破解一些現代加密演算法（通過量子分解）。

## 電腦學科

在當今世界，幾乎所有專業都與電腦息息相關。但是，只有某些特定職業和學科才會深入研究電腦本身的製造、編程和使用技術，用來詮釋電腦學科內不同研究領域的各個學術名詞的涵義不斷發生變化，同時新學科也層出不窮。

* 電腦工程：是電子工程的一個分支，主要研究電腦軟硬體和二者間的彼此聯絡。
* 電腦科學：是對電腦進行學術研究的傳統稱謂。主要研究計算技術和執行特定任務的高效演算法。該門學科為我們解決確定一個問題在電腦領域內是否可解，如可解其效率如何，以及如何作成更加高效率的程式。時至今日，在電腦科學內已經衍生了許多分支，每一個分支都針對不同類別的問題進行深入研究。
* 軟體工程：著重於研究開發高品質軟體系統的方法學和實踐方式，並試圖壓縮並預測開發成本及開發周期。
* 資訊系統：研究電腦在一個廣泛的有組織環境（商業為主）中的電腦應用。

許多學科都與其他學科相互交織。如地理資訊系統專家就是利用電腦技術來管理地理資訊。

全球有三個較大規模的致力於電腦科學的組織：英國電腦學會；美國電腦協會（ACM）；美國電機電子工程師協會。

## 參考文獻

## 參見

## 外部連結

* 維基共享資源上的相關多媒體資源：電腦
* Wikiversity has a quiz on this article
* Warhol & The Computer （頁面存檔備份，存於網際網路檔案館）