# 電腦

一套個人電腦，右係主機，左係熒光幕，前面係鍵盤同滑鼠。
**電腦**即係「電子腦袋」（部嘢本身用電去行，要用人去聯，聯想到同人個腦好似），中國大陸以前叫做**計算機**或者**電算機**（即係「計算嘅機器」），係按照一系列指令（又叫程式）嚟處理數據嘅機器。

電腦用途廣泛。其實電腦係一種可以處理任何資訊嘅機器。根據邱奇-圖靈假設，即使係具有最小能力嘅電腦，只要有足夠記憶體同時間，都可以完成下至電子手帳（PDA）上至超級電腦等電腦嘅工作。因此，同樣嘅電腦設計不但可用於計算工資單，甚至可以用嚟控制無人太空穿梭機。而家電腦比起早期嘅設計無論喺速度同數據處理量方面都要高好多。而由英特爾（Intel）名譽董事長摩爾經過長期嘅觀察之後發表現嘅摩爾定律更加認為每隔18個月集成電路（IC）上面可以容納嘅電晶體數目就會增加一倍，亦暗示電腦嘅性能都會翻一翻。

電腦嘅外型有好多種，最初嘅電腦有成間戲院咁大。而家都重有咁大嘅電腦設備，而且專門用於科學計算同埋大公司（例如銀行）所需嘅事務處理，呢種超級電腦通常稱為大型機（Mainframe）；而個人使用嘅較為小型嘅電腦，稱為個人電腦（Personal Computer, PC）；便攜式可移動嘅電腦就叫做手提電腦或者膝上型電腦（Laptop Computer）。個人電腦同埋膝上型電腦係隨處可見嘅資訊處理同通訊工具，亦係廣大非專家概念中嘅「電腦」所指。不過，而家用得最多嘅電腦其實係嵌入式電腦，一種用於控制各種設備嘅電腦，用嚟控制比如飛機、數碼相機（Digital Camera, DC）等。

## 電腦嘅誕生

電腦嘅祖先包括算盤同Antikythera mechanism（公元前87年希臘人用嚟計行星運行嘅工具）。中世紀末期，歐洲數學同工程學又開始開花；1623年，Wilhelm Schickard就成功整咗第一部機械計數機。

1820年，巴貝治 (Charles Babbage) 第一個設計出可以編寫程式嘅電腦。不過由於嗰時技術有限，錢亦都唔夠，設計冇即時實現到。之但係，一啲技術好似打窿咭同埋真空管，響19世紀末證明咗喺電腦運算係好有用。Hermann Hollerith整咗部機器，可以自動處理大量打窿咭。

20世紀頭半截，有好多科學運算要用到一啲好專門同精細嘅類比電腦。呢啲電腦，直接利用機械或電學來模擬問題。不過自從有咗可以寫程式嘅數位電腦，就好少用到喇。

喺1930、40年代，更強同靈活嘅計算設備連續建成，逐漸形成現代電腦嘅雛型，譬如1937年對數位電子技術（由克勞德・沙朗發明）同更靈活嘅編造程式性能，但係咁並唔代表"第一部電腦"已經誕生。呢段時期嘅成就有，Atanasoff-Berry Computer（1937年），用閥門（真空管）去計二進制數字同埋保存記憶嘅機器；英國Colossus computer（1944年），只能夠運行小量程式但可以用閥門去重編程式；美國 Electronic Numerical Integrator and Computer（ENIAC，1946年）- 第一種真正通用機器，但重用十進制同仍有固定結構令佢每次使用都需要再次輸入程式；以及Konrad Zuse's Z machines，用機電Z3（1941年）係第一部機器去執行二進制算術同埋程式。

負責起ENIAC個小組，睇到部機嘅瑕疵，就設計咗一個更有彈性，更好嘅架構，叫做記低程式架構（stored program architecture）。佢可以話係所有現代電腦嘅基礎。1940年代尾，有唔少小組開始發展呢類電腦。第一部係響英國完成。第一部行得嘅叫小規模實驗機器（Small-Scale Experimental Machine），不過，第一部實用版就叫做EDSAC。

