深入編譯原理課程改革論文
時間:2022-06-03 10:20:00
導(dǎo)語:深入編譯原理課程改革論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
編者按:本文主要從引言;課程實(shí)驗(yàn)的重要性;課程實(shí)驗(yàn)的設(shè)計;小結(jié)進(jìn)行論述。其中,主要包括:編譯原理課程是計算機(jī)科學(xué)與技術(shù)專業(yè)的重要專業(yè)課、編譯原理是集理論與實(shí)踐于一體的一門課程、設(shè)計一組與理論內(nèi)容相配套的實(shí)驗(yàn)是十分必要、掌握C語言文件的基本操作、編寫程序?qū)斎氲脑闯绦蜃址M(jìn)行詞法分析、根據(jù)給定的文法編制調(diào)試遞歸下降分析程序、加深對語法分析中自頂向下分析法中的預(yù)測分析法的理解、利用預(yù)分析法對實(shí)驗(yàn)一中詞法分析產(chǎn)生的符號進(jìn)行語法分析、通過該實(shí)驗(yàn)使學(xué)生加深對語法分析中自下而上分析法中的LR分析法的理解、編譯原理課程在計算機(jī)課程體系中的重要地等,具體請詳見。
【摘要】本文根據(jù)編譯原理課程的特點(diǎn),結(jié)合自己的教學(xué)經(jīng)驗(yàn),探討了普通本科院校編譯原理的實(shí)踐教學(xué)內(nèi)容的設(shè)置,對普通高校更深入的教學(xué)改革和創(chuàng)新人才的培養(yǎng)具有一定的意義。
【關(guān)鍵詞】編譯原理教學(xué)內(nèi)容課程實(shí)驗(yàn)
1引言
編譯原理課程是計算機(jī)科學(xué)與技術(shù)專業(yè)的重要專業(yè)課,它不僅能幫助學(xué)生更深入地了解計算機(jī)以及計算機(jī)程序的本質(zhì),還能提高學(xué)生進(jìn)行問題求解的能力。本課程的理論性和實(shí)踐性都很強(qiáng)。國外和國內(nèi)分別從二十世紀(jì)六十和八十年代開始設(shè)置“編譯原理”課程,從文獻(xiàn)[1,2]兩本專著的內(nèi)容可以看出,幾十年來,“編譯原理”課程可以講授的內(nèi)容越來越多。設(shè)置該課程的目的在于系統(tǒng)地向?qū)W生講敘編譯程序設(shè)計的基本理論、編譯系統(tǒng)的結(jié)構(gòu)及編譯程序各部分的設(shè)計原理和實(shí)現(xiàn)技術(shù)。通過對這些知識的學(xué)習(xí),使學(xué)生既能掌握編譯理論和編譯方法等方面的基本知識,又具有設(shè)計、分析、實(shí)現(xiàn)和維護(hù)編譯程序等各方面的綜合能力。該課程一般包括理論教學(xué)和實(shí)驗(yàn)教學(xué)兩部分。編譯原理理論知識包括形式語言、有窮自動機(jī)等抽象內(nèi)容及大量的算法,較難理解和掌握,因此“編譯原理”的實(shí)驗(yàn)教學(xué)對于深化學(xué)生對所學(xué)理論知識的理解,提高學(xué)生的理論聯(lián)系實(shí)踐的能力和編程水平具有重要的作用。
本文根據(jù)編譯原理課程的特點(diǎn),結(jié)合自己的教學(xué)經(jīng)驗(yàn)與我院的實(shí)際情況,探討了普通本科院校編譯原理的實(shí)踐教學(xué)內(nèi)容的設(shè)置。
2課程實(shí)驗(yàn)的重要性
編譯原理是集理論與實(shí)踐于一體的一門課程,在理論課中所介紹的基本概念、原理、方法和算法,一定要通過實(shí)驗(yàn)加以理解和吸收,才能能夠達(dá)到真正的理解、吸收和掌握。編譯原理課程實(shí)驗(yàn)的內(nèi)容主要放在對詞法分析、語法分析和語義分析、中間代碼生成、中間代碼優(yōu)化和目標(biāo)代碼生成的方法上。由于編譯原理課程有很強(qiáng)的理論性與實(shí)踐性,在學(xué)習(xí)時普遍感到內(nèi)容抽象,不易理解,掌握起來難度很大。因此通過教學(xué)實(shí)踐和對學(xué)生所做的調(diào)查表明,設(shè)計一組與理論內(nèi)容相配套的實(shí)驗(yàn)是十分必要的。
3課程實(shí)驗(yàn)的設(shè)計
針對編譯原理課程的特點(diǎn)及要求,共設(shè)置了五個實(shí)驗(yàn)項(xiàng)目。這組實(shí)驗(yàn)既和理論課內(nèi)容相輔相承,同時相互之間又互相關(guān)聯(lián),構(gòu)成了一個實(shí)驗(yàn)整體。
實(shí)驗(yàn)一
題目:消去C、C++程序中的注釋(2學(xué)時,必做)
實(shí)驗(yàn)?zāi)康?掌握C語言文件的基本操作,消除源C語言程序中的注釋,為以后的編譯提供方便。
實(shí)驗(yàn)要求:對給定的帶注釋的C語言源程序,利用該程序去掉注釋,輸出去除注釋的源程序。
實(shí)驗(yàn)二
題目:詞法分析(必做,4學(xué)時)
目的:通過設(shè)計編制調(diào)試一個具體的詞法分析程序,加深對詞法分析原理的理解。并掌握在對程序設(shè)計語言源程序進(jìn)行掃描過程中將其分解為各類單詞的詞法分析方法。
要求:編寫程序?qū)斎氲脑闯绦蜃址M(jìn)行詞法分析,對符合下述文法描述的字符串,建立單詞符號表,不符合的字符串給出錯誤信息。
內(nèi)容:用擴(kuò)充的BNF表示如下:
<標(biāo)識符>→<字母>{<字母><數(shù)字>}
<整型常數(shù)>→<數(shù)字>{<數(shù)字>}
<算符>→+-*/()=
<字母>→abc…yABC…Y
<數(shù)字>→1234567890
實(shí)驗(yàn)三
題目:遞歸下降分析法(4學(xué)時,選做)
目的:根據(jù)給定的文法編制調(diào)試遞歸下降分析程序,以便對任意輸入的符號串進(jìn)行分析。本次實(shí)驗(yàn)的目的主要是加深對遞歸下降分析法的理解。
要求:對給定的文法,利用遞歸下降分析法對任意輸入的符號串進(jìn)行分析語法分析,對符合下述文法描述的字符串(表達(dá)式或賦值語句),給出中間代碼,不符合的字符串給出錯誤信息。轉(zhuǎn)中國論文聯(lián)盟-內(nèi)容:用擴(kuò)充的BNF表示如下:
<賦值語句>→<標(biāo)識符>=<表達(dá)式>
<表達(dá)式>→<表達(dá)式>{+<項(xiàng)>-<項(xiàng)>}<項(xiàng)>
<項(xiàng)>→<項(xiàng)>{*<因子>/<因子>}<因子>
<因子>→<標(biāo)識符>(<表達(dá)式>)
即:S→i=E
E→E+TE-TT
T→T*FT/FF
F→i(E)
實(shí)驗(yàn)四
題目:語法分析程序LL(1)(4學(xué)時,必做)
目的:通過該實(shí)驗(yàn)使學(xué)生掌握描述語法規(guī)則的文法,以及加深對語法分析中自頂向下分析法中的預(yù)測分析法的理解。
要求:對給定的文法建立預(yù)測分析表,利用預(yù)分析法對實(shí)驗(yàn)一中詞法分析產(chǎn)生的符號進(jìn)行語法分析,對符合下述文法描述的字符串(表達(dá)式或賦值語句),給出中間代碼,不符合的字符串給出錯誤信息。
內(nèi)容:用擴(kuò)充的BNF表示(同實(shí)驗(yàn)三)。
實(shí)驗(yàn)五
題目:語法分析程序LR(1)(4學(xué)時,必做)
目的:通過該實(shí)驗(yàn)使學(xué)生加深對語法分析中自下而上分析法中的LR分析法的理解。
要求:對給定的文法手工建立LR(1)分析表;利用LR分析法對實(shí)驗(yàn)二中詞法分析產(chǎn)生的符號進(jìn)行語法分析,對符合實(shí)驗(yàn)中文法描述的字符串(表達(dá)式或賦值語句)給出中間代碼;不符合的字符串給出錯誤信息。
內(nèi)容:用擴(kuò)充的BNF表示(同實(shí)驗(yàn)三)
4小結(jié)
編譯原理課程在計算機(jī)課程體系中的重要地位,決定了其課程建設(shè)和改革的長期性,對培養(yǎng)計算機(jī)專業(yè)的人才也有著重要的作用,探索該課程的教學(xué)方法,提高教學(xué)質(zhì)量是從事計算機(jī)教育工作者的必須重視的問題,也是一個永遠(yuǎn)值得探討的問題,我們根據(jù)我系的實(shí)際情況合理的運(yùn)用現(xiàn)代手段,綜合考慮多種因素,將該課程的教學(xué)改革推向更科學(xué)的發(fā)展道路。