當前位置:首頁 » 編程軟體 » 編譯程序的五個階段和功能

編譯程序的五個階段和功能

發布時間: 2022-04-24 04:56:51

⑴ 計算機中翻譯和編譯的含義。

A、解釋程序

所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如BASIC)書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。這種工作方式非常適合於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。這的確是很方便的,很適合於一些小型機的計算問題。但解釋程序執行速度很慢,例如源程序中出現循環,則解釋程序也重復地解釋並提交執行這一組語句,這就造成很大浪費。

B、編譯程序

這是一類很重要的語言處理程序,它把高級語言(如FORTRAN、COBOL、Pascal、C等)源程序作為輸入,進行翻譯轉換,產生出機器語言的目標程序,然後再讓計算機去執行這個目標程序,得到計算結果。

編譯程序工作時,先分析,後綜合,從而得到目標程序。所謂分析,是指詞法分析和語法分析;所謂綜合是指代碼優化,存儲分配和代碼生成。為了完成這些分析綜合任務,編譯程序採用對源程序進行多次掃描的辦法,每次掃描集中完成一項或幾項任務,也有一項任務分散到幾次掃描去完成的。下面舉一個四遍掃描的例子:第一遍掃描做詞法分析;第二遍掃描做語法分析;第三遍掃描做代碼優化和存儲分配;第四遍掃描做代碼生成。

值得一提的是,大多數的編譯程序直接產生機器語言的目標代碼,形成可執行的目標文件,但也有的編譯程序則先產生匯編語言一級的符號代碼文件,然後再調用匯編程序進行翻譯加工處理,最後產生可執行的機器語言目標文件。

在實際應用中,對於需要經常使用的有大量計算的大型題目,採用招待速度較快的編譯型的高級語言較好,雖然編譯過程本身較為復雜,但一旦形成目標文件,以後可多次使用。相反,對於小型題目或計算簡單不太費機時的題目,則多選用解釋型的會話式高級語言,如BASIC,這樣可以大大縮短編程及調試的時長。
望採納!!!

c語言中一個程序寫完後怎麼運行啊

當編寫完一個程序後,需要首先進行編譯,然後再運行。

如下圖所示,程序編寫完畢後,點擊工具欄中的Execute,選擇compile(編譯)。

如果沒有錯誤,再選擇Execute,選擇run(運行)。

(2)編譯程序的五個階段和功能擴展閱讀:

dll因為某些原因(最大的可能是因為它是個病毒或流氓軟體的dll文件,被殺軟刪除了)丟失了,但其相關的注冊信息卻還在,導致系統開機時還載入它,卻又找不到它的文件,所以報錯。

如果你點擊「確定」後,系統沒有什麼不正常,並且可以正常運行的話,你可以用這個軟體清理掉這個開機載入項,以後開機就不會出現這個信息了。

下載和安裝編譯器。C語言需要通過編譯器解釋為計算機可以理解的機器碼。 編譯器通常是免費的, 不同的操作系統上一般使用不同的編譯器。

對於Windows系統, 可以嘗試 Microsoft Visual Studio Express,其是Windows平台上最流行的多語言IDE(集成開發環境),其集成了Microsoft開發的C語言編譯器。對於OS X系統, Xcode是一款優秀的多語言IDE,其集成了C語言的編譯器。對於Linux, gcc是一個不錯的也是最流行的選擇。

⑶ 急!!!!!!!!解釋程序與編譯程序有什麼區別,各舉例!!!!!!