1950年代開始，由閥門推動嘅電腦投入服務，直到佢哋喺1960年代俾晶體管電腦取代為止。晶體管相比起閥門來講又細又快，而且價錢平啲，重更加可靠，結果晶體管就喺呢個優勢下被大量投入工業生產。到咗1970年代，集成電路嘅採用令電腦能夠喺足夠低嘅成本下，令到大眾都可以擁有一部類似現今嘅電腦。

## 電腦原理

個人電腦嘅主要結構：

1. 顯示器

2. 主機板（底板）

3. CPU（中央處理器）

4. 記憶體

5. 介面卡（如音效卡、網絡卡）

6. 電源供應器

7. 軟碟機 / 光碟機

8. 硬碟

9. 鍵盤

10. 滑鼠

雖然電腦技術喺四十年代第一代通用電子電腦後已經發生咗好大嘅變化，不過大部分電腦重喺用緊存儲程式架構（亦叫做馮諾依曼架構，加因文中描述嘅主要發明人大概係ENIAC設計師J.Presper Eckert同John William Mauchly）。該設計令共用電腦成為現實。

該架構描述嘅電腦包括四部分：計算同邏輯單元（ALU）、控制單元、內存、輸入同輸出設備（統稱I/O）。呢啲部件俾一捆線（bus）連住，一般由定時器或時鐘驅動（雖然其他事件亦可以驅動控制電路）。

概念上，電腦嘅記憶可以當做一行格仔（*cells*）。每格以一個數目做佢嘅地址，而且可以儲（音「草」，中上聲）一定量數據。

### 輸入/輸出設備

輸入/輸出設備，一般簡稱I/O（由英文input-output變化出來），係一切幫部電腦同另一部電腦或者外界溝通嘅設備嘅統稱。呢啲輸出可能係直接畀人睇嘅，亦都可以係畀另一部靠呢部電腦啲輸出來運作嘅電腦睇嘅。例如一個機械人嘅運算輸出就主要係畀佢自己啲手腳用。

相比起而家啲電腦，第一代電腦啲輸入同輸出設備就認真係有限公司。嗰陣時啲電腦靠打窿咭（punch card）做輸入，將啲嘢質入個記憶體度做計算，然後用打印機將個計算結果印出來。當時啲打印機多數係由電報機改裝出來。咁多年來，科技發展令到電腦多咗好多唔同嘅輸入輸出設備。好似而家啲個人電腦咁，鍵盤（keyboard）同埋滑鼠（mouse）就係最常用嘅輸入裝置，而熒光幕（display / monitor）就係最常用嘅輸出裝置。當然，好多時都會用到其他裝置，例如打印機、喇叭、同埋耳筒。其實而家嘅人用電腦重有好多唔同方法做輸入，數碼相機就係一個輸入視訊嘅裝置。另外重有兩種好舉足輕重嘅輸入輸出裝置，就係次級記憶裝置（secondary storage），例如硬碟（hard disk）、光碟（CD-ROM），同埋快閃記憶（key drives / flash memory），係一啲存取速度比記憶體等主要記憶裝置（primary storage）較慢但係較平、大容量嘅儲存媒體，畀人用來放資料遲啲攞番出來用或用來備份資料；另一類就係用來接駁電腦網絡，佢哋賦予咗電腦互相溝通嘅能力，令到電腦可以做嘅嘢多好多。而家快速增長緊嘅互聯網將全世界每一部電腦連埋一齊，令電腦獲取資訊越來越方便。

#### 指令

### 程式

