计算机编程语言的分类,解释型语言、编译型语言、脚本语言的区别
原文傳送門: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。
?
總結
以上是生活随笔為你收集整理的计算机编程语言的分类,解释型语言、编译型语言、脚本语言的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PuTTY安装的及使用教程
- 下一篇: 电脑f5键有什么用