簡介
計算機軟體實際上就是一些程式的集合,編寫程式的工作過程稱為程式設計,編寫程式時所用的語言稱為程式設計語言。程式設計語言可以分為三大類:機器語言、彙編語言和高級語言。編寫程式時,必須選擇合適的語言,既便於程式設計師編寫程式,又能使計算機按照程式的控制完成所需要的功能。
第一代:機器語言
機器語言是用
二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。它是計算機的設計者通過計算機的硬體結構賦予計算機的操作功能,每種處理器都有自已專用的機器指令集合,不同型號的計算機其機器語言是不相通的。在設計計算機
中央處理器時,設計師需要列出所有的機器指令,給每個指令分配一個二進制代碼,然後設計硬體來完成該指令的功能。
通用
電子數字計算機剛開始發明的時候,人們只能直接用這些計算機能夠直接運行的進制代碼編寫程式,所以稱這些
二進制代碼為機器語言。使用機器語言編寫程式是非常繁瑣的,程式設計師必須記住每組二進制數對應的是什麼指令。
每條機器語言指令只能執行一個非常小的任務。指令的基本格式包括:操作碼、暫存器和地址碼,其中操作碼指明了指令的操作性質及功能,暫存器是臨時存放數據的電子器件,地址碼則給出了運算元或運算元的地址。
第二代:彙編語言
為了克服機器語言的缺點,人們將機器指令的代碼用英文助記符來表示,代替機器語言中的指令和數據。例如用ADD表示加、SUB表示減、JMP表示程式跳轉等,這種指令助記符號的語言就是彙編語言,又稱符號語言。
例如,上述計算A=15+10的彙編語言程式如下:
MoV A,15:把15放入累加器A中
ADD A,10:10與累加器A中的值相加,結果仍放入A中
HLT:結束,停機
由此可見,彙編語言在一定程度上克服了機器語言難讀難改的缺點,同時保持了其編程質量高、占存儲空間少、執行速度快的優點。故在程式設計中,對實時性要求較高的地方如過程控制等,仍經常採用彙編語言。但彙編語言面向機器,使用彙編語言編程需要直接安排存儲,規定暫存器和運算器的動作次序,還必須知道計算機對數據約定的表示(定點、浮點、雙精度)等。這對大多數人員來說都不是一件簡單的事情。此外,該語言還依賴於具體型號的機器,不同的計算機在指令長度、定址方式、暫存器數目、指令表示等方面都不一樣,這樣使得彙編程式不僅通用性較差,而且可讀性也差。
用彙編語言編寫的程式,必須翻譯成計算機所能識別的機器語言後,才能被計算機執行。
第三代:高級語言
高級語言(High-level Programming Language)是高度封裝了的程式語言。它是以人類的日常語言為基礎的一種程式語言,使用一般人易於接受的文字來表示,使程式設計師編寫程式更容易,亦有較高的可讀性,以方便對計算機認知較淺的人亦可以大概明白其內容。由於早期計算機產業的發展主要在美國,因此一般的高級語言都以英語為藍本。
高級語言並不是特指的某一種具體的語言,而是包括很多程式語言,如流行的Java、C、C++、C#、Pascal、Python、BASIC等。
高級語言與計算機的硬體結構及指令系統無關,它有更強的表達能力,可方便地表示數據的運算和程式的控制結構,能更好地描述各種算法,而且容易學習掌握。
第四代:面向問題的語言
第三代語言是很有使用價值的,但是在編程上需要專門的訓練。面向問題的語言也叫第四代
計算機程式語言,它是非常高級的計算機語言,用戶只需要簡單的培訓即可程式。和解決一般問題的語言不一樣,面向問題的語言主要解決特定的問題。第三代語言的核心是過程以及一個程式是怎樣完成一個特定任務的,而第四代語言是非過程化的,它關心的是說明程式要完成的是什麼任務。第四代語言比第三代語言更接近英語,更容易編程,更廣泛地被非專業程式設計師所使用。一些第四代語言已經有了很具體的套用。比如資料庫管理系統中的查詢語言。
第五代:自然語言
儘管計算機語言經歷了幾代的發展,已經變得很像人類語言,但是,第四代語言離英語西班牙語這些人類使用的自然語言還有一段很長的距離。第五代語言的標準定義是:合成了人工智慧,允許直接的人類交流,另外,這些語言可以讓計算機像人一樣學習和處理新的信息,而不再像以前那樣鍵入特定的命令來編碼,我們可以使用英語或西班牙語這樣的自然語言或人類語言更加直接地與計算機交流。下面這句自然語言的陳述可能出現在第五代語言的醫療程式中。
如果病人感到頭暈,那么就測量體溫和血壓。
最近,第五代語言的定義已經延伸,它還包括
可視化編程語言。可視化程式語言提供了一個自然的可視化編程界面。這個界面提供了直觀的圖示,選單和繪製工具,可以用來創建程式代碼。遵循這個定義,微軟公司的可視化 BASIC語言就是第五代程式語言。