編譯原理教學(xué)研究論文

編譯原理教學(xué)研究論文

ID:5810931

大?。?5.50 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2017-12-25

編譯原理教學(xué)研究論文_第1頁(yè)
編譯原理教學(xué)研究論文_第2頁(yè)
編譯原理教學(xué)研究論文_第3頁(yè)
編譯原理教學(xué)研究論文_第4頁(yè)
資源描述:

《編譯原理教學(xué)研究論文》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。

1、《編譯原理》的教學(xué)與實(shí)際相結(jié)合的再探討陳意云張昱(中國(guó)科學(xué)技術(shù)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)系,安徽合肥230026)摘要:本文介紹我們?cè)凇毒幾g原理》課程中聯(lián)系編程語(yǔ)言實(shí)際和改進(jìn)課程設(shè)計(jì)的經(jīng)驗(yàn)或嘗試。在聯(lián)系編程語(yǔ)言方面,主要是引導(dǎo)學(xué)生用編譯的原理和技術(shù)來(lái)分析典型程序在編譯(包括連接)和運(yùn)行時(shí)被發(fā)現(xiàn)的錯(cuò)誤,分析典型程序的目標(biāo)代碼和運(yùn)行時(shí)的輸出;在課程設(shè)計(jì)方面,主要是讓學(xué)生合作完成一個(gè)簡(jiǎn)單的編譯器,并采用教師主導(dǎo)、同學(xué)參與、公開(kāi)評(píng)比的評(píng)分方式。通過(guò)這兩方面的努力,激發(fā)了學(xué)生的學(xué)習(xí)興趣,幫助他們牢固地掌握了理論和技術(shù),還提高了他們的軟件工程意識(shí)、質(zhì)量意識(shí)和團(tuán)隊(duì)意識(shí)。關(guān)鍵詞:編譯原理;程序設(shè)計(jì)語(yǔ)言;

2、課程實(shí)踐;教學(xué)經(jīng)驗(yàn)1引言編程語(yǔ)言的編譯原理是計(jì)算機(jī)專業(yè)一門非常有用的核心課程,又是一門需要較大投入的課程。怎樣激發(fā)學(xué)生的學(xué)習(xí)熱情,努力學(xué)好本課程?我們的策略主要有如下三點(diǎn):1、首先是引導(dǎo)學(xué)生注重對(duì)編譯原理和技術(shù)的宏觀理解和全局把握,不把學(xué)生的注意力分散到一些枝節(jié)的算法上。2、其次,在課堂上和習(xí)題中準(zhǔn)備了許多從實(shí)際程序的編譯和運(yùn)行時(shí)碰到的問(wèn)題中抽象出來(lái)的例子,鼓勵(lì)學(xué)生用所學(xué)的知識(shí)去分析、解決、理解實(shí)際編程中遇到的問(wèn)題和發(fā)生的現(xiàn)象,激發(fā)學(xué)生學(xué)習(xí)編譯原理和技術(shù)的積極性。在“《編譯原理》的教學(xué)與實(shí)際相結(jié)合的探討”[1]一文中我們已經(jīng)做過(guò)一些這方面的探討,本文進(jìn)一步介紹我們的經(jīng)驗(yàn),以供國(guó)內(nèi)

3、同行參考與切磋。3、最后,恢復(fù)了要求學(xué)生完成一個(gè)簡(jiǎn)單編譯器的課程設(shè)計(jì)。通過(guò)正反兩方面的經(jīng)驗(yàn),我們認(rèn)為一定規(guī)模的課程設(shè)計(jì)是使學(xué)生牢固掌握本課程的理論和技術(shù),融會(huì)貫通書(shū)本知識(shí)的重要手段。我們調(diào)研了國(guó)外一些知名大學(xué)的編譯原理課程設(shè)計(jì),以加州大學(xué)伯克利分校的編譯課程設(shè)計(jì)[2]為基礎(chǔ),改編出適用于我們學(xué)生的課程設(shè)計(jì)。針對(duì)學(xué)生中存在的輕視和拷貝課程設(shè)計(jì)的不良現(xiàn)象,我們加強(qiáng)課程設(shè)計(jì)的管理,并采用教師主導(dǎo)、同學(xué)參與、公開(kāi)評(píng)比的評(píng)分方式,調(diào)動(dòng)學(xué)生自己完成課程設(shè)計(jì)的熱情,降低抄襲現(xiàn)象。本文介紹我們?cè)诩訌?qiáng)課程設(shè)計(jì)的過(guò)程管理和改進(jìn)考評(píng)方式上的經(jīng)驗(yàn)和體會(huì)。該課程設(shè)計(jì)的完整介紹已另外行文“編譯原理課程實(shí)踐改

