程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 匯編語言 >> 匯編語言的藝術-觀念正誤(一)

匯編語言的藝術-觀念正誤(一)

編輯:匯編語言

第一節 電腦

一、前言

電腦的到來,被喻為人類文化的第三波革命,由於它具有強大的資訊機能和彈性,正好彌補了人類記憶不足、反應遲鈍、厭於重覆和受限於時空的缺點。遂在當今世事繁雜、變化多端的動態社會中,成為人類日常工作中有力的幫手。
它之不同於人類其他的發明,是以機件的「硬體」結構,去執行可以隨設計理念而改變的「軟體」。這一來,機器便具有了靈活應用的彈性,只要有適合的軟體,它就會忠實不渝地去處理各種繁瑣的任務。
在初,它的速度及容量很低,但已有足夠的魅力,吸引了無數狂熱的有心人士,為它盡智竭力,不斷地改良更新。僅僅不過十余年,它已脫胎換骨,蔚為龍象。
這是一個嶄新的天地,凡是思路廣、創意新,能將各種抽象觀念整理成為有秩序、有條理的人,都能利用電腦的特種「語言」,發展成為實用而成功的「軟件」。隨著軟件大量的應用,工作績效顯著增進。終於,它的地位奠定了,整個人類社會的變化加速發展,對它的依賴也逐日加深。
在這種形勢下,我們要想充份掌握電腦的發展方向,就必須澈底瞭解電腦的本質,再進一步分析探討可行的、最理想的途徑。由於它還在發展階段,一定存在著許多缺陷,也正因為它並不夠完美,所以更需要我們用心力去澆灌。
二、正名

任何一個行業,其專業術語的正確性、優雅性,代表了從事該業人士的文化水准。或許有人認為文化水准不重要,那麼還有什麼更重要呢?「信、雅、達」不是一種裝飾,術語是供學習、溝通及表達之用。因此,文化水准在另一個角度來說,相當於該行業從業人員所具有的常識及智力水平。
有人稱電腦為「電子計算機」,就其源起而言,Computer確是這種定義,因為當時的電腦,僅僅具備計算能力。但是微電腦(Micro Computer)問世後,其計算能力已由小型計算器(Calculator)所取代,其主要功能反而是邏輯推理、圖形及影象處理等。
當今是一個演進淘汰極為劇烈的時代,舉凡新生事物,由產生到消失,由稚弱到茁壯,無不歷歷在目。原名計算機,現在已證明是當時觀念的不足,我們應該將錯就錯嗎?而且,趨勢所及,它必將朝向人工智能發展,成為道地的「電子」腦。所以,我們認為應該及時更正,名之為「電腦」。
此外,將Assembly Language 譯為「匯編語言」,這是理解的錯誤,因為絕大多數的程式都需要「匯編」,而Assemble的本意正是「組合」。名不正,理解就會發生偏差,對功能的實際應用就難以發揮。
最不可原諒的錯誤是因為國人好吃成性,硬把在現代科技界「假借」使用的 MENU 「清單、目錄」,全部直譯為「菜單」!我國文字原有的優越性蕩然無存矣,我無法想像當智慧電腦天天面對「菜單」時,要從何理解!
有把Program 「程式」當作「程序」,這也是對文字概念認識不夠所致,「程式」是一種具有「程序」的「式子」,而「程序」只是行事先後的「過程及順序」,讀者不可不知。
又「硬體、軟體」分指固定及可變的物理性質,「硬件、軟件」則為某一具體的物件;「套件、軟件包」是可以出售的商品;「硬、軟盤」指附屬機器上之設備;「軟盤」是可取用的磁盤。
還有 CALL 被譯為「訪問」,似乎太擬人化了,它本來就是「調用」特定子程式,名正言順,何不「調用」?Run 被譯為「跑」,則過於「寫實」。這些譯名不禁令我想到,在十多年前,1台灣曾有人將Backspace 翻譯為「後悔」,結果贻笑大方,傳為趣事。
其他此類疏誤尚多,我認為電腦界必須謙虛一些,邀請文學界專家學者,或博采眾見,以免被譏為不學無術。 
實際上,由於概念的應用日趨精密,文字本身也在不停地調整變化。以《莊子》逍遙游為例,在漢朝時作「消搖游」。後來,改成以「??」為部首,代表「動作及行為的狀態」的「逍遙游」,顯然比「消搖游」更為妥貼,於是沿用迄今。
連哲學上都如此,為什麼當今的高科技就做不到呢?

