編譯語言和解析語言舉例子
⑴ 編譯型語言有哪些呢
編譯型語言有C、C++、Objective-C、Swift、Kotlin等高級語言。需要將源代碼編譯成機器碼,再由機器運行機器碼。只需編譯一次,運行速度快,執行效率高。
編譯型語言和解釋型語言區別在於:
編譯型語言,通常都會對源代碼進行編譯,生成可以執行的二進制代碼,執行的是編譯後的結果。
解釋型語言,通常不用對源代碼進行編譯,一般是通過解釋器載入腳本後運行。由於每個語句都是執行的時候才進行解釋翻譯,這樣解釋性語言每次執行就要翻譯一次,效率相對要低。至於難度,個人感覺java相對要更復雜些。
⑵ 急!!!!!!!!解釋程序與編譯程序有什麼區別,各舉例!!!!!!
編譯程序和解釋程序2006年10月16日
星期一
14:26如果一個程序能夠把某一種語言程序(稱為源語言程序)改造成為另一種語言程序(稱為目標語言程序),則這親戚的程序稱為「翻譯程序」。如果源語言是「高級語言」(諸如FORTRAN、PASCAL等等),而目標語言是「低級語言」(如匯編語言或機器語言),則這樣的翻譯程序稱為「編譯程序」。
現在的計算機尚不能直接執行高級語言程序。執行一個高級語言程序大體上要分兩步:第一步,把高級語言的源程序編譯成低級語言的目標程序;第二步,運行這個目標程序。編譯程序的典型工作過程是:輸入源程序,對它進行加工處理,輸出目標程序。加工處理是非常復雜的過程,它又可劃分成以下幾個階段:源程序→詞法分析→語法分析→產生中間代碼→優化→目標代碼生成→目標程序。
第一階段是詞法分析。承擔詞法分析任務的程序稱為「掃描器」。詞法分析的任務是:對構成源程序的字元串進行掃描和分解。第二階段是語法分析。承擔語法分析任務的程序稱為「分析器」。語法分析的任務是:根據語法規則,把描掃器所提供的結果分析成各類語法范疇。第三階段是產生中間代碼。承擔產生中間代碼任務的程序稱為「中間代碼產生器」。其任務是:按照語法分析器所識別出的語法范疇,產生相應的中間指令。第四階段是優化,即代碼優化。優化的任務是對前階段產生的中間代碼進行加工變換,以便使生成的目標程序,能運行得更快更省(省內存)。第五階段是目標代碼生成。這一階段的任務是:按照優化後的中間代碼和其它有關信息生成目標程序。這種目標程序可以在計算機上直接執行。執行這個目標程序,就可得到一個高級語言程序的結果。
我們知道,所謂翻譯程序是這樣一種程序,它能夠把用甲語言寫的程序翻譯成與之等價的用乙語言寫的程序。這里的甲語言是該翻譯程序的源語言,而乙語言則為該翻譯程序的目標語言。對於編譯程序而言,源程序是被加工的對象,而目標程序是加工後的結果。
在計算機上執行用某種高級語言寫的源程序,通常有兩種方式:一是編譯執行方式,二是解釋執行方式。
採用編譯執行方式執行源程序時要分兩大步:編譯和運行。編譯中的加工處理過程又可分為五個階段。
解釋執行方式與編譯執行方式是不同的,其根本區別在於:編譯方式把源程序的執行過程嚴格地分成兩大步:編譯和運行。即先把源程序全部翻譯成目標代碼,然後再運行此目標代碼,獲執行結果。解釋方式則不然。它是按照源程序中語句的動態順序,直接地逐句進行分析解釋,並立即執行。所以,解釋程序是這樣一種程序,它能夠按照源程序中語句的動態順序,逐句地分析解釋並執行,直至源程序結束。
與編譯程序一樣,解釋程序也與源語言及計算機有關。同一台計算機上不同語言的解釋程序是不同的;同一種語言在不同的計算機上的解釋程序也可能不同。同一種高級語言的源程序,它可以採用解釋執行方式,也可以採用編譯執行方式。例如,BASIc語言有解釋BASIC和編譯BASIC之分。前者執行速度慢;後者執行速度快。編譯程序和解釋程序都屬於系統程序。
⑶ 編譯型語言和解釋型語言的區別是什麼
編譯型語言和解釋型語言的區別是翻譯的時間點不同。
編譯型語言:編譯型語言在執行之前要先經過編譯過程,編譯成為一個可執行的機器語言的文件,比如exe。
因為翻譯只做一遍,以後都不需要翻譯,所以執行效率高。
解釋型語言:解釋性語言編寫的程序不進行預先編譯,以文本方式存儲程序代碼。
執行時才翻譯執行程序每執行一次就要翻譯一遍。
編譯型語言和解釋型語言的詳細介紹:
對於編譯型語言,開發完成以後需要將所有的源代碼都轉換成可執行程序,比如Windows下的.exe文件,可執行程序裡麵包含的就是機器碼。只要我們擁有可執行程序,就可以隨時運行,不用再重新編譯了,也就是「一次編譯,無限次運行」。
在運行的時候,我們只需要編譯生成的可執行程序,不再需要源代碼和編譯器了,所以說編譯型語言可以脫離開發環境運行。
編譯型語言一般是不能跨平台的,也就是不能在不同的操作系統之間隨意切換。
對於解釋型語言,每次執行程序都需要一邊轉換一邊執行,用到哪些源代碼就將哪些源代碼轉換成機器碼,用不到的不進行任何處理。
每次執行程序時可能使用不同的功能,這個時候需要轉換的源代碼也不一樣。
因為每次執行程序都需要重新轉換源代碼,所以解釋型語言的執行效率天生就低於編譯型語言,甚至存在數量級的差距。
計算機的一些底層功能,或者關鍵演算法,一般都使用C/C++實現,只有在應用層面(比如網站開發、批處理、小工具等)才會使用解釋型語言。
⑷ 哪些是解釋性語言,哪些是編譯性語言
解釋性語言是指,在執行時由相關程序實時讀取程序語句,然後再編譯執行的語言,這樣的源程序多為文本文件。可以理解為由專門的程序讀取你用文本寫的程序,然後邊解釋邊執行。
而編譯語言則是可以有計算機直接執行的機器語言,以二進制的形式存儲。
最大的區別就是,編譯好的程序比解釋性的快很多,效率高很多。
⑸ 編譯型語言和解釋型語言各自的優缺點是什麼
一、編譯型語言
優點:運行速度快,代碼效率高,編譯後的程序不可修改,保密性較好。
缺點:代碼需要經過編譯方可運行,可移植性差,只能在兼容的操作系統上運行 。
二、解釋型語言
優點:可移植性較好,只要有解釋環境,可在不同的操作系統上運行。
缺點:運行需要解釋環境,運行起來比編譯的要慢,佔用資源也要多一些,代碼效率低,代碼修改後就可運行,不需要編譯過程。
(5)編譯語言和解析語言舉例子擴展閱讀:
編譯型語言:程序在執行之前需要一個專門的編譯過程,把程序編譯成 為機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結果就行了。程序執行效率高,依賴編譯器,跨平台性差些。如C、C++、Delphi等。而相對的,解釋性語言編寫的程序不進行預先編譯,以文本方式存儲程序代碼。在發布程序時,看起來省了道編譯工序。但是在運行程序的時候,解釋性語言必須先解釋再運行。
⑹ 解釋語言和編譯語言有什麼區別可移植性是什麼意思
編譯型語言和解釋型語言的區別:
解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。
可移植性
軟體可移植性指與軟體從某一環境轉移到另一環境下的難易程度
⑺ 編譯型語言與解釋型語言分別有哪些
樓上說的對。 做一點補充:其實沒那麼明確,任何一種語言都可以解釋執行和編譯執行。解釋和編譯是程序運行的兩種方式。 不能用來區分語言
⑻ 解釋型語言和編譯型語言的區別是什麼
一、編譯型
編譯型語言:編譯型語言在執行之前要先經過編譯過程,編譯成為一個可執行的機器語言的文件,比如exe。因為翻譯只做一遍,以後都不需要翻譯,所以執行效率高。
編譯型語言的典型代表:C語言,C++。
編譯型語言的優缺點:執行效率高,缺點是跨平台能力弱,不便調試。
二、解釋型
解釋型語言:解釋性語言編寫的程序不進行預先編譯,以文本方式存儲程序代碼。執行時才翻譯執行。程序每執行一次就要翻譯一遍。
代表語言:python,JavaScript。
優缺點:跨平台能力強,易於調,執行速度慢。
編譯型與解釋型,兩者各有利弊
前者由於程序執行速度快,同等條件下對系統要求較低,因此像開發操作系統、大型應用程序、資料庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言。
而一些網頁腳本、伺服器腳本及輔助開發介面這樣的對速度要求不高、對不同系統平台間的兼容性有一定要求的程序則通常使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB等等。