編譯詞語解釋百科
『壹』 解釋和編譯有什麼區別
一、與計算機的交流方式不同
1、解釋程序不產生目標代碼,它逐條地取出源程序中的語句,邊解釋,邊執行;解釋器把源代碼文件邊解釋成機器語言邊交給CPU執行。
三、開發便捷性
1、解釋程序可以隨時修改,立刻生效,改完源代碼後,直接運行看效果
2、編譯程序每次修改源代碼,都要重新編譯,生成機器碼文件
四、運行速度
1、解釋程序運行效率低,所有的代碼均需經過解釋器邊解釋變執行,速度比編譯型慢很多
2、編譯程序執行速度快,因為你的程序代碼已經翻譯成了是計算機可以理解的機器語言。
『貳』 解釋 編譯和編譯 匯編的區別是什麼
解釋和編譯針對的是高級語言的。是高級語言轉換成機器代碼的方式。編譯指的是一次性將程序代碼給轉換成機器代碼,這樣做好處是編譯之後的可執行程序方便移植,可以優化程序代碼,並且執行效率要比解釋語言的高!解釋是指邊解釋邊運行,解釋一條語句便執行一條。顯然這樣的程序執行效率是比較低的。比如C/C++用的是編譯,而basic用的是解釋。java既用到解釋,又用到編譯。而匯編是一種低級程序設計語言,直接操縱底層硬體。是在機器語言(0,1代碼串)的基礎上採用助記符的方式發展而來的。很多病毒都是通過匯編語言寫的。用匯編編寫的程序執行效率非常高!只是不方便寫程序。匯編語言是低級語言,沒有語法,就是一條條機器指令的助記符而已,所以匯編的時候不需要語法分析。編譯時把高級語言處理成機器指令的過程,編譯的時候需要做詞法分析和語法分析,然後是代碼生成。
『叄』 java中編譯的意思,解釋的意思。
Java是編譯的,因為他把源代碼變成了位元組碼,而不是每次都解釋源代碼。
Java是解釋的。因為位元組碼是被JVM負責執行,而不是真正的二進制碼!
『肆』 編譯和解釋的區別是什麼
1.定義區別
①編譯原理旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。
②匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。
2.處理方式區別
①編譯過程與解釋挺像,區別就在於編譯是將所有的源代碼指令一次性成翻目標代碼並執行。
②匯編過程就是把匯編指令一對一地翻譯成01機器碼的過程。而採用這種處理方式的語言只有一類:匯編語言。
3.特點區別
①編譯語言的特點就是不需要解釋器的參與,所以運行比較快,但是編譯好的程序只能在當前平台運行,是個局限性。
②匯編語言是當今世界上歷史最早,應用最廣,功能最強大,運行速度最快的編程語言。但是匯編語言開發工期長,可讀性差,並且不能跨平台編程。
『伍』 程序語言中編譯,解釋,編輯的區別
首先說編輯,這個一般指的是編輯高級語言代碼,也就人能夠看懂的計算機語言,如JAVA,C,C#等等,總之就是人通過學習語法規則就能夠理解其邏輯過程的語言都算高級語言。編輯就是指的編寫這樣的代碼。
我們知道,計算機是無法讀懂高級語言的,那麼就需要編譯器把高級語言轉換成計算機可以運行的機器語言,就是一般的0101010001的二進制代碼。
高級語言翻譯為計算機能讀懂的機器語言的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。程序執行之前,需要一個專門的編譯過程(跟計算機語言的種類有關,比如C就是這樣),把程序編譯成為機器語言的文件,比如WINDIOWS系統下的exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件)。
解釋則不同,這類語言寫的程序不需要編譯(比如php),省了這道工序,語言在運行程序的時候才翻譯,比如解釋性php語言,專門有一個解釋器能夠直接執行php程序,每個語句都是執行的時候才翻譯,然後給計算機執行。
那麼為什麼要分為了兩種呢,因為編譯型語言一經編輯,其對系統的要求就定死了,比如平台,硬體類型等,已經編譯為機器代碼了,就只能在同類機器上運行。同時因為其只編譯一次,執行時不需要編譯,所以一般效率高。
解釋型的就不同,由於語言是在執行時被翻譯的,所以解釋器能夠根據當前的系統平台,硬體情況實時生成機器語言用於運行,所以,其從一個系統移植到另一個系統就很容易。但是一般的,因為他每次運行都要翻譯,所以一般效率較低。
關於他們的效率不一定的,有一些的解釋型的語言運行效率不比編譯型的低,因為他實時的對語言進行優化,提升了運行效率,主要看解釋器的性能有多強。
還有一點就是編譯型語言適合大量的復制進行商業活動,因為一旦編譯成機器語言,人就看不懂了。所以代碼泄露的可能很低,而解釋型的,復制時需要直接復制源代碼(既高級語言)這樣獲得的人都能查看其源代碼並通過編輯器修改,這樣是不利於版權,技術的保護的。
大致上就是這樣。
『陸』 關於「編譯型語言」和「解釋性語言」的區別
1、程序控制權不同:
對於解釋性語言而言,程序運行時的控制權在解釋器(jre,.net)而不再用於程序。編譯型語言對於編譯器而言,運行時的控制權在用戶程序。
2、運行速度不同:
一些網頁腳本,伺服器腳本以及輔助開發介面這樣的對速度要求不高,對不同系統的兼容性有一定要求的程序則通常使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python、Ruby、Matlab等等。
編譯語言由於程序執行速度快,同等條件下對系統的要求比較低,因此像開發操作系統、大型應用程序、資料庫系統等時都採用它,像C/C++,Pascal/Object Pascal(Delphi)等都是編譯型語言。
3、移植性不同:
解釋型語言,例如Java語言,Java程序首先通過編譯器編譯成class文件,如果在Windows平台上運行,則通過Windows平台上的Java虛擬機(VM)進行解釋。如果運行在Linux平台上,則通過Linux平台上的Java虛擬機進行解釋執行。
所以說能跨平台,前提是平台上必須要有相匹配的Java虛擬機。如果沒有Java虛擬機,則不能進行跨平台。
編譯型語言,例如C語言,用C語言開發程序後,需要通過編譯器把程序編譯成機器語言(即計算機可以識別的二進制文件,因為不同的操作系統識別的二進制文件是不同的),所以C語言程序進行移植後,需要重新編譯(如Windows編譯成ext文件,Linux編譯成erp文件)。
『柒』 名詞解釋編譯程序
編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
『捌』 新聞英語編譯是什麼
新聞編譯是通過翻譯人員的加工,將外語新聞編寫為本族語新聞。英語新聞能及時提供讀者所需要的各種信息,已成現代人獲取信息的一個不可缺少的手段。編譯作為一種有效的翻譯手段已經廣泛地應用到新聞翻譯實踐中。
新聞編譯越來越被國內廣大讀者所接受。新聞編譯要把握好語言層的加工、背景文化的注釋,及政治言辭的合理修正,以提高目的語讀者的閱讀效果,避免西方輿論誤導。
(8)編譯詞語解釋百科擴展閱讀
美英新聞刊物形形色色,內容涉及十分廣泛,如時事報道、社論、述評、特寫、廣告等,所以其採用的文體也不盡相同。新聞有其獨特的文體特徵,新聞報道的翻譯,除遵循一般的翻譯原則外,還應遵循新聞翻譯的基本規律。
一、語言總體風格
大眾性、趣味性和節儉性構成了新聞英語在語言風格上的特色。新聞英語的語言有趣易懂,簡潔精煉,用非常經濟的語言表達豐富的內容。因此在翻譯過程中應盡可能刪去可用可不用但又不影響表達內容完整與准確的詞。
此外,新聞語體語言清晰,不能模稜兩可,更不應晦澀難懂,但同時,新聞語體又講究表達有力、敘述生動,因而我們翻譯時必須在用詞上多加錘煉,表現出新聞文體的總貌。
二、詞彙特點
1、常用詞彙有特定的新聞色彩
新聞報道常使用某些詞彙來表達事實和事件,因此這些詞彙經過長期使用後逐漸取得與新聞報道相聯系的特殊意義,成為新聞體詞語(journalistic words)。
例如,horror一詞是新聞標題中常用的詞,用以表示不幸事故和暴力行動,再如nadir常指「兩國關系的最低點」。此外,新聞報道中還有一些約定俗成的套語,如according to sources concerned (據有關方面報道),cited as saying(援引…的話)。
2、使用「小詞」
小詞(midget words)即簡短詞,一般為單音節詞。小詞的廣泛使用一是由於報紙篇幅有限,用小詞可以免於移行,二是由於小詞的詞義范疇很寬,一般比較生動靈活。新聞英語稱這類詞為synonyms of all work (萬能同義詞),如back(支持), ban(禁止)等。
3、大量使用縮略語
這主要是為了節省時間和篇幅。比如WB(world bank世界銀行), ASP(American selling price美國銷售價), biz (business商業)等。
4、臨時造詞
為了表達需要和追求新奇,新聞報道常常使用「臨時造詞/生造詞」, 即臨時創造或拼湊起來的詞或片語,例如Euromart(European commom market 歐洲共同市場),haves and have-nots(富人和窮人)等。
三、語法特點
1、時態的使用
在英語新聞中現在時被廣泛使用,為了造成事件正在進行中的效果,給人以真實感,無論是標題或是正文都常常採用現在時代替過去時。另外,甚至在said, told, reported, added等動詞過去時後面的that賓語從句中,過去時也常常為現在時態所替代。
2、較多使用擴展的簡單句
由於報刊篇幅有限,新聞文體在語法方面一個重要特點是句型的高度擴展,結構嚴謹,將豐富的信息壓縮在有限的篇幅中。常見的方法有使用同位語、介詞短語、分詞短語等語言成分擴展簡單句,有時還較多的使用插入語代替從句,從而簡化句子結構。
3、前置修飾語高度濃縮
新聞文體為了使句子結構緊湊嚴密,大量使用前置修飾語修飾名詞,如a hand grenade and machine gun attack。
四、文化因素和國情因素
要做好新聞的翻譯工作,譯者除了應具備語言知識外,還需要具備必要的文化常識和政治常識,要注意擴大知識面,這樣才不會誤譯或導致嚴重後果。例如將國家和地區並列,都可能會引起嚴重的後果。
五、語言差異——編譯和解釋性翻譯
此外,考慮到中英兩種語言習慣的差異,對外新聞報道的翻譯往往採用非逐字對譯法,這就需要引入另外兩種翻譯方法——編譯和解釋性翻譯。
我國獨有的機構、節日、習俗、行話、套話和歷史典故等都需要採用解釋性的翻譯方法。比如「巴金」譯作「Chinese writer Ba Jin」。
『玖』 編譯原理全部的名詞解釋
書上有別那麼懶!。。。。
編譯過程的六個階段:詞法分析,語法分析,語義分析,中間代碼生成,代碼優化,目標代碼生成
解釋程序:把某種語言的源程序轉換成等價的另一種語言程序——目標語言程序,然後再執行目標程序。解釋方式是接受某高級語言的一個語句輸入,進行解釋並控制計算機執行,馬上得到這句的執行結果,然後再接受下一句。
編譯程序:就是指這樣一種程序,通過它能夠將用高級語言編寫的源程序轉換成與之在邏輯上等價的低級語言形式的目標程序(機器語言程序或匯編語言程序)。
解釋程序和編譯程序的根本區別:是否生成目標代碼
句子的二義性(這里的二義性是指語法結構上的。):文法G[S]的一個句子如果能找到兩種不同的最左推導(或最右推導),或者存在兩棵不同的語法樹,則稱這個句子是二義性的。
文法的二義性:一個文法如果包含二義性的句子,則這個文法是二義文法,否則是無二義文法。
LL(1)的含義:(LL(1)文法是無二義的; LL(1)文法不含左遞歸)
第1個L:從左到右掃描輸入串 第2個L:生成的是最左推導
1 :向右看1個輸入符號便可決定選擇哪個產生式
某些非LL(1)文法到LL(1)文法的等價變換: 1. 提取公因子 2. 消除左遞歸
文法符號的屬性:單詞的含義,即與文法符號相關的一些信息。如,類型、值、存儲地址等。
一個屬性文法(attribute grammar)是一個三元組A=(G, V, F)
G:上下文無關文法。
V:屬性的有窮集。每個屬性與文法的一個終結符或非終結符相連。屬性與變數一樣,可以進行計算和傳遞。
F:關於屬性的斷言或謂詞(一組屬性的計算規則)的有窮集。斷言或語義規則與一個產生式相聯,只引用該產生式左端或右端的終結符或非終結符相聯的屬性。
綜合屬性:若產生式左部的單非終結符A的屬性值由右部各非終結符的屬性值決定,則A的屬性稱為綜合屬
繼承屬性:若產生式右部符號B的屬性值是根據左部非終結符的屬性值或者右部其它符號的屬性值決定的,則B的屬性為繼承屬性。
(1)非終結符既可有綜合屬性也可有繼承屬性,但文法開始符號沒有繼承屬性。
(2) 終結符只有綜合屬性,沒有繼承屬性,它們由詞法程序提供。
在計算時: 綜合屬性沿屬性語法樹向上傳遞;繼承屬性沿屬性語法樹向下傳遞。
語法制導翻譯:是指在語法分析過程中,完成附加在所使用的產生式上的語義規則描述的動作。
語法制導翻譯實現:對單詞符號串進行語法分析,構造語法分析樹,然後根據需要構造屬性依賴圖,遍歷語法樹並在語法樹的各結點處按語義規則進行計算。
中間代碼(中間語言)
1、是復雜性介於源程序語言和機器語言的一種表示形式。
2、一般,快速編譯程序直接生成目標代碼。
3、為了使編譯程序結構在邏輯上更為簡單明確,常採用中間代碼,這樣可以將與機器相關的某些實現細節置於代碼生成階段仔細處理,並且可以在中間代碼一級進行優化工作,使得代碼優化比較容易實現。
何謂中間代碼:源程序的一種內部表示,不依賴目標機的結構,易於代碼的機械生成。
為何要轉換成中間代碼:(1)邏輯結構清楚;利於不同目標機上實現同一種語言。
(2)便於移植,便於修改,便於進行與機器無關的優化。
中間代碼的幾種形式:逆波蘭記號 ,三元式和樹形表示 ,四元式
符號表的一般形式:一張符號表的的組成包括兩項,即名字欄和信息欄。
信息欄包含許多子欄和標志位,用來記錄相應名字和種種不同屬性,名字欄也稱主欄。主欄的內容稱為關鍵字(key word)。
符號表的功能:(1)收集符號屬性 (2) 上下文語義的合法性檢查的依據: 檢查標識符屬性在上下文中的一致性和合法性。(3)作為目標代碼生成階段地址分配的依據
符號的主要屬性及作用:
1. 符號名 2. 符號的類型 (整型、實型、字元串型等))3. 符號的存儲類別(公共、私有)
4. 符號的作用域及可視性 (全局、局部) 5. 符號變數的存儲分配信息 (靜態存儲區、動態存儲區)
存儲分配方案策略:靜態存儲分配;動態存儲分配:棧式、 堆式。
靜態存儲分配
1、基本策略
在編譯時就安排好目標程序運行時的全部數據空間,並能確定每個數據項的單元地址。
2、適用的分配對象:子程序的目標代碼段;全局數據目標(全局變數)
3、靜態存儲分配的要求:不允許遞歸調用,不含有可變數組。
FORTRAN程序是段結構,不允許遞歸,數據名大小、性質固定。 是典型的靜態分配
動態存儲分配
1、如果一個程序設計語言允許遞歸過程、可變數組或允許用戶自由申請和釋放空間,那麼,就需要採用動態存儲管理技術。
2、兩種動態存儲分配方式:棧式,堆式
棧式動態存儲分配
分配策略:將整個程序的數據空間設計為一個棧。
【例】在具有遞歸結構的語言程序中,每當調用一個過程時,它所需的數據空間就分配在棧頂,每當過程工作結束時就釋放這部分空間。
過程所需的數據空間包括兩部分
一部分是生存期在本過程這次活動中的數據對象。如局部變數、參數單元、臨時變數等;
另一部分則是用以管理過程活動的記錄信息(連接數據)。
活動記錄(AR)
一個過程的一次執行所需要的信息使用一個連續的存儲區來管理,這個區 (塊)叫做一個活動記錄。
構成
1、臨時工作單元;2、局部變數;3、機器狀態信息;4、存取鏈;
5、控制鏈;6、實參;7、返回地址
什麼是代碼優化
所謂優化,就是對代碼進行等價變換,使得變換後的代碼運行結果與變換前代碼運行結果相同,而運行速度加快或佔用存儲空間減少。
優化原則:等價原則:經過優化後不應改變程序運行的結果。
有效原則:使優化後所產生的目標代碼運行時間較短,佔用的存儲空間較小。
合算原則:以盡可能低的代價取得較好的優化效果。
常見的優化技術
(1) 刪除多餘運算(刪除公共子表達式) (2) 代碼外提 +刪除歸納變數+ (3)強度削弱; (4)變換循環控制條件 (5)合並已知量與復寫傳播 (6)刪除無用賦值
基本塊定義
程序中只有一個入口和一個出口的一段順序執行的語句序列,稱為程序的一個基本塊。
給我分數啊。。。
『拾』 編譯程序和解釋程序都是什麼意思
1、編譯程序是把用高級程序設計語言或計算機匯編語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序,屬於採用生成性實現途徑實現的翻譯程序。編譯程序以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出;編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
2、解釋程序是高級語言翻譯程序的一種,它將源語言書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。
(10)編譯詞語解釋百科擴展閱讀:
編譯程序的實現演算法較為復雜。這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系;同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。但是,由於高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用於翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。