前言:我們精心挑選了數(shù)篇優(yōu)質(zhì)編譯原理論文文章,供您閱讀參考。期待這些文章能為您帶來(lái)啟發(fā),助您在寫作的道路上更上一層樓。

CDIO工程教育模式是能力本位的培養(yǎng)模式,其優(yōu)勢(shì)在于讓學(xué)生以主動(dòng)、團(tuán)隊(duì)合作、課程與課程之間有機(jī)聯(lián)系的學(xué)習(xí)方式,獲取與工程實(shí)踐相關(guān)的知識(shí)與能力。CDIO培養(yǎng)大綱將工科畢業(yè)生的能力分為工程基礎(chǔ)知識(shí)、個(gè)人能力、團(tuán)隊(duì)合作能力和工程系統(tǒng)能力4個(gè)層面,大綱要求以綜合的培養(yǎng)方式使學(xué)生在這4個(gè)層面達(dá)到預(yù)定目標(biāo)。只有把知識(shí)、能力、社會(huì)需求融合起來(lái),以能力為導(dǎo)向,以學(xué)科知識(shí)和社會(huì)需要為依托,整合課程組織結(jié)構(gòu),才能培養(yǎng)出符合社會(huì)經(jīng)濟(jì)發(fā)展要求的工程技術(shù)人才。CDIO工程教育以實(shí)際應(yīng)用項(xiàng)目的開(kāi)發(fā)過(guò)程為主線,提煉出項(xiàng)目開(kāi)發(fā)經(jīng)歷的構(gòu)思、設(shè)計(jì)、實(shí)施、運(yùn)行4個(gè)主要環(huán)節(jié),培養(yǎng)學(xué)生系統(tǒng)開(kāi)發(fā)的能力[3-4]。實(shí)施CDIO工程教育模式,基本原則是落實(shí)“做中學(xué)”以及“基于項(xiàng)目的學(xué)習(xí)”,它體現(xiàn)了現(xiàn)代工程師所應(yīng)具備的服務(wù)于現(xiàn)代工業(yè)產(chǎn)品從構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)到運(yùn)行的全過(guò)程所必須擁有的基本能力。
課程教學(xué)改革從以下4個(gè)方面展開(kāi)。1)學(xué)生分組,導(dǎo)入項(xiàng)目。課程教學(xué)以項(xiàng)目導(dǎo)入的方式開(kāi)始,首先鼓勵(lì)學(xué)生搜集編譯基礎(chǔ)理論和技術(shù)在計(jì)算機(jī)應(yīng)用領(lǐng)域的成功案例;其次引導(dǎo)學(xué)生搜集開(kāi)源的編譯工具,按照支持的源語(yǔ)言和語(yǔ)法分析方法分類。以上兩項(xiàng)前期工作對(duì)應(yīng)CDIO模式的構(gòu)思部分,需明確客戶的需求,考慮技術(shù)、企業(yè)戰(zhàn)略和制度等因素,不斷改進(jìn)概念、技術(shù)和商業(yè)計(jì)劃。項(xiàng)目的最終目標(biāo)是用C語(yǔ)言編寫一個(gè)PL/0語(yǔ)言處理系統(tǒng)。在教學(xué)過(guò)程中,學(xué)生分成若干個(gè)項(xiàng)目組,在教師的指導(dǎo)下編寫項(xiàng)目計(jì)劃書,劃分項(xiàng)目的功能模塊;指定各個(gè)模塊的負(fù)責(zé)人,模擬實(shí)際項(xiàng)目開(kāi)發(fā),進(jìn)行分工協(xié)作。2)案例驅(qū)動(dòng),模仿提升。CDIO工程教育模式要充分體現(xiàn)“做中學(xué)”,以“項(xiàng)目案例”為載體組織整個(gè)教學(xué)過(guò)程,以案例開(kāi)發(fā)過(guò)程安排教學(xué)內(nèi)容,靈活運(yùn)用啟發(fā)式和研究性的教學(xué)方法。課程教學(xué)要為學(xué)生構(gòu)建項(xiàng)目開(kāi)發(fā)的情景,調(diào)動(dòng)學(xué)生的主動(dòng)性與參與性,提高學(xué)生的實(shí)踐創(chuàng)新能力。在編譯原理課程教學(xué)過(guò)程中,我們發(fā)現(xiàn)有些學(xué)生學(xué)習(xí)缺乏積極性和主動(dòng)性,課外缺少自主訓(xùn)練和探索,雖然通過(guò)了課程考核,但是實(shí)際只了解到一些基本概念和零碎的知識(shí)斷點(diǎn),不具備運(yùn)用所學(xué)原理和技術(shù)進(jìn)行編譯器開(kāi)發(fā)的能力。為了培養(yǎng)學(xué)生“構(gòu)思—設(shè)計(jì)—實(shí)現(xiàn)—運(yùn)作”編譯系統(tǒng)的技能,我們將編譯原理的學(xué)習(xí)過(guò)程分為模仿和提升兩個(gè)階段。(1)模仿階段的主要目標(biāo)是以PL/0語(yǔ)言處理系統(tǒng)為案例,引導(dǎo)學(xué)生學(xué)習(xí)基礎(chǔ)知識(shí),掌握基本算法,激發(fā)學(xué)生興趣。項(xiàng)目開(kāi)發(fā)分為8項(xiàng)子任務(wù),這些任務(wù)可在教師的指導(dǎo)下完成。任務(wù)1:安裝測(cè)試用C語(yǔ)言實(shí)現(xiàn)的PL/0語(yǔ)言處理系統(tǒng);完成PL/0語(yǔ)言語(yǔ)法的EBNF描述。任務(wù)2:PL/0編譯程序中詞法分析程序的設(shè)計(jì)和實(shí)現(xiàn)。任務(wù)3:PL/0編譯程序中語(yǔ)法分析程序的設(shè)計(jì)和實(shí)現(xiàn);自頂向下遞歸調(diào)用子程序的方法。任務(wù)4:PL/0編譯程序中語(yǔ)義分析和中間代碼生成。任務(wù)5:PL/0編譯程序中符號(hào)表的設(shè)計(jì)與實(shí)現(xiàn)。任務(wù)6:PL/0編譯程序中運(yùn)行時(shí)的存儲(chǔ)組織。任務(wù)7:PL/0編譯程序中的目標(biāo)代碼生成。任務(wù)8:PL/0編譯程序各階段整合運(yùn)行,編寫PL/0語(yǔ)言使用說(shuō)明書。教師可展示用C語(yǔ)言實(shí)現(xiàn)的案例,要求學(xué)生模仿整個(gè)實(shí)現(xiàn)過(guò)程,用Java語(yǔ)言再次實(shí)現(xiàn)PL/0語(yǔ)言處理系統(tǒng)。學(xué)生則通過(guò)此案例,模擬項(xiàng)目開(kāi)發(fā)全過(guò)程。(2)提升階段的主要目標(biāo)是讓學(xué)生學(xué)習(xí)編譯器開(kāi)發(fā)的流程,學(xué)會(huì)運(yùn)用編譯技術(shù)進(jìn)行項(xiàng)目開(kāi)發(fā)。本階段分為以下幾個(gè)步驟。步驟1:編譯器程序設(shè)計(jì)提高。定義一個(gè)待實(shí)現(xiàn)的源語(yǔ)言,如PL/0語(yǔ)言的擴(kuò)充或者C語(yǔ)言的一個(gè)子集,要求學(xué)生用C或者Java實(shí)現(xiàn)編譯程序。步驟2:編譯技術(shù)擴(kuò)展。引導(dǎo)學(xué)生學(xué)習(xí)面向?qū)ο笳Z(yǔ)言編譯技術(shù),如收集整理開(kāi)源編譯器GCC的資料,描述GCC的總體結(jié)構(gòu)、編譯流程、代碼組織。步驟3:編譯器實(shí)用工具。引導(dǎo)學(xué)生學(xué)習(xí)嵌入式系統(tǒng)編譯器及其工具的應(yīng)用開(kāi)發(fā),包括C和Java編譯器開(kāi)發(fā)。步驟4:項(xiàng)目實(shí)訓(xùn)。引導(dǎo)學(xué)生利用編譯技術(shù)進(jìn)行項(xiàng)目開(kāi)發(fā),如設(shè)計(jì)開(kāi)發(fā)C語(yǔ)言程序設(shè)計(jì)自動(dòng)評(píng)分系統(tǒng)、基于語(yǔ)法分析技術(shù)的企業(yè)名稱識(shí)別算法、基于語(yǔ)義分析的數(shù)據(jù)驅(qū)動(dòng)型漏洞檢測(cè)方法、編譯原理在通信協(xié)議轉(zhuǎn)換中的應(yīng)用、編譯原理在反病毒技術(shù)中的研究和應(yīng)用等。3)開(kāi)放資源,自主協(xié)作。CDIO注重自主學(xué)習(xí)能力的培養(yǎng),提升學(xué)生獨(dú)立解決問(wèn)題的能力,同時(shí)也重視團(tuán)隊(duì)協(xié)作精神的培養(yǎng),發(fā)揮團(tuán)隊(duì)的力量,協(xié)同工作完成任務(wù)。網(wǎng)絡(luò)環(huán)境下的自主和協(xié)作學(xué)習(xí)要求教師提供充分的網(wǎng)絡(luò)資源。在教學(xué)中,課程組搜集整理了國(guó)內(nèi)外編譯原理課程的教學(xué)資源,整理了各種實(shí)用編程語(yǔ)言及其表示規(guī)則,設(shè)計(jì)了適合學(xué)生需要的“做中學(xué)”項(xiàng)目和任務(wù),并在課程的教學(xué)網(wǎng)絡(luò)平臺(tái)共享,通過(guò)開(kāi)放資源和自主協(xié)作的學(xué)習(xí),鼓勵(lì)學(xué)生在課外通過(guò)網(wǎng)絡(luò)和移動(dòng)設(shè)備開(kāi)展學(xué)習(xí)討論,用課外學(xué)習(xí)彌補(bǔ)課程學(xué)時(shí)的不足;通過(guò)課外自學(xué),充分發(fā)揮學(xué)生的主觀能動(dòng)性,鍛煉學(xué)生“自主設(shè)計(jì)、自主實(shí)現(xiàn)、自由探索”,引導(dǎo)和鼓勵(lì)學(xué)生積極組織并參與項(xiàng)目組的學(xué)習(xí)和研討活動(dòng),讓個(gè)人融入項(xiàng)目團(tuán)隊(duì),提升整個(gè)團(tuán)隊(duì)的工程實(shí)踐能力。4)考核評(píng)價(jià),多點(diǎn)多面。CDIO注重工程實(shí)踐能力的培養(yǎng),工程實(shí)踐能力是各種能力的綜合體現(xiàn),因此考核評(píng)價(jià)要兼顧這種特性。所謂多點(diǎn)主要是指編譯原理具有紛繁復(fù)雜的知識(shí)點(diǎn),因此對(duì)知識(shí)點(diǎn)的考核應(yīng)以促進(jìn)學(xué)生主動(dòng)學(xué)習(xí)、研究性學(xué)習(xí)為目的,注重對(duì)學(xué)習(xí)過(guò)程的考查。教師可通過(guò)查看學(xué)習(xí)記錄、平時(shí)作業(yè)和練習(xí)情況,考核學(xué)生對(duì)基本知識(shí)點(diǎn)的掌握情況;通過(guò)小組活動(dòng)記錄,查看學(xué)生在項(xiàng)目組討論中的活躍度,了解學(xué)生提出問(wèn)題的數(shù)量和質(zhì)量以及解決問(wèn)題的思路,考核學(xué)生的知識(shí)整合和應(yīng)用能力。所謂多面主要是指編譯原理課程在培養(yǎng)學(xué)生實(shí)踐創(chuàng)新能力方面具有多面性,因此考核評(píng)價(jià)方式要有利于培養(yǎng)創(chuàng)新能力、實(shí)踐技能、解決實(shí)際問(wèn)題能力,從多個(gè)層面開(kāi)展。教師可通過(guò)對(duì)項(xiàng)目構(gòu)思與設(shè)計(jì)展示、子項(xiàng)目實(shí)施情況、項(xiàng)目匯報(bào)與答辯、學(xué)生的自評(píng)與互評(píng)、教師與企業(yè)工程師的評(píng)價(jià)等多種方式考核學(xué)生的專業(yè)知識(shí)、個(gè)人自身能力、團(tuán)隊(duì)合作能力、設(shè)計(jì)項(xiàng)目和開(kāi)發(fā)系統(tǒng)能力。
3CDIO模式編譯原理教學(xué)實(shí)施過(guò)程中存在的問(wèn)題與對(duì)策
1)“雙師型”教師隊(duì)伍的建設(shè)問(wèn)題目前,從事編譯理論研究和技術(shù)開(kāi)發(fā)的教師不多,有編譯器開(kāi)發(fā)經(jīng)驗(yàn)的教師比較缺乏。編譯原理課程“雙師型”教師隊(duì)伍奇缺。湖北省教育廳和湖北工程學(xué)院制定政策,資助并鼓勵(lì)青年教師進(jìn)入相關(guān)企業(yè)與工程師合作解決實(shí)踐中的技術(shù)難題。同時(shí),湖北工程學(xué)院每年派出專業(yè)課青年教師到武漢大學(xué)、華中科技大學(xué)等高校進(jìn)修深造。通過(guò)這兩個(gè)途徑,學(xué)校可以解決“雙師型”師資隊(duì)伍建設(shè)的問(wèn)題。2)學(xué)生實(shí)習(xí)實(shí)訓(xùn)平臺(tái)的建設(shè)問(wèn)題。畢業(yè)生就業(yè)難和符合市場(chǎng)需求的應(yīng)用性人才短缺問(wèn)題一直是高校、用人單位和畢業(yè)生共同的困擾。學(xué)生綜合能力是就業(yè)成敗的關(guān)鍵因素,CDIO工程教育模式強(qiáng)化工程應(yīng)用實(shí)習(xí)實(shí)訓(xùn)平臺(tái)的建設(shè),希望為解決這種困擾提供幫助。湖北工程學(xué)院與中國(guó)航天三江集團(tuán)公司合作共建的工程實(shí)踐教育中心和湖北工程學(xué)院國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目已獲得教育部批準(zhǔn)。在此基礎(chǔ)上,計(jì)算機(jī)學(xué)院已經(jīng)與國(guó)內(nèi)10余家IT企業(yè)和科研機(jī)構(gòu)合作共建實(shí)習(xí)實(shí)訓(xùn)基地,校企合作層面深化,操作方案細(xì)化,實(shí)現(xiàn)與行業(yè)需求的無(wú)縫對(duì)接。
4結(jié)語(yǔ)
1.1編譯原理課程的特點(diǎn)及學(xué)習(xí)編譯原理的目的
編譯原理課程邏輯性強(qiáng),理論性強(qiáng),內(nèi)容抽象,課時(shí)少,學(xué)生學(xué)習(xí)編譯原理容易造成知識(shí)之間斷裂,很難做到融會(huì)貫通。學(xué)生普遍存在畏難情緒,教學(xué)效果不理想。一般應(yīng)用型本科學(xué)習(xí)編譯原理目的是:掌握編譯理論和基本技術(shù),同時(shí)具有設(shè)計(jì)、實(shí)現(xiàn)、分析和移植編譯程序等方面的初步能力,為從事計(jì)算機(jī)軟件開(kāi)發(fā)工作及理論研究打下堅(jiān)實(shí)基礎(chǔ)。
1.2教學(xué)中存在的問(wèn)題
一般應(yīng)用型本科院校學(xué)生的興趣是應(yīng)用計(jì)算機(jī)去處理現(xiàn)實(shí)問(wèn)題而不是理論知識(shí)的獲取,但是傳統(tǒng)的編譯原理教學(xué)內(nèi)容理論性強(qiáng),并且學(xué)生認(rèn)為學(xué)習(xí)編譯理論即是要構(gòu)造編譯器,所以學(xué)生的學(xué)習(xí)興趣不濃。同時(shí),學(xué)習(xí)編譯原理要涉及到離散數(shù)學(xué)、組成原理、操作系統(tǒng)和數(shù)據(jù)結(jié)構(gòu)等多方面的知識(shí),所以學(xué)生接受吸收編譯原理的理論知識(shí)和技術(shù)比較難。
1.3實(shí)踐環(huán)節(jié)薄弱
編譯程序是大型復(fù)雜的軟件系統(tǒng),在教學(xué)中一般把編譯原理邏輯劃分成五個(gè)階段進(jìn)行講授,如:詞法分析、語(yǔ)法分析、語(yǔ)義分析與中間代碼生成、中間代碼優(yōu)化和目標(biāo)代碼生成。但是這樣做易導(dǎo)致學(xué)生不清楚編譯各個(gè)部分是如何協(xié)調(diào)工作的,尤其對(duì)于語(yǔ)法制導(dǎo)翻譯技術(shù)和語(yǔ)義規(guī)則,學(xué)生理解起來(lái)異常困難,把復(fù)雜的編譯理論和技術(shù)通過(guò)編程實(shí)現(xiàn),大部分學(xué)生上機(jī)時(shí)無(wú)從下手,沒(méi)有思路。
2軟件工程化的編譯原理教學(xué)改革
把軟件工程化的思想引入到編譯理論教學(xué)中,將軟件工程的知識(shí)由淺入深、階梯狀、循序漸進(jìn)地貫穿在編譯原理實(shí)踐各個(gè)階段項(xiàng)目的開(kāi)發(fā)中。
2.1依據(jù)應(yīng)用型本科的特點(diǎn)進(jìn)行教材建設(shè)
近幾年來(lái),經(jīng)過(guò)教學(xué)團(tuán)隊(duì)繼續(xù)不懈的努力,《編譯方法及應(yīng)用》教材在充分吸收國(guó)內(nèi)外最新計(jì)算機(jī)教學(xué)理念和教育體系的同時(shí),面向一般工程類院校本科教學(xué),在基礎(chǔ)理論之上,更加注重編譯原理應(yīng)用性、基本知識(shí)和基本技能的培養(yǎng),集思想性、科學(xué)性、啟發(fā)性、先進(jìn)性和適應(yīng)性于一身。自編《編譯原理實(shí)驗(yàn)指導(dǎo)書》規(guī)范學(xué)生實(shí)驗(yàn)報(bào)告的格式,對(duì)實(shí)踐涉及到的關(guān)鍵算法和數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)給予說(shuō)明,從軟件工程的角度,從實(shí)驗(yàn)的需求、可行性報(bào)告等方面,要求學(xué)生完善文檔體系,引導(dǎo)幫助學(xué)生完成編譯原理實(shí)驗(yàn)。自編《編譯原理習(xí)題與解析》,對(duì)知識(shí)點(diǎn)、重點(diǎn)、難點(diǎn)和典型算法進(jìn)行深度總結(jié),選擇或設(shè)計(jì)富有啟發(fā)性的例題,并對(duì)這些例題給出透徹的分析與解答,使學(xué)生掌握問(wèn)題的解決方法和思路,收到了舉一反三的效果,學(xué)生編譯原理期末考試成績(jī)明顯高于往年。
2.2優(yōu)化編譯方法課程體系和教學(xué)內(nèi)容
編譯原理的整個(gè)知識(shí)體系是數(shù)十年來(lái)無(wú)數(shù)學(xué)術(shù)精英在形式語(yǔ)義學(xué)、計(jì)算數(shù)學(xué)、計(jì)算機(jī)科學(xué)等相關(guān)領(lǐng)域不懈探索、積累的結(jié)果。整個(gè)編譯程序是一個(gè)完整的系統(tǒng)算法,理論性強(qiáng)而抽象。鑒于此,面向軟件工程化改造編譯理論,階梯狀迭代工程實(shí)踐項(xiàng)目,將現(xiàn)代應(yīng)用軟件工程模型特點(diǎn)與編譯技術(shù)緊密結(jié)合,引導(dǎo)學(xué)生利用大型軟件的分析設(shè)計(jì)方法及手段,不斷充實(shí)編譯方法課程的內(nèi)容,從而使得本課程的教學(xué)內(nèi)容不僅具有先進(jìn)性,還具有實(shí)用性。通過(guò)對(duì)知識(shí)點(diǎn)的概要總結(jié)、實(shí)驗(yàn)指導(dǎo)、課堂鍛煉、經(jīng)典習(xí)題解答、課后研討等方式,加強(qiáng)學(xué)生對(duì)編譯抽象理論的理解,把軟件工程化思想引入到編譯方法教學(xué)實(shí)踐中,加強(qiáng)學(xué)生對(duì)編譯理論與實(shí)踐的相互深化與促進(jìn)。
2.3基于軟件工程化的教學(xué)實(shí)踐
以創(chuàng)新性和實(shí)踐性為目標(biāo),開(kāi)設(shè)綜合性設(shè)計(jì)性必做實(shí)驗(yàn)項(xiàng)目,引導(dǎo)學(xué)生利用大型軟件的分析設(shè)計(jì)方法及手段進(jìn)行編譯原理實(shí)踐,構(gòu)造一個(gè)完整的編譯器。按照編譯程序的邏輯功能結(jié)構(gòu),將一個(gè)完整的編譯實(shí)踐劃分為:詞法分析、語(yǔ)法語(yǔ)義分析、中間代碼生成、代碼優(yōu)化和目標(biāo)代碼生成。將軟件工程的知識(shí)由淺入深、階梯狀、循序漸進(jìn)地貫穿在編譯原理實(shí)踐各個(gè)階段項(xiàng)目開(kāi)發(fā)中。把編譯理論知識(shí)內(nèi)容巧妙地隱含在每個(gè)任務(wù)之中,學(xué)生以任務(wù)驅(qū)動(dòng)、成立開(kāi)發(fā)項(xiàng)目小組的形式協(xié)作完成任務(wù)。編譯實(shí)踐每個(gè)階段的需求是前一個(gè)階段的拓展,因此每一個(gè)階段的軟件開(kāi)發(fā)可以看成前一階段開(kāi)發(fā)的迭代,從而鍛煉學(xué)生解決大型軟件開(kāi)發(fā)項(xiàng)目中用戶需求不斷變更的疑難問(wèn)題的能力,以及最大程度地使用重用技術(shù)的能力。教師組織開(kāi)發(fā)團(tuán)隊(duì)進(jìn)行匯報(bào),小組內(nèi)部之間經(jīng)常交流情況和信息,以減少誤解,刪除軟件中的個(gè)人特征,提高軟件的質(zhì)量,從而提高學(xué)生項(xiàng)目規(guī)劃、隊(duì)伍組織、工作分配、成員交流和演講匯報(bào)等多方面的能力,培養(yǎng)學(xué)生的團(tuán)體合作精神、團(tuán)隊(duì)合作進(jìn)行項(xiàng)目研發(fā)的能力,以及采用軟件工程化方法開(kāi)發(fā)大型軟件的能力,為研究和學(xué)習(xí)軟件生產(chǎn)線新技術(shù)奠定基礎(chǔ)。以創(chuàng)新性和實(shí)踐性為目標(biāo),開(kāi)設(shè)選作實(shí)踐項(xiàng)目,如:算符優(yōu)先文法的FIRSTVT、LASTVT集合的求法,算符優(yōu)先文法的判斷;FIRST、FOLLOW集合的求法,LL(1)文法的判斷;LR(0)文法的判斷,SLR(1)文法的判斷。通過(guò)開(kāi)設(shè)選作實(shí)踐項(xiàng)目,拓展學(xué)生的思維,更進(jìn)一步提高了學(xué)生把基礎(chǔ)理論、基本技術(shù)、基本方法轉(zhuǎn)化為解決實(shí)際問(wèn)題的能力,以及理論與實(shí)踐相結(jié)合的能力。
2.4編譯原理技術(shù)的工程應(yīng)用
形式化方法是編譯理論最重要的方法,由于形式化方法是建立在嚴(yán)格的語(yǔ)法和語(yǔ)義規(guī)則基礎(chǔ)上的,因此注重向?qū)W生介紹編譯原理技術(shù)的工程應(yīng)用,如:形式化方法在TEX科技排版系統(tǒng)和方正排版系統(tǒng)上的應(yīng)用,形式化方法在數(shù)字電路設(shè)計(jì)和驗(yàn)證、通信電路設(shè)計(jì)和驗(yàn)證、需求分析描述、系統(tǒng)正確性驗(yàn)證等方面應(yīng)用,取得了顯著的成績(jī)。
2.5培養(yǎng)編譯方法教學(xué)團(tuán)隊(duì)
有計(jì)劃、有目的地培養(yǎng)中青年教師。助教在完成編譯原理課程的輔導(dǎo)、作業(yè)批改、實(shí)驗(yàn)輔導(dǎo)、軟件綜合課程設(shè)計(jì)的安排和實(shí)施等的基礎(chǔ)上,參與編譯原理課程、離散數(shù)學(xué)、匯編語(yǔ)言程序設(shè)計(jì)課程的建設(shè),并參與課程大綱的討論及教學(xué)計(jì)劃的制訂,獲得了多項(xiàng)教改成果。課程團(tuán)隊(duì)還鼓勵(lì)青年教師把先進(jìn)的科研方向帶進(jìn)本科生課堂,實(shí)現(xiàn)科研與教學(xué)的有機(jī)結(jié)合,不僅有利于提高授課內(nèi)容的先進(jìn)性,也有利于鍛煉年青教師的創(chuàng)造性和責(zé)任感。通過(guò)教學(xué)實(shí)踐、實(shí)驗(yàn)教學(xué)的訓(xùn)練以及定期組織教學(xué)研究討論,青年教師的教學(xué)態(tài)度得到進(jìn)一步端正、教學(xué)方法得到進(jìn)一步豐富,教學(xué)水平也有了很大的提高。課程團(tuán)隊(duì)還讓青年教師通過(guò)科研的實(shí)際鍛煉提高自己的研究能力,擴(kuò)展知識(shí)面。課程團(tuán)隊(duì)目前已建立起一支強(qiáng)有力的教學(xué)梯隊(duì),形成了以高素質(zhì)教師為骨干力量的教師隊(duì)伍。
3結(jié)語(yǔ)
【摘要】本文根據(jù)編譯原理課程的特點(diǎn),結(jié)合自己的教學(xué)經(jīng)驗(yàn),探討了普通本科院校編譯原理的實(shí)踐教學(xué)內(nèi)容的設(shè)置,對(duì)普通高校更深入的教學(xué)改革和創(chuàng)新人才的培養(yǎng)具有一定的意義。
【關(guān)鍵詞】編譯原理教學(xué)內(nèi)容課程實(shí)驗(yàn)
1引言
編譯原理課程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的重要專業(yè)課,它不僅能幫助學(xué)生更深入地了解計(jì)算機(jī)以及計(jì)算機(jī)程序的本質(zhì),還能提高學(xué)生進(jìn)行問(wèn)題求解的能力。本課程的理論性和實(shí)踐性都很強(qiáng)。國(guó)外和國(guó)內(nèi)分別從二十世紀(jì)六十和八十年代開(kāi)始設(shè)置“編譯原理”課程,從文獻(xiàn)[1,2]兩本專著的內(nèi)容可以看出,幾十年來(lái),“編譯原理”課程可以講授的內(nèi)容越來(lái)越多。設(shè)置該課程的目的在于系統(tǒng)地向?qū)W生講敘編譯程序設(shè)計(jì)的基本理論、編譯系統(tǒng)的結(jié)構(gòu)及編譯程序各部分的設(shè)計(jì)原理和實(shí)現(xiàn)技術(shù)。通過(guò)對(duì)這些知識(shí)的學(xué)習(xí),使學(xué)生既能掌握編譯理論和編譯方法等方面的基本知識(shí),又具有設(shè)計(jì)、分析、實(shí)現(xiàn)和維護(hù)編譯程序等各方面的綜合能力。該課程一般包括理論教學(xué)和實(shí)驗(yàn)教學(xué)兩部分。編譯原理理論知識(shí)包括形式語(yǔ)言、有窮自動(dòng)機(jī)等抽象內(nèi)容及大量的算法,較難理解和掌握,因此“編譯原理”的實(shí)驗(yàn)教學(xué)對(duì)于深化學(xué)生對(duì)所學(xué)理論知識(shí)的理解,提高學(xué)生的理論聯(lián)系實(shí)踐的能力和編程水平具有重要的作用。
本文根據(jù)編譯原理課程的特點(diǎn),結(jié)合自己的教學(xué)經(jīng)驗(yàn)與我院的實(shí)際情況,探討了普通本科院校編譯原理的實(shí)踐教學(xué)內(nèi)容的設(shè)置。
2課程實(shí)驗(yàn)的重要性
編譯原理是集理論與實(shí)踐于一體的一門課程,在理論課中所介紹的基本概念、原理、方法和算法,一定要通過(guò)實(shí)驗(yàn)加以理解和吸收,才能能夠達(dá)到真正的理解、吸收和掌握。編譯原理課程實(shí)驗(yàn)的內(nèi)容主要放在對(duì)詞法分析、語(yǔ)法分析和語(yǔ)義分析、中間代碼生成、中間代碼優(yōu)化和目標(biāo)代碼生成的方法上。由于編譯原理課程有很強(qiáng)的理論性與實(shí)踐性,在學(xué)習(xí)時(shí)普遍感到內(nèi)容抽象,不易理解,掌握起來(lái)難度很大。因此通過(guò)教學(xué)實(shí)踐和對(duì)學(xué)生所做的調(diào)查表明,設(shè)計(jì)一組與理論內(nèi)容相配套的實(shí)驗(yàn)是十分必要的。
3課程實(shí)驗(yàn)的設(shè)計(jì)
針對(duì)編譯原理課程的特點(diǎn)及要求,共設(shè)置了五個(gè)實(shí)驗(yàn)項(xiàng)目。這組實(shí)驗(yàn)既和理論課內(nèi)容相輔相承,同時(shí)相互之間又互相關(guān)聯(lián),構(gòu)成了一個(gè)實(shí)驗(yàn)整體。
實(shí)驗(yàn)一
題目:消去C、C++程序中的注釋(2學(xué)時(shí),必做)
實(shí)驗(yàn)?zāi)康?掌握C語(yǔ)言文件的基本操作,消除源C語(yǔ)言程序中的注釋,為以后的編譯提供方便。
實(shí)驗(yàn)要求:對(duì)給定的帶注釋的C語(yǔ)言源程序,利用該程序去掉注釋,輸出去除注釋的源程序。
實(shí)驗(yàn)二
題目:詞法分析(必做,4學(xué)時(shí))
目的:通過(guò)設(shè)計(jì)編制調(diào)試一個(gè)具體的詞法分析程序,加深對(duì)詞法分析原理的理解。并掌握在對(duì)程序設(shè)計(jì)語(yǔ)言源程序進(jìn)行掃描過(guò)程中將其分解為各類單詞的詞法分析方法。
要求:編寫程序?qū)斎氲脑闯绦蜃址M(jìn)行詞法分析,對(duì)符合下述文法描述的字符串,建立單詞符號(hào)表,不符合的字符串給出錯(cuò)誤信息。
內(nèi)容:用擴(kuò)充的BNF表示如下:
<標(biāo)識(shí)符><字母>{<字母><數(shù)字>}
<整型常數(shù)><數(shù)字>{<數(shù)字>}
<算符>+-*/()=
<字母>abc…yABC…Y
<數(shù)字>1234567890
實(shí)驗(yàn)三
題目:遞歸下降分析法(4學(xué)時(shí),選做)
目的:根據(jù)給定的文法編制調(diào)試遞歸下降分析程序,以便對(duì)任意輸入的符號(hào)串進(jìn)行分析。本次實(shí)驗(yàn)的目的主要是加深對(duì)遞歸下降分析法的理解。
要求:對(duì)給定的文法,利用遞歸下降分析法對(duì)任意輸入的符號(hào)串進(jìn)行分析語(yǔ)法分析,對(duì)符合下述文法描述的字符串(表達(dá)式或賦值語(yǔ)句),給出中間代碼,不符合的字符串給出錯(cuò)誤信息。轉(zhuǎn)中國(guó)-內(nèi)容:用擴(kuò)充的BNF表示如下:
<賦值語(yǔ)句><標(biāo)識(shí)符>=<表達(dá)式>
<表達(dá)式><表達(dá)式>{+<項(xiàng)>-<項(xiàng)>}<項(xiàng)>
<項(xiàng)><項(xiàng)>{*<因子>/<因子>}<因子>
<因子><標(biāo)識(shí)符>(<表達(dá)式>)
即:Si=E
EE+TE-TT
TT*FT/FF
Fi(E)
實(shí)驗(yàn)四
題目:語(yǔ)法分析程序LL(1)(4學(xué)時(shí),必做)
目的:通過(guò)該實(shí)驗(yàn)使學(xué)生掌握描述語(yǔ)法規(guī)則的文法,以及加深對(duì)語(yǔ)法分析中自頂向下分析法中的預(yù)測(cè)分析法的理解。
要求:對(duì)給定的文法建立預(yù)測(cè)分析表,利用預(yù)分析法對(duì)實(shí)驗(yàn)一中詞法分析產(chǎn)生的符號(hào)進(jìn)行語(yǔ)法分析,對(duì)符合下述文法描述的字符串(表達(dá)式或賦值語(yǔ)句),給出中間代碼,不符合的字符串給出錯(cuò)誤信息。
內(nèi)容:用擴(kuò)充的BNF表示(同實(shí)驗(yàn)三)。
實(shí)驗(yàn)五
題目:語(yǔ)法分析程序LR(1)(4學(xué)時(shí),必做)
目的:通過(guò)該實(shí)驗(yàn)使學(xué)生加深對(duì)語(yǔ)法分析中自下而上分析法中的LR分析法的理解。
要求:對(duì)給定的文法手工建立LR(1)分析表;利用LR分析法對(duì)實(shí)驗(yàn)二中詞法分析產(chǎn)生的符號(hào)進(jìn)行語(yǔ)法分析,對(duì)符合實(shí)驗(yàn)中文法描述的字符串(表達(dá)式或賦值語(yǔ)句)給出中間代碼;不符合的字符串給出錯(cuò)誤信息。
內(nèi)容:用擴(kuò)充的BNF表示(同實(shí)驗(yàn)三)