電腦這個詞語,給我們的感覺是一件像我們人類腦袋的東西,擁有記憶,懂得思考,但是在英文原字Computer,其實只指是一部懂得運算的設備而已,能令一部只懂得運算的設備變成一部像我們人類般思考,懂得完成無數的工作,是隨著電腦發展而被研發出來的程式語言。到了今天,已經有數以千計的程式語言被開發出來,各有不同特色和應用的重點,電腦科學家把這些程式語言分為五個不同的「世代」(Generation)。

電腦的核心部份,是中央處理器(Central Processing Unit, CPU),它只處理兩個訊號,便是0和1,電腦科學家把某一特定的0和1組合,定義為一個指令,教導中央處理器去執得某一運作;而將一連串的指令順序供中央處理器執行,便可以令電腦完成我們所期望的工作,而這一連串的指令,便是一個程式,而組成這個程式的0和1,是中央處理器唯一可以理解的程式語言,稱作機械語言(Machine Language),這是程式語言的第一代。一連串的0和1對我們並無意義,所以機械語言的程式,多以八進制或十六進制表示,令程式可以大大縮短,雖然如此,仍然是相當難以理解,難以修改這類的程式。所以便有其他世代語言程式的出現。

由於數字對我們並無特別意義,所以電腦科學家把某一組0和1的指令,以一個類似英文的詞語代表,例如ADD便是代表了00110101這一個指令,其代表的運作是把兩個數字加起來,如此,一個只有數字的程式,便會變成一個含有我們能理解的詞語的程式,由於每一個英文的指令,便是代表某一組0和1的組合,所以電腦科學家便設計出翻譯軟件,把這些我們能理解的程式,變成只有0和1的機械語言程式,讓中央處理器執行。這樣的程式語言,稱為組合語言(Assembly Langauge),或第二代程式語言。在電腦發展的早期,組合語言己大大改善了程式員開發程式的能力。

第一個第二世代的程式語言,都只針對某一設計或某一系列的中央處理器而研發出來的,可以想像,一個為某一系列的中央處理器而開發的程式,便不可以供其他中央處理器執行。另外,這兩代程式語言,已不足以滿足電腦科學家所研究出來有關程式語言的理論。因此,便出現了之後的其他世代語言。

第三代程式語言,簡單來說,便是不再以某一中央處理器來設計,電腦科學家研發出來程式語言,更接近我們日常用的「文章」,包含了更多英文的詞語,令程式員更易理解和開發程式;當程式員寫好了程式,便以編譯器(Compiler)或直譯器(Interpreter)軟件把這些第三代程式語言的變成電腦可以理解的機械語言程式。由此開始,只要有所需的編譯器或直譯器軟件,程式員可以開發一些可供不同電腦所運作的軟件。這類更易理解,不限於某一系列中央處理器的程式語言,電腦科學家稱之為高階程式語言,而第一和第二代程式語言,便被稱為低階程式語言。

程式語言共分為五個世代,第四代和第五代都是高階程式語言,亦不是針對某一系列的中央處理器,但它們有其特定的應用;簡單來說,第四代程式語言是指令數據庫運作,而第五代程式語言是用來開發人工智能軟件。

低階程式語言和高階程式語言的分別,令筆者想到我們日常交托別人為自己工作時,我們的指示是怎樣的,是我們簡單的給別人一個指示,別人便已妥當地為我們完成,還是我們要一個個步驟去教導別人怎樣為我們完成我們所期望的工作呢?反過來看,我們本身在處理一些事情時,我們是期望別人給我們怎樣的指示呢?是簡簡單單的一句話,我們便已經可以完成,還是我們要別人仔細地講解,才能完滿地完成工作。

想一想,在工廠裡流水作業的工人,他們只須完成一個細微的工作,就好像中央處理器只能完成定義好的指令,所以他們的生產力和價值有限。在知識型經濟的社會裡,我們的價值便是我們能把高階(或高層次)的工作,運用我們的知識和經驗,把它們變成低階(或低層次)的工作,可以由自己完成,或可以轉化成為別人有能力理解和應付得來的工作,分配給其他人共同去完成;似乎我們能處理愈高層次的問題,價值便愈高,但所需的知識經驗等個人素質便愈高,亦需要更長的歲月去累積。

圖文來源:http://coursethreads.berkeley.edu/sites/default/files/imagecache/node_image/binary.jpg

[ 您可能對以下有興趣 ]

網台節目
暫時沒有相關資訊
專欄文章
[電腦告訴我的事] 物件導向
[電腦告訴我的事] 異常人生
[電腦告訴我的事] 累積智慧
影像節目
暫時沒有相關資訊
此文章之主持/專欄作家介紹:Herbert
資訊科技界資深工作者,學生時代受蘋果二代所啟蒙,沉迷電腦科技,尤其是軟件編程,大學時代主修計算機科學,最後以獲得哲學博士作完美終結。從事資訊科技行業超過二十年,對資訊科技界充滿憧憬和好奇,至今仍在追趕各項電腦新知,盼望能以資訊科技知識,令這個世界更美好。

版權所有©2013 創動力媒體 Dynamix