編譯程序和解釋程序2006年10月16日
星期一
14:26如果一個程序能夠把某一種語言程序(稱為源語言程序)改造成為另一種語言程序(稱為目標語言程序),則這親戚的程序稱為「翻譯程序」。如果源語言是「高級語言」(諸如FORTRAN、PASCAL等等),而目標語言是「低級語言」(如匯編語言或機器語言),則這樣的翻譯程序稱為「編譯程序」。
現在的計算機尚不能直接執行高級語言程序。執行一個高級語言程序大體上要分兩步:第一步,把高級語言的源程序編譯成低級語言的目標程序;第二步,運行這個目標程序。編譯程序的典型工作過程是:輸入源程序,對它進行加工處理,輸出目標程序。加工處理是非常復雜的過程,它又可劃分成以下幾個階段:源程序→詞法分析→語法分析→產生中間代碼→優化→目標代碼生成→目標程序。
第一階段是詞法分析。承擔詞法分析任務的程序稱為「掃描器」。詞法分析的任務是:對構成源程序的字元串進行掃描和分解。第二階段是語法分析。承擔語法分析任務的程序稱為「分析器」。語法分析的任務是:根據語法規則,把描掃器所提供的結果分析成各類語法范疇。第三階段是產生中間代碼。承擔產生中間代碼任務的程序稱為「中間代碼產生器」。其任務是:按照語法分析器所識別出的語法范疇,產生相應的中間指令。第四階段是優化,即代碼優化。優化的任務是對前階段產生的中間代碼進行加工變換,以便使生成的目標程序,能運行得更快更省(省內存)。第五階段是目標代碼生成。這一階段的任務是:按照優化後的中間代碼和其它有關信息生成目標程序。這種目標程序可以在計算機上直接執行。執行這個目標程序,就可得到一個高級語言程序的結果。
我們知道,所謂翻譯程序是這樣一種程序,它能夠把用甲語言寫的程序翻譯成與之等價的用乙語言寫的程序。這里的甲語言是該翻譯程序的源語言,而乙語言則為該翻譯程序的目標語言。對於編譯程序而言,源程序是被加工的對象,而目標程序是加工後的結果。
在計算機上執行用某種高級語言寫的源程序,通常有兩種方式:一是編譯執行方式,二是解釋執行方式。
採用編譯執行方式執行源程序時要分兩大步:編譯和運行。編譯中的加工處理過程又可分為五個階段。
解釋執行方式與編譯執行方式是不同的,其根本區別在於:編譯方式把源程序的執行過程嚴格地分成兩大步:編譯和運行。即先把源程序全部翻譯成目標代碼,然後再運行此目標代碼,獲執行結果。解釋方式則不然。它是按照源程序中語句的動態順序,直接地逐句進行分析解釋,並立即執行。所以,解釋程序是這樣一種程序,它能夠按照源程序中語句的動態順序,逐句地分析解釋並執行,直至源程序結束。
與編譯程序一樣,解釋程序也與源語言及計算機有關。同一台計算機上不同語言的解釋程序是不同的;同一種語言在不同的計算機上的解釋程序也可能不同。同一種高級語言的源程序,它可以採用解釋執行方式,也可以採用編譯執行方式。例如,BASIC語言有解釋BASIC和編譯BASIC之分。前者執行速度慢;後者執行速度快。編譯程序和解釋程序都屬於系統程序。

⑷ c編譯程序是什麼

c編譯程序是將c語言程序編譯成目標代碼程序的程序,即正確答案應該選擇D。

1、c語言是目前世界上最流行、使用最廣泛的面向過程的高級程序設計語言。 c語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用c語言明顯優於其它高級語言,許多大型應用軟體都是用c語言編寫的。

2、編譯就是利用編譯程序從源語言編寫的源程序產生目標程序的過程,其中的五個階段分別是詞法分析、語法分析、語義檢查和中間代碼生成、代碼優化、目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

(4)編譯程序的五個階段和功能擴展閱讀

c編譯程序的語言特點

對於c編譯程序來說,其語言的特點如下:

1、c語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護,而且表現能力和處理能力極強。

2、c語言具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。

3、由於c語言實現了對硬體的編程操作,因此集高級語言和低級語言的功能於一體。它既可用於系統軟體的開發,也適合於應用軟體的開發。

4、此外,c語言還具有效率高、可移植性強等特點。因此它廣泛地移植到了各類各型計算機上,從而形成了多種版本。

⑸ c/c++程序編譯過程的幾個階段,以及它們的作用

