一、計算機語言分類:
1. 機器語言
機器語言是計算機最原始的語言,是由0和1的代碼構成,cpu在工作的時候只認識機器語言,即0和1的代碼。
2. 匯編語言
匯編語言,即為一種低級語言,它用人類容易記憶的語言和符號來表示一組0和1的代碼,例如AND代表加法。
3. 標記語言
標記語言:是一種將文本以及文本相關的其他信息結合起來,展現出關於文檔結構和數據處理細節的電腦文字編碼。
與文本相關的其他信息(包括文本的結構和表示信息等)與原來的文本結合在一起,但是使用標記進行標識。標記語言不僅僅是一種語言,就像許多語言一樣,它需要一個運行時環境,使其有用。
4. 腳本語言(解釋型語言)
腳本語言:是為了縮短編程語言的“編寫、編譯、鏈接、運行”等過程而創建的計算機編程語言。
是一種用來解釋某些東西的語言,又被稱為擴建的語言,或者動態語言,用來控制軟件應用程序,腳本通常以文本保存,只在被調用時進行解釋或編譯。
腳本語言是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。它的命名起源於一個腳本“screenplay”,每次運行都會使對話框逐字重復。
早期的腳本語言經常被稱為批量處理語言或工作控制語言。 一個腳本通常是解釋運行而非編譯。
腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序員快速完成程序的編寫工作。
各種動態語言,如ASP、PHP、CGI、JSP、JavaScript、VBScript等,都是腳本語言。
1、腳本語法比較簡單,比較容易掌握;
2、腳本與應用程序密切相關,所以包括相對應用程序自身的功能;
3、腳本一般不具備通用性,所能處理的問題范圍有限。
5. 編程語言(高級語言、編譯型語言)
高級語言,它是在低級語言的基礎上,采用接近於人類自然語言的單詞和符號來表示一組低級語言程序,使編程變得更加簡單,易學,且寫出的程序可讀性強。
編程語言(programming language):是用來定義計算機程序的形式語言。它是一種被標准化的交流技巧,用來向計算機發出指令。一種計算機語言讓程序員能夠准確地定義
計算機所需要使用的數據,並精確地定義在不同情況下所應當采取的行動。
編譯型語言:程序在執行之前需要一個專門的編譯過程,把程序編譯成 為機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結果就行了。程序執行效率高,依賴編譯器,跨平台性差些
如 C、C++。
二、各種類的代表語言
編程語言:C/C++,Java,Perl等
標記語言:xml, html, xhtml ( xml 和 html 的合體 )等,(可以看出它們都是以 "ml"尾的)
腳本語言:php,js,asp,Python,ruby等
三、各語言的區別
1、相對於其他兩類語言,編程語言有很強的邏輯和行為能力
1、標記語言不用於向計算機發出指令,常用於格式化和鏈接。
2、腳本語言介於標記語言和編程語言之間,腳本語言腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。
3、腳本語言的運行速度相對較快,且腳本文件明顯小於程序語言
4、腳本語言一般都是以文本形式存在,類似於一種命令
5、腳本語言的特點是語法簡單,一般以文本形式保存,並且不需要編譯成目標程序,在調用的時候直接解釋。
6、腳本語言的一個大特性:能用記事本寫出程序,不需要編譯環境生成目標程序
7、腳本一般不具備通用性,所能處理的問題范圍有限。
8、腳本語言是解釋執行語言。特點是較容易上手,編程功能上相對簡單一些。例如:html語言、php語言等。
9、編程語言:例如 C 語言、C# 語言等功能較強大,可以用來開發規模較大的系統軟件,或者做系統底層的開發。
四、編譯型語言和解釋型語言
代碼都要經過翻譯后(二進制文件)才能被計算機識別運行,翻譯的方式有兩種,一種是編譯,一種是解釋。
解釋型:
腳本語言交由可執行程序解釋執行;
應用程序源代碼一邊由相應語言的解釋器“翻譯”成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
如html代碼文件通過瀏覽器內置的解釋器解釋執行,這個解釋器就是一個專門為html編寫的可執行程序,通常是由C、java等語言編寫的。如果你願意,你也可以自己編寫一個解釋器,"創造"一種腳本語言。當然,現存的腳本語言都是經歷考驗、受到廣泛認可的,這才能流行起來,讓大家來都遵循你的規范。代碼世界里的規則完全是由人創造的,如果沒有人遵循你創造的規則,那這個規則就只對你自己有意義了,對其他人則毫無意義。
腳本語言是在原有常規編程語言的基礎上基於一種需求發展而來的,
基於什么需求,對比腳本語言和常規編程語言的差異點就知道了;
隨着腳本語言的發展,也開始出現了"重量級"的腳本語言,
它們的界限開始不那么明顯了;
一般來說,腳本語言相比編譯型語言,優點就是輕量級,無需編譯,它們依賴的平台就是其解釋執行器,Html依賴html解釋執行器,javascript依賴js解釋執行器;
從本質上講,腳本語言的語法是一種規范,而其編譯器(解釋器)只是為了實現這種規范而編寫的程序。從這一點上來說,所有編程語言都是共通的。
PS:java的編譯器由C語言編寫;C語言的編譯過程有一步叫"匯編";任何代碼,最終都是要轉化二進制命令來執行動作的,當然這個過程就在現今看來步驟就太多太復雜了。
編譯型:
編譯語言通過編譯器編譯代碼文件生成可執行程序(二進制文件),交由cpu解釋執行;
編譯是指在應用源程序執行之前,就將程序源代碼“翻譯”成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。