Ⅰ 編譯程序是什麼意思編譯是什麼意思
編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。
解釋程序是一種語言處理程序,在詞法、語法和語義分析方面與編譯程序的工作原理基本相同,但在運行用戶程序時,它直接執行源程序或源程序的內部形式(中間代碼)。
(1)編譯程序演算法設計擴展閱讀:
結構:
編譯過程分為分析和綜合兩個部分,並進一步劃分為詞法分析、語法分析、語義分析、代碼優化、存儲分配和代碼生成等六個相繼的邏輯步驟。這六個步驟只表示編譯程序各部分之間的邏輯聯系,而不是時間關系。
編譯過程既可以按照這六個邏輯步驟順序地執行,也可以按照平行互鎖方式去執行。在確定編譯程序的具體結構時,常常分若干遍實現。對於源程序或中間語言程序,從頭到尾掃視一次並實現所規定的工作稱作一遍。每一遍可以完成一個或相連幾個邏輯步驟的工作。
可以把詞法分析作為第一遍;語法分析和語義分析作為第二遍;代碼優化和存儲分配作為第三遍;代碼生成作為第四遍。反之,為了適應較小的存儲空間或提高目標程序質量,也可以把一個邏輯步驟的工作分為幾遍去執行。
Ⅱ 編譯程序的作用
編譯程序的作用是:將高級語言源程序翻譯成目標程序。
編譯程序是一種動作,是根據編譯原理技術,由高級程序設計語言編譯器翻譯成機器語言二進制代碼行為。編譯程序是動名詞,特指生成編譯器的軟體程序。編譯程序是把用高級程序設計語言或計算機匯編語言寫的源程序,翻譯成機器語言格式目標程序的翻譯程序。
屬於採用生成性實現途徑實現的翻譯程序。編譯程序以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出;編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
編譯程序的演算法
編譯程序的實現演算法較為復雜。這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系;同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。
但是,由於高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用於翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。
Ⅲ 請問程序設計的基本過程是怎樣的
(1)分析需求:了解清楚程序應有的功能。
(2)設計演算法:根據所需的功能,理清思路,排出完成功能的具體步驟,其中每一步都應當是簡單的、確定的。這一步也被稱為「邏輯編程」。
(3)編寫程序:根據前一步設計的演算法,編寫符合C++語言規則的程序文本。
(4)輸入與編輯程序:將程序文本輸入到計算機內,並保存為文件,文件名後綴為「.cpp」。
至此,產生了完整的程序文本,被稱為源程序或源代碼。保存源程序的文件(例如前面的c:\student\ch1_01.cpp)稱為源程序文件,簡稱源文件,文件名的後綴是「.cpp」。
(5)編譯(Compile):把C++程序編譯成機器語言程序。
編譯產生的程序稱為目標程序,目標程序被自動保存為文件,這一文件稱為目標文件,文件名的後綴是「.obj」。
VC++進行編譯的依據是源程序,如果源程序中的符號、詞語、整體結構等有差錯,超出了VC++的「理解能力」,VC++就無法完成編譯,這樣的差錯稱為語法錯誤。一旦發現語法錯誤,VC++就不生成目標文件,並在窗口下方列出錯誤;如果沒有語法錯誤,則顯示「0 error(s)」,並生成目標文件,允許繼續進行後面的步驟。
編譯沒有出現錯誤,僅僅說明程序中沒有語法錯誤。
(6)生成執行程序:從目標文件進一步連接生成Windows環境下的可執行文件,即文件名後綴為「.exe」的文件。
由於可執行文件是由若干個文件拼接而成的,其中不但有目標文件,還有另一些標準的庫文件,一些規模較大的程序還會有多個目標文件,所以這一步驟又被稱為連接(Link)。
(7)運行:在Windows環境中使用可執行文件。這是程序設計的最終目的。這一步也常被稱為「Run」。
邏輯錯誤:演算法錯,或演算法在轉變為程序時走樣了,導致程序能夠運行,卻不能實現預想的功能。這種錯誤被稱為「邏輯錯誤」。
在運行這一步,必須核對程序是否正確實現了預定的功能,如果功能不對,還必須到程序中尋找錯誤,糾正後再次經歷(5)、(6)、(7)各步,直到看不出錯誤為止。
Ⅳ 編譯原理課程設計-詞法分析器設計(C語言)
#include"stdio.h"/*定義I/O庫所用的某些宏和變數*/
#include"string.h"/*定義字元串庫函數*/
#include"conio.h"/*提供有關屏幕窗口操作函數*/
#include"ctype.h"/*分類函數*/
charprog[80]={'