電腦程式係一列畀電腦執行嘅指令，佢哋可以由解決簡單問題嘅幾個指令去到一啲包含數據表嘅複雜指令。好多電腦程式包含數以百萬計嘅指令，當中大部分係重覆嘅，一部普通嘅電腦可以喺一秒內執行約三十億個指令（2005年）。一部電腦行得好快，唔係因為佢哋可以執行一啲好複雜嘅指令，而係因為佢地識得根據編程員將好複雜嘅指令變成好簡單嘅程式語言之後好準確咁將佢哋執行出來。

實際上，編程員唔會用機器語言（machine code）寫程式，因為咁寫程式會令到寫程式好困難，好冇效率同埋好易出錯。雖然用程式語言寫程式都容易出錯，但係用機器語言寫程式要偵錯就真係難過登天。反之，編程員通常都會用一啲高等程式語言來寫程式，再用預先設計好嘅編譯器（compiler）或者直譯器（interpreter）將程式語言變成機器語言。有啲程式語言同機器語言好接近，例如比較低等嘅集合語言（assembly language）；另一方面，Prolog之類嘅高等程式語言就係根據抽象原則建構出來，佢哋嘅設計近乎無一絲同機器語言或者機器根底運作方法嘅關係。編程員選擇程式語言嘅時候通常根據工作本身需要、編程員本身實力同埋佢身邊可以用嘅工具來做決定。更加有啲時候，編程員用咩程式語言係取決於用家嘅需要，例如美國軍隊用嘅所有程式都要求編程員用Ada。

電腦程式有時又叫做軟件。軟件係一個比較含義廣泛嘅名詞，因為佢包函一切程式本身同埋幫助程式運作嘅數碼資訊。例如一個遊戲軟件就包括遊戲程式本身同埋好多圖像，聲音等建立遊戲虛擬環境嘅元素。一個電腦應用軟件通常透過零售途徑供給好多個用戶使用。一個典型嘅例子係一套由多種負責不同辨公室工作嘅程式組成嘅辦公室軟件。

積少成多，聚沙成塔，由一句程式碼發展成一個完整嘅應用程式，中間個過程真係好複雜。就攞Firefox出來講，佢就係由二百萬行C++夾埋寫出來；佢已經唔算最勁，有啲程式嘅規模比佢更加大，由大大隊嘅編程員日以繼夜，嘔心瀝血咁磨出來。所以，完善嘅工作管理就成為咗呢啲大單嘢成功嘅一大關鍵。程式語言同埋各種寫程式嘅技術令到工作可以斬件，不斷咁切細佢直至到每一個人嘅工作量都可以喺合理嘅時間內完成。

雖然有啲咁勁嘅野，軟件開發始終都重係一個又慢、又易錯、結果又始料不及嘅行業。軟件工程學其實已經投放咗好多資源研究點先可以令到生產過程更快、更準、更有效率，製成品更高質素。佢哋嘅研究已經見到成果。

#### 庫、操作系統

電腦發明咗冇耐之後，開始有人發現有一啲嘢原來每個程式都要用，例如各款數學函數。為提高效率起見，有人開始收集各種唔同人寫嘅函數，整成一個庫（library）。其中一種常見，發展得最快嘅係同輸入輸出裝置溝通嘅函數，因為佢哋真係個個程式都唔少得。

## 應用程式

第一個數字電腦，其巨大的規模和成本，主要是進行科學計算，往往以支持軍事目標。該埃涅阿克最初的設計計算彈道發射台的火砲，但它也可以用來計算中子截面密度，以幫助設計的氫彈 [6] [7]，大大加快其發展。 （許多最強大的超級計算機可今天還用於核武器模擬。）我的科學和工業研究谷，澳大利亞的第一個存儲程序計算機，評估降雨模式的集水區的雪山計劃，大型水利發電項目 [ 8]。另一些人用密碼分析，例如第一款可編程的（雖然不是一般用途）數字電子計算機，巨像，建於 1943年第二次世界大戰期間。儘管這個初期重點科研和軍事工程應用，電腦很快被用於其他領域。

