明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

解釋程序與編譯程序簡介

[摘要]A、解釋程序所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如BASIC)書寫的源程序作為輸入,解釋一句后就提交計(jì)算機(jī)執(zhí)行一句,并不形成目標(biāo)程序。就像外語翻譯中的“口譯”一樣,說一句翻一句,不產(chǎn)生全文的翻譯文本。這種工作方式非常適合于人通過終端設(shè)備與計(jì)算機(jī)會話,如在終端上打一條命令或語句,解釋程...

A、解釋程序

所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如BASIC)書寫的源程序作為輸入,解釋一句后就提交計(jì)算機(jī)執(zhí)行一句,并不形成目標(biāo)程序。就像外語翻譯中的“口譯”一樣,說一句翻一句,不產(chǎn)生全文的翻譯文本。這種工作方式非常適合于人通過終端設(shè)備與計(jì)算機(jī)會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令并提交硬件立即執(zhí)行且將執(zhí)行結(jié)果反映到終端,從終端把命令打入后,就能立即得到計(jì)算結(jié)果。這的確是很方便的,很適合于一些小型機(jī)的計(jì)算問題。但解釋程序執(zhí)行速度很慢,例如源程序中出現(xiàn)循環(huán),則解釋程序也重復(fù)地解釋并提交執(zhí)行這一組語句,這就造成很大浪費(fèi)。

B、編譯程序

這是一類很重要的語言處理程序,它把高級語言(如FORTRAN、COBOL、Pascal、C等)源程序作為輸入,進(jìn)行翻譯轉(zhuǎn)換,產(chǎn)生出機(jī)器語言的目標(biāo)程序,然后再讓計(jì)算機(jī)去執(zhí)行這個(gè)目標(biāo)程序,得到計(jì)算結(jié)果。

編譯程序工作時(shí),先分析,后綜合,從而得到目標(biāo)程序。所謂分析,是指詞法分析和語法分析;所謂綜合是指代碼優(yōu)化,存儲分配和代碼生成。為了完成這些分析綜合任務(wù),編譯程序采用對源程序進(jìn)行多次掃描的辦法,每次掃描集中完成一項(xiàng)或幾項(xiàng)任務(wù),也有一項(xiàng)任務(wù)分散到幾次掃描去完成的。下面舉一個(gè)四遍掃描的例子:第一遍掃描做詞法分析;第二遍掃描做語法分析;第三遍掃描做代碼優(yōu)化和存儲分配;第四遍掃描做代碼生成。

值得一提的是,大多數(shù)的編譯程序直接產(chǎn)生機(jī)器語言的目標(biāo)代碼,形成可執(zhí)行的目標(biāo)文件,但也有的編譯程序則先產(chǎn)生匯編語言一級的符號代碼文件,然后再調(diào)用匯編程序進(jìn)行翻譯加工處理,最后產(chǎn)生可執(zhí)行的機(jī)器語言目標(biāo)文件。

在實(shí)際應(yīng)用中,對于需要經(jīng)常使用的有大量計(jì)算的大型題目,采用招待速度較快的編譯型的高級語言較好,雖然編譯過程本身較為復(fù)雜,但一旦形成目標(biāo)文件,以后可多次使用。相反,對于小型題目或計(jì)算簡單不太費(fèi)機(jī)時(shí)的題目,則多選用解釋型的會話式高級語言,如BASIC,這樣可以大大縮短編程及調(diào)試的時(shí)間。