亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        編譯原理課程的教學(xué)改革與實(shí)踐

        2017-02-27 01:22:09楊海燕
        計(jì)算機(jī)教育 2017年2期
        關(guān)鍵詞:內(nèi)容課程學(xué)生

        邵 兵,楊海燕,張 莉

        (1. 北京航空航天大學(xué) 軟件學(xué)院,北京 100191; 2. 北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院,北京 100191)

        編譯原理課程的教學(xué)改革與實(shí)踐

        邵 兵1,楊海燕2,張 莉1

        (1. 北京航空航天大學(xué) 軟件學(xué)院,北京 100191; 2. 北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院,北京 100191)

        編譯原理的新概念、新算法和新理論比較多,被計(jì)算機(jī)及軟件專業(yè)學(xué)生視為最難以掌握的專業(yè)基礎(chǔ)課之一。針對課程教學(xué)中難點(diǎn)比較集中的問題,為了讓學(xué)生能平緩地接受該課程的基礎(chǔ)理論和知識,提出兩遍教學(xué)法的思路,闡述如何將編譯原理的實(shí)踐環(huán)節(jié)和教學(xué)環(huán)節(jié)有機(jī)結(jié)合,對教學(xué)和實(shí)踐的各個環(huán)節(jié)進(jìn)行合理安排,并說明已取得的教學(xué)效果。

        編譯原理;課程實(shí)踐;課程改革

        1 編譯原理課程特點(diǎn)

        編譯原理課程作為本科計(jì)算機(jī)和軟件專業(yè)的專業(yè)基礎(chǔ)課,一直被學(xué)生公認(rèn)為是大學(xué)期間最難掌握的課程之一。該課程之所以難,從學(xué)生的角度看,主要表現(xiàn)在其理論性比較強(qiáng),新的概念和算法較多,具有很強(qiáng)的抽象性。從教師的角度看,主要表現(xiàn)在以下兩個方面:一方面是編譯原理課程的重點(diǎn)和難點(diǎn)較為集中;另一方面則是該課程的理論講授和實(shí)踐鍛煉兩部分之間的銜接關(guān)系不好處理。

        1.1 編譯原理知識體系的特點(diǎn)

        編譯原理課程的知識體系一般由詞法分析、語法分析、語義分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生產(chǎn)以及符號表管理和錯誤處理幾個章節(jié)組成。講解該課程一般也是按照這一順序遞進(jìn)展開,且差異多表現(xiàn)在后面幾個章節(jié)的前后順序上。這些章節(jié)中,最難理解的部分是詞法分析和語法分析,學(xué)生一旦在該部分的學(xué)習(xí)與理解上出現(xiàn)問題,就會產(chǎn)生挫敗感,將直接影響其后章節(jié)的學(xué)習(xí)興趣。

        各章節(jié)難度系數(shù)如圖1所示,數(shù)據(jù)由我們對北京航空航天大學(xué)軟件學(xué)院部分已修過該課程的學(xué)生進(jìn)行問卷調(diào)查而來,共發(fā)放問卷60份,回收55份。問卷將每章內(nèi)容的難度分為6檔:非常難、較難、一般、容易、很容易和不知道,分別對應(yīng)難度系數(shù)1.0、0.75、0.5、0.25、0.0和不計(jì)入。

        從圖1可以看出,語法分析和語義分析兩章的難度明顯高于其他章節(jié)的難度,在此形成一個頂峰,其次為代碼優(yōu)化。目標(biāo)代碼生成作為編譯器最末端的一章內(nèi)容,受不同目標(biāo)機(jī)器指令體系的影響,因此內(nèi)容變化較大,教師授課中可視學(xué)時數(shù)和教學(xué)目標(biāo)而作取舍。編譯器前端(分析部分)各章節(jié)依賴性很強(qiáng),而后端(綜合部分)各章節(jié)依賴性則較弱。如何在講授中克服語法分析等章節(jié)的難度,讓學(xué)生平緩地接受各部分知識,是授課教師在制訂教學(xué)計(jì)劃時必須考慮的一個問題。

        圖1 各章節(jié)難度系數(shù)示意圖

        1.2 編譯原理實(shí)踐環(huán)節(jié)

        編譯原理的理論性很強(qiáng),因此,為了把書本上的理論知識轉(zhuǎn)化為學(xué)生的實(shí)際技能,不少學(xué)校都為編譯原理課程配備了一定學(xué)時的實(shí)驗(yàn)環(huán)節(jié),包括課程中間的實(shí)驗(yàn)性作業(yè)或大作業(yè)形式的完整實(shí)驗(yàn)課程(權(quán)且稱之為編譯實(shí)踐),以便學(xué)生親自動手編程,實(shí)現(xiàn)一個小型編譯器或者完成其中的某些部分,進(jìn)一步鞏固對理論知識的理解與掌握。

        對于編譯實(shí)踐課程的安排,各院校基于各自的課程體系有自己的考量和安排。一些學(xué)校將編譯原理和編譯實(shí)踐作為完全獨(dú)立但有依賴關(guān)系的兩門課程分開講授;而有的學(xué)校則是將兩門課程融合成一門課程,或者雖然作為兩門課,但是同時安排在一個學(xué)期先后或交叉進(jìn)行。這兩種方法各有千秋,前者便于課程安排,但課程持續(xù)時間較長,理論部分和實(shí)踐部分脫節(jié);后者雖然解決了理論與實(shí)踐脫節(jié)問題,但是在一定時期內(nèi)如何合理地安排兩部分內(nèi)容,對課程組織來說構(gòu)成了挑戰(zhàn)。

        2 對課程教學(xué)的改革

        在編譯原理課程的所有內(nèi)容中,最難的知識點(diǎn)莫過于自底向上方法中的LR分析法,學(xué)生尤其對如何構(gòu)造識別規(guī)范句型活前綴的自動機(jī)較為困惑;其次可能是識別正則文法的有窮自動機(jī)的確定化及最小化問題。這兩個難點(diǎn)恰恰是自動(機(jī)器)構(gòu)造語法分析器和詞法分析器的方法,對于手工編寫程序以實(shí)現(xiàn)一個編譯程序而言并沒有影響。因此,編譯原理的講授可以分成兩遍進(jìn)行。

        首先,講授構(gòu)造一個編譯器的基礎(chǔ)知識,在詞法分析部分只講授用狀態(tài)圖構(gòu)造詞法分析器的手工方法;然后,跳過有窮自動機(jī)的相關(guān)知識,直接進(jìn)入語法分析部分;在語法分析一章,先給出一個語法分析器的總體概念,第一遍只講授所有手工實(shí)現(xiàn)語法分析器的方法,包括自頂向下分析法中的遞歸子程序法和自底向上分析法中的算符優(yōu)先分析法,跳過自頂向下的LL分析法和自底向上的LR分析法,所講授的遞歸子程序法足以保證學(xué)生能夠手工編寫一個語法分析程序;此后,按正常的教學(xué)順序依次講授后面的內(nèi)容。這種方法的具體過程和知識點(diǎn)組織如圖2所示。

        圖2 編譯過程和知識點(diǎn)組織

        這種方法中,第一遍首先給學(xué)生介紹一個完整的最簡單的編譯過程,如圖2中A列和B列對應(yīng)的知識點(diǎn)。這些內(nèi)容是構(gòu)造一個編譯器時必不可少的知識和技能,掌握了這些知識,就能保證學(xué)生可以做出一個可用的編譯程序。

        第一遍講授結(jié)束時,所有手工編寫編譯程序的方法全部講完,學(xué)生可以憑借這些知識開始編寫自己的編譯程序;此時,可以開始第二遍的講授。第二遍講授的內(nèi)容包括編譯程序的自動生成技術(shù),包括詞法分析部分的正則文法、自動機(jī)理論和LEX以及語法分析部分的LL分析法和LR分析法。代碼優(yōu)化和目標(biāo)代碼生成兩部分的內(nèi)容可以根據(jù)培養(yǎng)要求和課時長短選擇性地講授,可以放在第一遍講授,也可以放到第二遍中。

        3 編譯實(shí)踐環(huán)節(jié)的安排

        在第一遍講授過程中,每講到一個知識點(diǎn),教師就可以安排學(xué)生以作業(yè)的方式完成相應(yīng)部分的編譯程序,如講完詞法分析,可以讓學(xué)生編寫詞法分析模塊程序;講完遞歸子程序法,讓學(xué)生編寫語法分析模塊程序等。第一遍講授全部結(jié)束后,學(xué)生基本上學(xué)習(xí)了編寫一個簡單編譯程序的所有知識點(diǎn),中間完成的各個編譯程序子模塊拼接起來實(shí)際上就構(gòu)成一個內(nèi)容基本完整的編譯程序;也可以將上述作業(yè)僅僅作為課后練習(xí),而在第一遍講授結(jié)束后再布置一個大作業(yè)(或啟動編譯實(shí)踐實(shí)驗(yàn)課程),讓學(xué)生利用后半學(xué)期課程的時間編寫一個編譯器。與此同時,再進(jìn)行第二遍講授,并將第一遍講授中剩下的所有內(nèi)容全部補(bǔ)齊。這樣做的好處在于等到最難的LL和LR分析法講完時,正好趕上期末考試,學(xué)生可以趁熱打鐵,較好地理解和掌握自動化實(shí)現(xiàn)編譯器的相關(guān)內(nèi)容。

        在編譯大作業(yè)文法的選擇上,教師可以考慮選擇文獻(xiàn)[1-2]提供的PL/0文法和文獻(xiàn)[1]提供的Pascal-S文法或C0文法。

        對于大作業(yè),針對學(xué)有余力的學(xué)生,教師可以在他們完成一個完整的小型編譯器所有內(nèi)容的基礎(chǔ)上,鼓勵其對相應(yīng)文法進(jìn)行適當(dāng)擴(kuò)充或者是添加代碼優(yōu)化等選做內(nèi)容,以期讓學(xué)生從實(shí)踐方法上得到更多的鍛煉。針對學(xué)習(xí)能力一般的學(xué)生,教師可以采用為學(xué)生提供不完整的源代碼,讓其以填空方式完成其中一些模塊;此類題目由于提供了大部分源程序,只是讓學(xué)生參考教材或課堂上的示例,集中精力解決一些關(guān)鍵問題,以保證大多數(shù)學(xué)生能完成實(shí)踐任務(wù),真正達(dá)到通過課程實(shí)踐加深對編譯過程理解的目的。針對那些學(xué)習(xí)能力相對較弱的學(xué)生,教師則可以采用讓他們分析現(xiàn)有編譯器程序的做法;也就是說,并不要求他們自己設(shè)計(jì)開發(fā)一個具體的編譯器,而是通過讀懂現(xiàn)有的編譯程序,了解其工作原理,哪怕讓他們依葫蘆畫瓢地逐行輸入并調(diào)試現(xiàn)有的程序,找出現(xiàn)有程序中的印刷錯誤和不合理之處,都將對提升其動手能力起到一定作用。總之,編譯大作業(yè)的完成一定要因材施教,避免一刀切的教學(xué)模式[3]。

        4 效果分析

        通過對比實(shí)施兩遍教學(xué)法前后3年的教學(xué)效果發(fā)現(xiàn),雖然學(xué)生的編譯原理課程期末考試成績并沒有明顯提高,這可能是試題不同所致,但是學(xué)生普遍反映對整個編譯過程“有了更清晰地了解”。實(shí)施兩遍教學(xué)法之前,學(xué)生對編譯實(shí)踐課程的學(xué)習(xí)興趣不高,選修比例一直在低位徘徊,如2009級選修比例為22%、2010級無一人選修;而實(shí)施兩遍教學(xué)法之后,學(xué)生選修比例持續(xù)高達(dá)90%以上。

        在上述調(diào)查問卷中,針對“您認(rèn)為編譯實(shí)踐課程(大作業(yè))的作用”一問,有44%的學(xué)生認(rèn)為很有幫助,有33%的學(xué)生選擇“有幫助”,認(rèn)為“一般”的占比13%,只有大約10%的學(xué)生認(rèn)為幫助不大或完全沒有幫助。由此可以看出,學(xué)生對實(shí)踐環(huán)節(jié)的效果還是比較認(rèn)同的。

        5 結(jié) 語

        筆者根據(jù)編譯原理課程的特點(diǎn)和對學(xué)生接受能力的分析,提出將其整個編譯原理課程知識體系的講授過程分為編譯器的手工編寫和自動化生成兩遍的教學(xué)方式;同時,通過合理安排編譯實(shí)踐環(huán)節(jié),加深學(xué)生對相關(guān)知識的理解,培養(yǎng)學(xué)生的程序編寫能力。該教學(xué)改革的嘗試已在北京航空航天大學(xué)計(jì)算機(jī)學(xué)院和軟件學(xué)院本科教學(xué)實(shí)踐中試運(yùn)行3年以上,取得了很好的教學(xué)效果。

        將來,我們準(zhǔn)備對編譯實(shí)踐環(huán)節(jié)進(jìn)行深入探索,計(jì)劃開發(fā)基于云平臺的實(shí)驗(yàn)項(xiàng)目,為每位學(xué)生自動生成實(shí)驗(yàn)題目和內(nèi)容。該平臺在結(jié)果考查環(huán)節(jié)能夠自動生成測試用例,從而減少教師的工作量;對學(xué)生而言,通過該平臺能夠及時獲得相應(yīng)的指導(dǎo)和幫助。

        [1] 張莉, 楊海燕, 史曉華, 等. 編譯原理及編譯程序構(gòu)造[M]. 北京: 清華大學(xué)出版社, 2011: 366-438.

        [2] 陳英, 陳朔鷹, 王貴珍, 等. 編譯原理[M]. 2版. 北京: 北京理工大學(xué)出版社, 2006: 286-304.

        [3] 邵兵. 軟件學(xué)院編譯原理實(shí)踐課程的教學(xué)探索[J]. 計(jì)算機(jī)教育, 2016(8): 115-117.

        (編輯:宋文婷)

        1672-5913(2017)02-0073-03

        G642

        邵兵,男,副教授,研究方向?yàn)榫幾g技術(shù)和交互式設(shè)計(jì),shaobing@buaa.edu.cn。

        猜你喜歡
        內(nèi)容課程學(xué)生
        內(nèi)容回顧溫故知新
        數(shù)字圖像處理課程混合式教學(xué)改革與探索
        軟件設(shè)計(jì)與開發(fā)實(shí)踐課程探索與實(shí)踐
        為什么要學(xué)習(xí)HAA課程?
        趕不走的學(xué)生
        學(xué)生寫話
        主要內(nèi)容
        臺聲(2016年2期)2016-09-16 01:06:53
        學(xué)生寫的話
        聰明的學(xué)生等
        亚洲av无码久久精品蜜桃| 99视频偷拍视频一区二区三区| 五月激情四射开心久久久| 国产精品麻豆va在线播放| 国产影片中文字幕| 偷亚洲偷国产欧美高清| 亚洲天堂av中文字幕| 亚洲夫妻性生活免费视频| 人妻少妇精品无码专区二区| 手机看片1024精品国产| 一本色道久久88综合亚洲精品| 免费人成视网站在线剧情| 国产女厕偷窥系列在线视频| 北条麻妃在线视频观看| 亚洲春色视频在线观看| 蜜臀av一区二区三区免费观看| 曰本人做爰又黄又粗视频| 97视频在线播放| 亚洲成人免费久久av| 欧美高清视频手机在在线| 成 人 免费 黄 色 视频| 青青草视频华人绿色在线| 国产我不卡在线观看免费| 欧美黑人又大又粗xxxxx| 99久久久无码国产精品免费砚床| AV无码系列一区二区三区| 五月婷婷六月丁香久久综合| 亚洲熟妇久久国产精品| 日韩免费一区二区三区在线| 国产白浆流出一区二区| 99久久免费视频色老| 久久亚洲私人国产精品| 亚洲无AV码一区二区三区| 成人爽a毛片在线播放| av永久天堂一区二区三区| 老男人久久青草AV高清| 中文字幕视频二区三区| 国产日产欧产精品精品蜜芽| 久久久久国产精品熟女影院| h动漫尤物视频| 虎白m粉嫩小在线播放|