c語言編譯程序是什么?
c編譯程序是由計(jì)算機(jī)廠家提供的一套軟件。c編譯程序又稱c語言編譯器,是指用c語言書寫的源程序,翻譯成等價(jià)的機(jī)器語言格式目標(biāo)程序的翻譯程序。
編譯程序?qū)儆诓捎蒙尚詫?shí)現(xiàn)途徑實(shí)現(xiàn)的翻譯程序。它以高級(jí)程序設(shè)計(jì)語言書寫的源程序作為輸入,而以匯編語言或機(jī)器語言表示的目標(biāo)程序作為輸出。編譯出的目標(biāo)程序通常還要經(jīng)歷運(yùn)行階段,以便在運(yùn)行程序的支持下運(yùn)行,加工初始數(shù)據(jù),算出所需的計(jì)算結(jié)果。
編譯程序的基本功能是把源程序(高級(jí)語言)翻譯成目標(biāo)程序。但是,作為一個(gè)具有實(shí)際應(yīng)用價(jià)值的編譯系統(tǒng),除了基本功能之外,還應(yīng)具備語法檢查、調(diào)試措施、修改手段、覆蓋處理、目標(biāo)程序優(yōu)化、不同語言合用以及人-機(jī)聯(lián)系等重要功能。
①語法檢查:檢查源程序是否合乎語法。如果不符合語法,編譯程序要指出語法錯(cuò)誤的部位、性質(zhì)和有關(guān)信息。編譯程序應(yīng)使用戶一次上機(jī),能夠盡可能多地查出錯(cuò)誤。
②調(diào)試措施:檢查源程序是否合乎設(shè)計(jì)者的意圖。為此,要求編譯程序在編譯出的目標(biāo)程序中安置一些輸出指令,以便在目標(biāo)程序運(yùn)行時(shí)能輸出程序動(dòng)態(tài)執(zhí)行情況的信息,如變量值的更改、程序執(zhí)行時(shí)所經(jīng)歷的線路等。這些信息有助于用戶核實(shí)和驗(yàn)證源程序是否表達(dá)了算法要求。
③修改手段:為用戶提供簡(jiǎn)便的修改源程序的手段。編譯程序通常要提供批量修改手段(用于修改數(shù)量較大或臨時(shí)不易修改的錯(cuò)誤)和現(xiàn)場(chǎng)修改手段(用于運(yùn)行時(shí)修改數(shù)量較少、臨時(shí)易改的錯(cuò)誤)。【相關(guān)推薦:《C語言視頻教程》】
④覆蓋處理:主要是為處理程序長(zhǎng)、數(shù)據(jù)量大的大型問題程序而設(shè)置的。基本思想是讓一些程序段和數(shù)據(jù)公用某些存儲(chǔ)區(qū),其中只存放當(dāng)前要用的程序或數(shù)據(jù);其余暫時(shí)不用的程序和數(shù)據(jù),先存放在磁盤等輔助存儲(chǔ)器中,待需要時(shí)動(dòng)態(tài)地調(diào)入。
⑤目標(biāo)程序優(yōu)化:提高目標(biāo)程序的質(zhì)量,即占用的存儲(chǔ)空間少,程序的運(yùn)行時(shí)間短。依據(jù)優(yōu)化目標(biāo)的不同,編譯程序可選擇實(shí)現(xiàn)表達(dá)式優(yōu)化、循環(huán)優(yōu)化或程序全局優(yōu)化。目標(biāo)程序優(yōu)化有的在源程序級(jí)上進(jìn)行,有的在目標(biāo)程序級(jí)上進(jìn)行。
⑥不同語言合用:其功能有助于用戶利用多種程序設(shè)計(jì)語言編寫應(yīng)用程序或套用已有的不同語言書寫的程序模塊。最為常見的是高級(jí)語言和匯編語言的合用。這不但可以彌補(bǔ)高級(jí)語言難于表達(dá)某些非數(shù)值加工操作或直接控制、訪問外圍設(shè)備和硬件寄存器之不足,而且還有利于用匯編語言編寫核心部分程序,以提高運(yùn)行效率。
⑦人-機(jī)聯(lián)系:確定編譯程序?qū)崿F(xiàn)方案時(shí)達(dá)到精心設(shè)計(jì)的功能。目的是便于用戶在編譯和運(yùn)行階段及時(shí)了解內(nèi)部工作情況,有效地監(jiān)督、控制系統(tǒng)的運(yùn)行。
早期編譯程序的實(shí)現(xiàn)方案,是把上述各項(xiàng)功能完全收納在編譯程序之中。然而,習(xí)慣做法是在操作系統(tǒng)的支持下,配置調(diào)試程序、編輯程序和連接裝配程序,用以協(xié)助實(shí)現(xiàn)程序的調(diào)試、修改、覆蓋處理,以及不同語言合用功能。但在設(shè)計(jì)編譯程序時(shí),仍須精心考慮如何與這些子系統(tǒng)銜接等問題。