編譯型語音和解釋型語音
① c語言是解釋類還是編譯類的語言什麼是解釋類語言,編譯類語言
C語言是屬編譯類語言
計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。
翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。
解釋則不同,解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。
java很特殊,java程序也需要編譯,但是沒有直接編譯稱為機器語言,而是編譯稱為位元組碼,然後用解釋方式執行位元組碼。
② 計算機高級語言哪門用處最大
計算機高級語言分類
分類方法:程序的執行方式
類別:編譯型語言和解釋型語言
1.編譯型語言:
使用專門的編譯器針對特點平台將高級語言一次性翻譯成可被該平台硬體執行的機器碼,並包裝秤該平台可識別的可執行程序的格式,該過程叫編譯Compile,可執行程序可以脫離開發環境,在特定平台獨立運行。
有些程序編譯結束後,還可能需要對其他目標代碼進行連接,將多個目標代碼模塊組成最終的可執行程序。
優點:可以脫離開發環境獨立運行,執行效率比較高;
缺點:可執行程序不能跨平台;
2.解釋型語言:
使用解釋器對源代碼逐行解釋成特定平台的機器碼並執行,相當於把編譯型語言中的編譯和解釋過程混合在一起同時完成。
缺點:每次執行該語言的程序都需要進行一次編譯,效率低,不能脫離解釋器獨立運行;
優點:可實現跨平台執行;
三、計算機常見語種
常見語言
1.C語言
C語言是Dennis Ritchie在七十年代創建的,它功能更強大且與ALGOL保持更連續的繼承性,而ALGOL則是COBOL和FORTRAN的結構化繼承者。C語言被設計成一個比它的前輩更精巧、更簡單的版本,它適於編寫系統級的程序,比如操作系統。在此之前,操作系統是使用匯編語言編寫的,而且不可移植。C語言是第一個使得系統級代碼移植成為可能的編程語言。
優點:有益於編寫小而快的程序。很容易與匯編語言結合。具有很高的標准化,因此其他平台上的各版本非常相似。
缺點:不容易支持面向對象技術。語法有時會非常難以理解,並造成濫用。
移植性:C語言的核心以及ANSI函數調用都具有移植性,但僅限於流程式控制制、內存管理和簡單的文件處理。其他的東西都跟平台有關。比如說,為Windows和Mac開發可移植的程序,用戶界面部分就需要用到與系統相關的函數調用。這一般意味著你必須寫兩次用戶界面代碼,不過還好有一些庫可以減輕工作量。
2.C++
C++語言是具有面向對象特性的C語言的繼承者。面向對象編程,或稱OOP是結構化編程的下一步。OO程序由對象組成,其中的對象是數據和函數離散集合。有許多可用的對象庫存在,這使得編程簡單得只需要將一些程序「建築材料」堆在一起(至少理論上是這樣)。比如說,有很多的GUI和資料庫的庫實現為對象的集合。
優點:組織大型程序時比C語言好得多。很好的支持面向對象機制。通用數據結構,如鏈表和可增長的陣列組成的庫減輕了由於處理低層細節的負擔。
③ 什麼是編譯性語言、解釋性語言和腳本語言
編譯型語言:
編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率 較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的。編譯程序將源程序翻譯成目標程序後保存在另一個文件中,該目標程序可脫離編譯程序直接在計算機上多次運行。大多數軟體產品都是以目標程序形式發行給用戶的,不僅便於直接運行,同時又使他人難於盜用其中的技術C、C++、Fortran、Visual Foxpro、Pascal、Delphi、Ada都是編譯實現的。
解釋型語言:
解釋型語言的實現中,翻譯器並不產生目標機器代碼,而是產生易於執行的中間代碼,這種中間代碼與機器代碼是不同的,中間代碼的解釋是由軟體支持的,不能直接使用硬體,軟體解釋器通常會導致執行效率較低。用解釋型語言編寫的程序是由另一個可以理解中間代碼的解釋程序執行的。與編譯程序不同的是,解釋程序的任務是逐一將源程序的語句解釋成可執行的機器指令,不需要將源程序翻譯成目標代碼後再執行。釋程序的優點是當語句出現語法錯誤時,可以立即引起程序員注意,而程序員在程序開發期間就能進行校正。對於解釋型Basic語言,需要一個專門的解釋器解釋執行 Basic程序,每條語言只有在執行才被翻譯。這種解釋型語言每執行一次就翻譯一次,因而效率低下。一般地,動態語言都是解釋型的,如Tcl、Perl、Ruby、VBScript、 JavaScript等。
腳本語言又被稱為擴建的語言,或者動態語言,是一種編程語言,用來控制軟體應用程序,腳本通常以文本(如ASCII)保存,只在被調用時進行解釋或編譯。
④ 解釋性語言和編譯型語言的區別與不同
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可
將它們分為兩類:
1.解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由
相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不
能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可
以動態地調整、修改應用程序,典型的解釋型的高級語言有BASIC。
2.編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼
(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。
但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.OBJ)才
能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型
的,例如Visual C++、Delphi等。
高級語言里一個程序的編譯和執行大概是 下面的情況:
編譯器將高級語言從源代碼翻譯成與之等價的目標程序(就相當於從中文翻譯成中文),而後就隱退了。在隨後的某個時刻,
用戶啟動目標程序由操作系統執行。實現高級語言的另外一種方式為解釋:
與編譯不同的是,解釋器在目標程序(其實根本就沒有目標程序,只是與編譯來對比)執行期間,解釋器一直隨之運行
。這種執行過程完全由解釋器控制的。從效果上看,解釋器實現了一台「虛擬計算機」,其「機器語言」就是高級語言,解釋器一次讀入一條或多條語句
,按照其自身規定的方式去執行相應的操作。一般說來,解釋比編譯有著很好的靈活性;編譯一般有著較好的性能。但是有些語言確是採用了兩者的混合形式:
書中的原文:」如果初始階段的翻譯器比較簡單,我們就說這個語言是「解釋的」。如果翻譯器很復雜,我們就說這一語言是「編譯的」。現在兩者的區分變得有些模糊了,因為「簡單」和「復雜」都是修飾性術語,也因為完全可能出現用一個編譯器(復雜的翻譯過程)生成代碼,而後又由一個復雜的虛擬機(解釋器)執行。對於最後這種情況,如果翻譯器對程序做了徹底的分析(而不是做某種「機械的」變換),而且有關的中間語言程序與源程序並沒有很強的相似性,我們還是說這個語言是編譯的。這兩種特性----徹底的分析和非平凡的變換-----是刻畫編譯方式的標志性特徵。「