三、應用

電腦發展的初期,不論硬體、軟體,都出於個人的意向,其功能完全根據發展者自我的認知而定。
現在,電腦軟、硬體的技術迅速成長,社會上對它的要求越來越高,尤其是軟件的復雜程度,已非任何一個個人能夠掌握。於是,個人英雄主義消逝了,集體合作、功能強大的各種軟件紛紛出籠,電腦的應用普及到社會上各行各業。
人的願望是永遠無法滿足的,隨著技術的日新月異,使用者開始期待著一種萬能軟件,能一舉解決他們所有的需求。然而,電腦雖然是一種商品,其涉及的技術層次甚高,只有少數專家洞悉其中奧秘。在理論上,只要把所有已知的功能,溶匯在一個套件中,就叫做「整合軟件」,再不斷改進,必然可以符合人的需求。
這種整合軟件,對西方的功利社會而言,只是可望而不可及的理想。他們制作軟件純為了牟利,成本越低,上市越早越好。既然他們才是掌握技術的專家,而要達到斂財的目的,當然不想勞神費力,去為使用者考慮。
設計軟件的工具,稱為「程式語言」,其種類甚多,最早用的是「機器碼」,後來為了程式師使用方便,特在機器碼與編程者之間建立了一個界面,此界面所用的字匯及語法,便是「組合語言」。
由於技術發展之初,各種觀念及認識尚不完整,一般程式師都嫌組合語言太瑣碎,難學難用。故而又發展出一些比較容易應用的「高階語言」。這種高階語言制作的程式,在執行時不僅速度慢,又極占空間,使得容量有限的微電腦,常常被這種「高級」程式占滿。
雖然硬體逐年改進,而軟體工作卻也不斷增加,如果采用高階語言來制作,水漲船高之余,整合的理想仍舊遙遙無期。電腦界一直有種謬論,鹹認記憶體的容量越來越大,所以程式空間並不重要。這是最不負責任的態度!記憶體的增加,正宜用來強化電腦的功能,怎能無故揮霍浪費?
組合語言則沒有這種問題,在嚴謹的制作方式下,不僅其程式空間小,執行效率高,且制作容易。這一次,我們僅用了百余個人月,170KB 的程式,完成了有視窗、文書、試算表、資料庫、繪圖、排版及通訊等功能的整合軟件。
更進一步,我們把這個整合軟件的各個模組,繼續發展成為“整合系統模組”,提供給各系統、軟體公司,作第二次開發之用。由於利用現成模組可以節省程式制作的時間,藉著大量應用軟件的開發,以提升電腦的功能。
當然,各種電腦語言都有其優劣點,完全看設計者的理念及目的而定。原則上,其執行速度、占用的系統空間、在各個不同機種上的通用性、待處理資料的性質以及使用該語言需要的工作量等,都是必須詳加考慮的因素。


如果我們把眼光放在未來電腦的趨勢上,人工智能必將是唯一的方向。要想微電腦具有人的智能,由於對空間速度的要求,只有借助組合語言始有可能。至於目前一些人工智能專用語言,則都是過渡時期的垃圾,毫無價值!
不論從事任何工作,必須具有敏銳的眼光和判斷力,等到人人都看到了,再行動手,則只有拚命追趕的份。組合語言正是一個嶄新的領域,先把觀念建立了,再下功夫鑽研技術,將無往而不利。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved