發展
計算機語言也稱程式設計語言(Program Language),即編寫電腦程式所用的語言。可粗略地將計算機語言分為機器語言、彙編語言和高級語言。高級語言是接近人類習慣使用的自然語言和數學語言的電腦程式設計語言。它獨立於計算機,用戶可以不了解機器指令,也可以不必了解機器的內部結構和工作原理,就能用高級語言編寫程式。高級語言通用性好、易學習、易使用、不受機器型號的限制,而且易於交流和推廣。
早期電腦都直接採用機器語言,即用“0”和“l”為指令代碼來編寫程式,讀寫困難,編程效率極低。為了方便編程,隨即出現了彙編語言,雖然提高了效率,但仍然不夠直觀簡便。從1954年起,電腦界逐步開發了一批像FORTRAN、COBOL和ALGOL等最初的“高級語言”,採用英文辭彙、符號和數字,遵照一定的規則來編寫程式。
但是到20世紀60年代中期,美國達特默斯學院約翰·凱梅尼(J.Kemeny)和托馬斯·卡茨(T.Kurtz)認為,像FORTRAN那樣的語言都是為專業人員設計,沒有辦法普及,於是,他們在簡化FORTRAN的基礎上,研製出一種“初學者通用符號指令代碼”,簡稱BASIC。由於BASIC語言易學易用,很快就成為最流行的電腦語言之一,幾乎所有小型電腦和個人電腦都在使用它。經過不斷改進後,它一直沿用至今,出現了像QBASIC、Visual Basic(簡稱VB)等新一代BASIC版本。之後到1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,層次分明,程式易寫,具有很強的可讀性,是第一個結構化的程式語言。
1983年度的圖靈獎則授予了AT&T貝爾實驗室的兩位科學家鄧尼斯·里奇(D.Ritchie)和他的協作者肯·湯姆森(K.Thompson),以表彰他們共同發明著名的電腦語言C。C語言的設計哲學是“Keep It Simple,Stupid”,因而程式設計師可以輕易掌握整個C語言的邏輯結構,而不用一天到晚翻手冊寫代碼。於是,眾多的程式設計師投入了C語言懷抱,使C語言迅速並廣泛地傳播開來,成為當今軟體工程師最寵愛的語言之一。
分類
人們利用計算機可以完成各種各樣的工作,儘管內容不同,方法各異,但歸根結蒂都要進行程式設計,即把要解決的問題和解決的方法編成計算機能“懂”的命令,送入計算機進行處理。設計語言就是為使計算機能夠按人的意圖工作所使用的計算機能夠接受的編製程序的語言工具,設計語言按其面向對象的不同可分為面向機器的語言、面向問題的語言、面向過程的語言。按其表達指令的基本格式可分為機器語言、彙編語言和高級語言。
1.機器語言:即機器指令。它是機器設計者通過計算機的各種硬體結構所賦予機器的基本操作功能。這些用代碼形式表示的各種指令的集合就構成機器的指令系統。不同計算機其指令系統是不一樣的,不僅功能各異而且指令的類型、書寫格式、存儲方式等也不相同。利用指令系統可以編制出機器語言程式(又叫手編程式)。這種手編程式難編,難記,易出錯,不易修改,是最原始的程式設計方法。
2.彙編語言:是針對手編程式的缺點稍作改進的初級語言。它把操作代碼換成較為直觀的符號,地址碼也用所存放的內容符號來表示,與用機器語言編制的程式相比易編、易懂、易修改,但仍需逐條與特定的機器相對應,其運行速度低於用機器語言編制的程式。
3.高級語言:是採用接近於人們習慣的自然語文的形式(英語)來編製程序的語言。用高級語言編製程序,人不需要考慮機器的邏輯結構,只需考慮用一種語言來推敲解題邏輯和計算過程的描述。編制的程式不但易讀、易編、易修改、而且大大提高了通用性。
機器語言
計算機指令
計算機指令是指揮計算機進行工作的命令。由於計算機內部採用二進制,只能識別0和1兩個數字,因此,計算機指令也必須是二進制的,以便被計算機識別並執行。
早期的計算機字長是16位,即一條指令的長度是16位。所以人們用16位二進制數作為一條指令來告訴(命令)計算機進行某種操作。例如,用01000001 00001101來命令它進行加法操作,用01000001 00001110來命令它進行減法操作……這些能被計算機直接識別並執行的二進制序列,就是計算機指令。很顯然,對計算機所能做的每一種操作,都必須用唯一的一個二進制序列來表示,即需要對計算機能進行的所有操作都一一進行指令編碼。有了指令,人們便可以直接用計算機指令來編寫程式了,即用機器語言編寫程式。
機器語言的優缺點
(1)機器語言可以被計算機直接識別、執行,所以用機器語言寫的程式效率最高。
(2)機器語言是用指令編程,而成千上萬條指令很難記住,且一旦出錯很難找出錯誤。
(3)不同型號的計算機,指令編碼並不相同,因此,針對某一型計算機寫的程式移植到另外一種計算機上後,運行結果未必正確,甚至有可能根本不能運行。
彙編語言
按其功能強弱和發展的先後順序.彙編程式可以分為下面三類:
1.絕對彙編語言
絕對彙編語言AAL(Absolute Assembly Language)是用助記符表示指令的操作碼部分,而地址則用十六進制數的絕對地址或地址編移量來表示。
2.符號彙編語言
符號彙編語言SAL(Symbol Amsembly Language)是用助記符表示指令的操作碼部分,而用標號來代替絕對彙編中的十六進制絕對地址或地址的偏移量。用標號表示的運算元稱為符號。套用彙編程式將這些符號在彙編過程中自動地換成它們的絕對地址或地址的編移量,因而這給彙編語言程式設計帶來很大的方便:
①在程式中有許多指令涉及到具體的地址.如n.rln等等.在編程中要計算出這些地址或地址的偏移量是很麻煩的事.現在用符號代替了真實地址,而這些符號的真實地址則由彙編程式在彙編過程中自動完成,擔高了效率而減少了錯誤。
②對於一個子程式.套用標號一方面可表示子程式的首地址,另一方面亦可作為子程式名。調用或連線都很方便。
③在調試一個程式時,往往有增、刪等,那么被增刪的語句後面的地址將會發生變化。採用了符號地址,就可以由彙編程式自動完成這些修改,從而使程式的刪除和增添的修改工作得以簡化。
④由於引入了偽指令,進一步簡化了程式的輸入操作,從而提高了程式設計的效率。
3.宏彙編語言
宏彙編語言MSL(Macro Assemble Language)是在符號彙編的基礎上引入了宏指令。使在程式中多次出現的程式段簡單地用宏指令所定義的宏名字來代替。從而使彙編語言源程式設計進一步得到簡化。
高級語言
高級語言的種類繁多,自計算機語言問世以來已不下千餘種,但流行最廣、套用最為普遍的主要有以下幾種:
FORTRAN語言——為公式翻譯語言的縮寫,發明於50年代中期,至今仍在世界上廣泛流行,適用於解科技和工程中的數值計算問題。
ALGOL算法語法——也是一種用於數值計算的語言。它結構嚴謹,層次分明,概念清晰,是計算機語言的典型模式,但套用範圍不及前者廣泛。
COBOL語言——通用商業語言,是一種適用於數據處理的語言,因語言格式基本符合英語習慣而成為當前世界上使用最多的一種計算機語言。
BASIC語言——是一種以會話方式編寫程式的語言,語句簡單易學,常用作初學者入門的語言。
PASCAL語言——是70年代最有影響和最重要的語言之一,由ALGOL語言衍生而來,但功能更強,便於使用,因而近年來受到普遍重視,成為計算機上常備的五種語言之一。
除以上常見的幾種語言之外,隨著微型計算機的普及又推出不少新語言如C語言(強調可移植性)、LISP語言(擅長人工智慧問題)、Ada語言(實時系統語言)、FORTH語言(注重可擴充性)等,各有其不同的特長與側重點,其共同的目的是簡化編程,提高程式的通用性及工作效率。