從一開始，存儲程序的計算機被應用到商業問題。低地軌道，一個存儲程序計算機建立由J. Lyons和公司在英國，是業務和被用於庫存管理和其他用途之前，IBM公司3年建成的首個商用存儲程序的計算機。不斷降低的成本和尺寸的電腦看到他們通過不斷較小的組織。此外，隨著微處理器的發明在20世紀 70年代，就有可能產生便宜的電腦。在20世紀 80年代，個人電腦開始流行的許多任務，包括簿記，書寫和印刷文件，計算數學預測和其他重複性的任務，涉及電子表格。

由於計算機已經變得不那麼昂貴，他們已廣泛用於藝術創作好。聲音，靜止圖像和視頻已成為例行創建（通過合成器，電腦繪圖及電腦動畫），和近用電腦編輯普遍。他們也有用於娛樂，視頻遊戲成為一個巨大的產業。

計算機已經被用於控制機械設備，因為它們體積變小，夠便宜這樣做，確實是一個重大推動集成電路技術是建立一個計算機小到足以指導阿波羅任務 [9]和民兵導彈 [10]兩首主要應用在嵌入式計算機。今天，它幾乎是罕見找到動力機械裝置由計算機控制的不是比找到一個至少部分如此。也許最有名的電腦控制的機器人的機械設備，機器與較高或無人類外表和一些子集的能力。工業機器人已成為司空見慣的大規模生產，但通用類人機器人沒有辜負他們的承諾，仍然不是虛構的對口玩具或研究項目。

機器人，的確是身體上的體現了人工智能領域，一門學科，其確切的界線模糊，但在一定程度上涉及試圖給計算機的能力，他們目前不具備，但突如其來的事。多年來，已開發的方法，讓電腦做的事情以前被視為人類的專屬領域 - 例如，“讀”手寫，下棋，或進行象徵性的一體化。然而，進展創造一個計算機展覽“一般”情報相當於一個人一直非常緩慢。

### 網絡、互聯網

自1950年代，設喺唔同地方已經透過電腦去處理各種資料，例如美軍嘅SAGE系統就喺最大規模嘅電腦系統；而商業方面，就有Sabre等系統去服務唔同嘅使用者。

到1970年代，美國ARPA資助各大學電腦工程師利用電訊科技將電腦連結起來，形成ARPANET系統。
事實上，連結到網絡嘅電腦不斷大幅增加。好大比例嘅個人電腦習慣噉同互聯網連接去交流同接收資料。

## 電腦職業、學科

喺已發展社會，每個行業都會用到電腦。不過而家已經發展咗好多專業去研究電腦嘅建立、調整同運用。經過幾十年發展，電腦專業已經拓展為幾個新學科，主要嘅分類有：

* 電腦工程喺電子工程其中一個分支，以留意硬件、軟件及兩者嘅交流為主。
* 電腦科學喺一個學術科去理解同電腦有關嘅程序，例如發展不同方法去處理特定工作。呢科重處理關於利用電腦去解決問題、點樣有效率去用電腦解決問題同有效率嘅程式去計出答案嘅問題。好多電腦科學專才利用呢個學科去解決不同方面嘅問題。
* 軟件工程研究方法去使軟件變得更快、更穩定、用更少步驟去處理工作。
* 資訊系統專注電腦喺團體（尤其喺商業裏面）嘅發展同運用。
* 好多範疇嘅專業都會利用到電腦；就例如一個地理資訊專家應用電腦去管理地理資訊。

而家有兩個主要專業電腦學會，分別係美國電腦協會（The Association for Computing Machinery）同IEEE 電腦協會（IEEE Computer Society）。

## 睇埋

* 個人電腦
* 超級電腦
* 嵌機 (電腦)
* 電腦硬件史
* 資訊設備
* 微處理器
* 硬件
* 電腦軟件
* 人機介面
* 作業系統
* 微軟
* 蘋果電腦
* IBM
* 納斯達克
* 互聯網
* 英國電腦學會