引致博客:http://blog.csdn.net/liuchuo/article/details/52014764程序員
計算機編程語言的分類:算法
- 機器語言(二進制代碼)
- 彙編語言(面向機器的程序設計語言)
- 高級語言(按轉換方式可分爲兩類:1.編譯型語言; 2.解釋型語言 ||按照客觀系統的描述可分爲兩類:1.面向過程語言; 2.面嚮對象語言 ||按照編程範型可分爲:1.命令式語言; 2.函數式語言; 3.邏輯式語言; 4.面嚮對象語言)
三種語言的優缺點:編程
機器語言:
可讀性、可移植性差,編程繁雜。
直接執行,速度快,資源佔用少;
彙編語言:
不一樣的處理器有不一樣的彙編語言語法和編譯器,編譯的程序沒法在不一樣的處理器上執行,缺少可移植性,難於從彙編語言代碼上理解程序設計意圖,可維護性差,即便是完成簡單的工做也須要大量的彙編語言代碼,很容易產生bug,難於調試,使用匯編語言必須對某種處理器很是瞭解,並且只能針對特定的體系結構和處理器進行優化,開發效率很低,週期長且單調。
可以保持機器語言的一致性,直接、簡捷,並能像機器指令同樣訪問、控制計算機的各類硬件設備,如磁盤、存儲器、CPU、I/O端口等。使用匯編語言,能夠訪問全部可以被訪問的軟、硬件資源,目標代碼簡短,佔用內存少,執行速度快。
高級語言:
運行速度基本上比直接用匯編寫的慢,速度和程序大小與編譯軟件有關。
高級語言接近算法語言,易學、易掌握,級語言爲程序員提供告終構化程序設計的環境和工具,使得設計出來的程序可讀性好,可維護性強,可靠性高;高級語言遠離機器語言,與具體的計算機硬件關係不大,可移植性好,重用率高;因爲把繁雜瑣碎的事務交給了編譯程序去作,因此自動化程度高,開發週期短,且程序員獲得解脫,能夠集中時間和精力去從事對於他們來講更爲重要的創造性勞動,以提升程序的質量。編程語言
高級語言的分類:函數式編程
- 按轉換方式可分爲兩類:1.編譯型語言; 2.解釋型語言
1.編譯型語言:
編譯性語言寫的程序在被執行以前,須要一個專門的編譯過程,把程序編譯成爲機器語言的文件,好比exe文件,之後要運行的話就不用從新翻譯了,直接使用編譯的結果就好了(exe文件),由於翻譯只作了一次,運行時不須要翻譯,因此編譯型語言的程序執行效率高。
2.解釋型語言:
解釋性語言的程序不須要編譯,在運行程序的時候才翻譯,每一個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就須要逐行翻譯一次,效率比較低。
現代解釋性語言一般把源程序編譯成中間代碼,而後用解釋器把中間代碼一條條翻譯成目標機器代碼,一條條執行。
關於腳本語言:
腳本語言是一種解釋性的語言,腳本語言是爲了縮短傳統的編寫-編譯-連接-運行(edit-compile-link-run)過程而建立的計算機編程語言。腳本語言通常都 有相應的腳本引擎來解釋執行。 他們通常須要解釋器才能運行。一個腳本一般是解釋運行而非編譯。腳本語言一般都有簡單、易學、易用的特性,目的就是但願能讓程序員快速完成程序的編寫工做。而宏語言則可視爲腳本語言的分支,二者也有實質上的相同之處。腳本語言通常都是以文本形式存在,相似於一種命令。
舉例:函數
解釋性語言:Java、JavaScript、Perl、Python、Ruby、MATLAB 等。
編譯性語言: C/C++、Pascal/Object Pascal(Delphi)
腳本語言:Python、JavaScript,ASP,PHP,Perl等工具
- 按照客觀系統的描述可分爲兩類:1.面向過程語言; 2.面嚮對象語言
1.面向過程語言:
面向過程語言是以過程或函數爲基礎的,這種語言對底層硬件,內存等操做比較方便,可是寫代碼和調試維護等會很麻煩。例如:c語言
2.面嚮對象語言:
面嚮對象語言(Object-Oriented Language)是一類以對象做爲基本程序結構單位的程序設計語言,指用於描述的設計是以對象爲核心,而對象是程序運行時刻的基本成分。語言中提供了類、繼承等成分。
面嚮對象語言的發展有兩個方向:一種是純面嚮對象語言,如Smalltalk、EIFFEL等;另外一種是混合型面嚮對象語言,即在過程式語言及其它語言中加入類、繼承等成分,如C++、Objective-C等優化
- 按照編程範型可分爲:1.命令式語言; 2.函數式語言; 3.邏輯式語言; 4.面嚮對象語言
1.命令式語言:
命令式程序設計語言是基於動做的語言,以馮諾依曼計算機體系結構爲背景。機器語言及彙編語言是最先的命令式語言。在這種語言中,計算機被看作是動做的序列,程序就是用語言提供的操做命令書寫的一個操做序列。用命令式程序設計語言編寫程序,就是描述解題過程當中每一步的過程,程序的運行過程就是問題的求解過程,所以也稱爲過程式語言。Fortran、ALGOL、COBOL、C、Ada、Pascal等都是命令式程序設計語言。
2.函數式語言:
函數式編程是種編程典範,它將電腦運算視爲函數的計算。函數編程語言最重要的基礎是 λ 演算(lambda calculus)。並且λ演算的函數能夠接受函數看成輸入(參數)和輸出(返回值)。和指令式編程相比,函數式編程強調函數的計算比指令的執行重要。和過程化編程相比,函數式編程裏,函數的計算可隨時調用。這種語言的語義基礎是基於數學函數概念的值映射的λ算子可計算模型。這種語言很是適合於進行人工智能等工做的計算。典型的函數式語言如 Lisp、Haskell、ML、Scheme 、F#等。
3.邏輯式語言:
這種語言的語義基礎是基於一組已知規則的形式邏輯系統。這種語言主要用在專家系統的實現中。最著名的邏輯式語言是 Prolog。
4.面嚮對象語言: 現代語言中的大多數都提供面向對象的支持,但有些語言是直接創建在面向對象基本模型上的,語言的語法形式的語義就是基本對象操做。主要的純面嚮對象語言是 Smalltalk。