r如果不細分的話
那麼就編譯 和鏈接兩個階段。

編譯 是從.c/.cpp生成.o文件 也就是以文件為單位 生成二進制數據
鏈接 是把.o .a 等 生成可執行文件
就是把所有的文件整合成一個文件用來運行。

⑹ 什麼是編譯程序

編譯程序指將某一種程序設計語言寫的程序翻譯成等價的另一種語言的程序的程序, 稱之為編譯程序

編譯程序也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。

它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。

編譯程序的實現演算法較為復雜,這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系,同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。

由於高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用於翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。

(6)編譯程序的五個階段和功能擴展閱讀:

編譯流程分為了四個步驟:

1.預處理,生成預編譯文件(.文件)

2.編譯,生成匯編代碼(.s文件)

3.匯編,生成目標文件(.o文件)

4.鏈接,生成可執行文件

⑺ 編譯原理,小問題提問!!

無符號常數的識別工作通常在編譯的詞法分析階段完成
編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查&[font style="BACKGROUND-COLOR: #ffff00"]中間代碼[/font]生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
詞法分析器的功能和輸出形式
詞法分析器的功能是輸入源程序,輸出單詞符號。單詞符號是一個程序語言的基本語法符號。程序語言的單詞符號一般可分為下列五種。

(1)關鍵字

是由程序語言定義的具有固定意義的標志符。有時稱這些標志符為保留字或基本字。例如,Pascal中的begin,end,if,while都是保留字。這些字通常不用作一般標志符。

(2)標識符

用來表示各種名字,如變數名、數組名、過程名等等。

(3)常數

常數的類型一般有整型、實型、布爾型、文字型等等。例如,100,3.14159,TRUE,『Sample』。

(4)運算符

如+、-、*、/等等

(5)界符

如逗號、分號、括弧、/*,*/等等。

⑻ 什麼是編譯

編譯(compilation , compile) 1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。 2、用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。 編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
編譯語言是一種以編譯器來實現的編程語言。它不像直譯語言一樣,由解釋器將代碼一句一句運行,而是以編譯器,先將代碼編譯為機器碼,再加以運行。理論上,任何編程語言都可以是編譯式,或直譯式的。它們之間的區別,僅與程序的應用有關。

⑼ 編譯原理

編譯原理):利用編譯程序從源語言編寫的源程序產生目標程序的過程; 用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。

編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成

(9)編譯程序的五個階段和功能擴展閱讀:

編譯程序的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最後看是否構成一個符合要求的程序,按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程序是最終的一個語法單位。

編譯程序的語法規則可用上下文無關文法來刻畫。語法分析的方法分為兩種:自上而下分析法和自下而上分析法。自上而下就是從文法的開始符號出發,向下推導,推出句子。

而自下而上分析法採用的是移進歸約法,基本思想是:用一個寄存符號的先進後出棧,把輸入符號一個一個地移進棧里,當棧頂形成某個產生式的一個候選式時,即把棧頂的這一部分歸約成該產生式的左鄰符號。

熱點內容
獲取資料庫所有表 發布:2025-07-05 09:39:12 瀏覽:652
wcfphp 發布:2025-07-05 09:39:07 瀏覽:176
解壓密碼對 發布:2025-07-05 09:33:00 瀏覽:585
廣東金稅盤的伺服器地址是什麼 發布:2025-07-05 09:10:29 瀏覽:703
掛式手機卡的服務密碼是多少 發布:2025-07-05 08:57:40 瀏覽:943
電信卡密碼八位數是多少 發布:2025-07-05 08:49:37 瀏覽:440
配置高用的久選什麼電腦 發布:2025-07-05 08:22:40 瀏覽:741
迷你世界如何卡進設密碼的房間 發布:2025-07-05 08:15:16 瀏覽:882
小米9se買哪個配置 發布:2025-07-05 07:57:32 瀏覽:364
金山快盤拒絕訪問 發布:2025-07-05 07:42:29 瀏覽:251