4、革探索”,可見(jiàn)網(wǎng)頁(yè)http://staff.ustc.edu.cn/~yuzhang/compiler/。2教學(xué)聯(lián)系編程語(yǔ)言實(shí)際的探討基于下面幾點(diǎn)考慮,我們選擇C語(yǔ)言作為實(shí)例語(yǔ)言。1、程序設(shè)計(jì)的教學(xué)大都采用C語(yǔ)言,C語(yǔ)言是本科生最熟悉的編程語(yǔ)言。2、C語(yǔ)言編譯器一般都以匯編語(yǔ)言作為目標(biāo)語(yǔ)言,這便于分析源程序所對(duì)應(yīng)的目標(biāo)代碼。3、C不是類型安全的語(yǔ)言,C程序很容易出現(xiàn)難以捉摸的錯(cuò)誤。編譯知識(shí)有助于分析這些錯(cuò)誤。4、通過(guò)編譯原理課堂上和習(xí)題中展示和分析的例子,學(xué)生對(duì)C語(yǔ)言的掌握能達(dá)到一個(gè)新的高度。下面介紹我們所采用的一些典型小程序,這些例子及更多的例子在我們編寫(xiě)的教材[3]、習(xí)題解答

5、[4]和網(wǎng)頁(yè)http://staff.ustc.edu.cn/~yiyun/中可以找到。所使用的編譯器是X86/Linux上的GCC。42.1類型系統(tǒng)類型系統(tǒng)的設(shè)計(jì)是現(xiàn)代編程語(yǔ)言設(shè)計(jì)的核心,掌握語(yǔ)言的類型系統(tǒng)也是學(xué)好編程語(yǔ)言的重要一環(huán)。但是國(guó)內(nèi)編譯原理大部分教材對(duì)類型系統(tǒng)的介紹比較簡(jiǎn)單,難以讓學(xué)生體會(huì)到它在編程語(yǔ)言中的重要性。我們使用例1和例2這樣的小程序,用類型系統(tǒng)的觀點(diǎn)解釋其中的問(wèn)題,學(xué)生很快領(lǐng)會(huì)到了類型系統(tǒng)的重要作用。例1編譯圖1的C語(yǔ)言程序時(shí),GCC報(bào)告最后一行(程序列成左右兩欄)有錯(cuò)誤:incompatibletypesinreturnC語(yǔ)言的數(shù)組和結(jié)構(gòu)體都是構(gòu)造類型,

6、為什么函數(shù)fun2有類型錯(cuò)誤,而函數(shù)fun1沒(méi)有?typedefintA1[10];

7、A2*fun1()typedefintA2[10];

8、{return(&a);}A1a;

9、typedefstruct{inti;}S1;

10、S2fun2()typedefstruct{inti;}S2;

11、{return(s);}S1s;

12、圖1結(jié)構(gòu)等價(jià)與名字等價(jià)的例子結(jié)構(gòu)等價(jià)和名字等價(jià)是許多教材都提到的概念,但學(xué)生認(rèn)為它們離自己很遙遠(yuǎn),無(wú)需關(guān)心和掌握。C語(yǔ)言對(duì)除結(jié)構(gòu)體類型以外的其它類型都使用結(jié)構(gòu)等價(jià),而對(duì)結(jié)構(gòu)體類型使用名字等價(jià),因此可用這樣的例子來(lái)解釋這兩個(gè)概念的區(qū)別和重要性。(1)文件1

13、(2)文

14、件2typedefintA[10][20];

15、typedefintA[10][20];Aa;

16、Aa;A*fun(){return(a);}

17、A*fun(){return(&a);}編譯該函數(shù)時(shí),報(bào)告的類型錯(cuò)誤如下:

18、編譯該函數(shù)時(shí),沒(méi)有類型方面的錯(cuò)誤。warning:returnfromincompatiblepointertype

19、

20、(4)文件4(3)文件3

21、typedefintA[10][20];typedefintA[10][20];

22、Aa;typedefintB[20];

23、

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。