計算機語言計算機語言主要分為四類: - 低階語言 - 高階語言 - 專用語言 - 指令碼語言低階語言 - 機器語言、組合語言和符號語言。 - 組合語言源程式必須經過彙編,生成目標檔案,然後執行。高階語言 - BASIC(True basic、Qbasic、Virtual Basic)、C、C++、PASCAL、FORTRAN、智慧化語言(LISP、Prolog、CLIPS、OpenCyc、Fazzy)、動態語言(Python、PHP、Ruby、Lua)等等。 - 高階語言源程式可以用解釋、編譯兩種方式執行。通常用後一種。 我們使用的C語言就是使用的後者。專用語言 CAD系統中的繪圖語言和DBMS的資料庫查詢語言。 1.1.機器語言 機器語言是指一臺計算機全部的指令集合 電子計算機所使用的是由"0"和"1"組成的二進位制數,二進位制是計算機的語言的基礎。計算機發明之初,人們只能降貴紆尊,用計算機的語言去命令計算機幹這幹那,一句話,就是寫出一串串由"0"和"1"組成的指令序列交由計算機執行,這種計算機能夠認識的語言,就是機器語言。使用機器語言是十分痛苦的,特別是在程式有錯需要修改時,更是如此。 計算機語言因此程式就是一個個的二進位制檔案。一條機器語言成為一條指令。指令是不可分割的最小功能單元。而且,由於每臺計算機的指令系統往往各不相同,所以,在一臺計算機上執行的程式,要想在另一臺計算機上執行,必須另程式設計序,造成了重複工作。但由於使用的是針對特定型號計算機的語言,故而運算效率是所有語言中最高的。機器語言,是第一代計算機語言。 1.2.組合語言 為了減輕使用機器語言程式設計的痛苦,人們進行了一種有益的改進:用一些簡潔的英文字母、符號串來替代一個特定的指令的二進位制串,比如,用"ADD"代表加法,"MOV"代表資料傳遞等等,這樣一來,人們很容易讀懂並理解程式在幹什麼,糾錯及維護都變得方便了,這種程式設計語言就稱為組合語言,即第二代計算機語言。然而計算機是不認識這些符號的,這就需要一個專門的程式,專門負責將這些符號翻譯成二進位制數的機器語言,這種翻譯程式被稱為彙編程式。 組合語言同樣十分依賴於機器硬體,移植性不好,但效率仍十分高,針對計算機特定硬體而編制的組合語言程式,能準確發揮計算機硬體的功能和特長,程式精煉而質量高,所以至今仍是一種常用而強有力的軟體開發工具。 1.3.高階語言 1.3.1.高階語言的發展 從最初與計算機交流的痛苦經歷中,人們意識到,應該設計一種這樣的語言,這種語言接近於數學語言或人的自然語言,同時又不依賴於計算機硬體,編出的程式能在所有機器上通用。經過努力,1954年,第一個完全脫離機器硬體的高階語言--FORTRAN問世了,40 多年來,共有幾百種高階語言出現,有重要意義的有幾十種,影響較大、使用較普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、JAVA等。 特別要提到的:在C語言誕生以前,系統軟體主要是用匯編語言編寫的。由於組合語言程式依賴於計算機硬體,其可讀性和可移植性都很差;但一般的高階語言又難以實現對計算機硬體的直接操作(這正是組合語言的優勢),於是人們盼望有一種兼有組合語言和高階語言特性的新語言——C語言。 高階語言的發展也經歷了從早期語言到結構化程式設計語言,從面向過程到非過程化程式語言的過程。相應地,軟體的開發也由最初的個體手工作坊式的封閉式生產,發展為產業化、流水線式的工業化生產。 計算機語言60年代中後期,軟體越來越多,規模越來越大,而軟體的生產基本上是個自為戰,缺乏科學規範的系統規劃與測試、評估標準,其惡果是大批耗費巨資建立起來的軟體系統,由於含有錯誤而無法使用,甚至帶來巨大損失,軟體給人的感覺是越來越不可靠,以致幾乎沒有不出錯的軟體。這一切,極大地震動了計算機界,史稱"軟體危機"。人們認識到:大型程式的編制不同於寫小程式,它應該是一項新的技術,應該像處理工程一樣處理軟體研製的全過程。程式的設計應易於保證正確性,也便於驗證正確性。1969年,提出了結構化程式設計方法,1970年,第一個結構化程式設計語言--Pascal語言出現,標誌著結構化程式設計時期的開始。 80年代初開始,在軟體設計思想上,又產生了一次革命,其成果就是面向物件的程式設計。在此之前的高階語言,幾乎都是面向過程的,程式的執行是流水線似的,在一個模組被執行完成前,人們不能幹別的事,也無法動態地改變程式的執行方向。這和人們日常處理事物的方式是不一致的,對人而言是希望發生一件事就處理一件事,也就是說,不能面向過程,而應是面向具體的應用功能,也就是物件(Object)。其方法就是軟體的整合化,如同硬體的積體電路一樣,生產一些通用的、封裝緊密的功能模組,稱之為軟體整合塊,它與具體應用無關,但能相互組合,完成具體的應用功能,同時又能重複使用。對使用者來說,只關心它的介面(輸入量、輸出量)及能實現的功能,至於如何實現的,那是它內部的事,使用者完全不用關心,C++、Visual Basic、Delphi就是典型代表。 高階語言的下一個發展目標是面向應用,也就是說:只需要告訴程式你要幹什麼,程式就能自動生成演算法,自動進行處理,這就是非過程化的程式語言。
計算機語言計算機語言主要分為四類: - 低階語言 - 高階語言 - 專用語言 - 指令碼語言低階語言 - 機器語言、組合語言和符號語言。 - 組合語言源程式必須經過彙編,生成目標檔案,然後執行。高階語言 - BASIC(True basic、Qbasic、Virtual Basic)、C、C++、PASCAL、FORTRAN、智慧化語言(LISP、Prolog、CLIPS、OpenCyc、Fazzy)、動態語言(Python、PHP、Ruby、Lua)等等。 - 高階語言源程式可以用解釋、編譯兩種方式執行。通常用後一種。 我們使用的C語言就是使用的後者。專用語言 CAD系統中的繪圖語言和DBMS的資料庫查詢語言。 1.1.機器語言 機器語言是指一臺計算機全部的指令集合 電子計算機所使用的是由"0"和"1"組成的二進位制數,二進位制是計算機的語言的基礎。計算機發明之初,人們只能降貴紆尊,用計算機的語言去命令計算機幹這幹那,一句話,就是寫出一串串由"0"和"1"組成的指令序列交由計算機執行,這種計算機能夠認識的語言,就是機器語言。使用機器語言是十分痛苦的,特別是在程式有錯需要修改時,更是如此。 計算機語言因此程式就是一個個的二進位制檔案。一條機器語言成為一條指令。指令是不可分割的最小功能單元。而且,由於每臺計算機的指令系統往往各不相同,所以,在一臺計算機上執行的程式,要想在另一臺計算機上執行,必須另程式設計序,造成了重複工作。但由於使用的是針對特定型號計算機的語言,故而運算效率是所有語言中最高的。機器語言,是第一代計算機語言。 1.2.組合語言 為了減輕使用機器語言程式設計的痛苦,人們進行了一種有益的改進:用一些簡潔的英文字母、符號串來替代一個特定的指令的二進位制串,比如,用"ADD"代表加法,"MOV"代表資料傳遞等等,這樣一來,人們很容易讀懂並理解程式在幹什麼,糾錯及維護都變得方便了,這種程式設計語言就稱為組合語言,即第二代計算機語言。然而計算機是不認識這些符號的,這就需要一個專門的程式,專門負責將這些符號翻譯成二進位制數的機器語言,這種翻譯程式被稱為彙編程式。 組合語言同樣十分依賴於機器硬體,移植性不好,但效率仍十分高,針對計算機特定硬體而編制的組合語言程式,能準確發揮計算機硬體的功能和特長,程式精煉而質量高,所以至今仍是一種常用而強有力的軟體開發工具。 1.3.高階語言 1.3.1.高階語言的發展 從最初與計算機交流的痛苦經歷中,人們意識到,應該設計一種這樣的語言,這種語言接近於數學語言或人的自然語言,同時又不依賴於計算機硬體,編出的程式能在所有機器上通用。經過努力,1954年,第一個完全脫離機器硬體的高階語言--FORTRAN問世了,40 多年來,共有幾百種高階語言出現,有重要意義的有幾十種,影響較大、使用較普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、JAVA等。 特別要提到的:在C語言誕生以前,系統軟體主要是用匯編語言編寫的。由於組合語言程式依賴於計算機硬體,其可讀性和可移植性都很差;但一般的高階語言又難以實現對計算機硬體的直接操作(這正是組合語言的優勢),於是人們盼望有一種兼有組合語言和高階語言特性的新語言——C語言。 高階語言的發展也經歷了從早期語言到結構化程式設計語言,從面向過程到非過程化程式語言的過程。相應地,軟體的開發也由最初的個體手工作坊式的封閉式生產,發展為產業化、流水線式的工業化生產。 計算機語言60年代中後期,軟體越來越多,規模越來越大,而軟體的生產基本上是個自為戰,缺乏科學規範的系統規劃與測試、評估標準,其惡果是大批耗費巨資建立起來的軟體系統,由於含有錯誤而無法使用,甚至帶來巨大損失,軟體給人的感覺是越來越不可靠,以致幾乎沒有不出錯的軟體。這一切,極大地震動了計算機界,史稱"軟體危機"。人們認識到:大型程式的編制不同於寫小程式,它應該是一項新的技術,應該像處理工程一樣處理軟體研製的全過程。程式的設計應易於保證正確性,也便於驗證正確性。1969年,提出了結構化程式設計方法,1970年,第一個結構化程式設計語言--Pascal語言出現,標誌著結構化程式設計時期的開始。 80年代初開始,在軟體設計思想上,又產生了一次革命,其成果就是面向物件的程式設計。在此之前的高階語言,幾乎都是面向過程的,程式的執行是流水線似的,在一個模組被執行完成前,人們不能幹別的事,也無法動態地改變程式的執行方向。這和人們日常處理事物的方式是不一致的,對人而言是希望發生一件事就處理一件事,也就是說,不能面向過程,而應是面向具體的應用功能,也就是物件(Object)。其方法就是軟體的整合化,如同硬體的積體電路一樣,生產一些通用的、封裝緊密的功能模組,稱之為軟體整合塊,它與具體應用無關,但能相互組合,完成具體的應用功能,同時又能重複使用。對使用者來說,只關心它的介面(輸入量、輸出量)及能實現的功能,至於如何實現的,那是它內部的事,使用者完全不用關心,C++、Visual Basic、Delphi就是典型代表。 高階語言的下一個發展目標是面向應用,也就是說:只需要告訴程式你要幹什麼,程式就能自動生成演算法,自動進行處理,這就是非過程化的程式語言。