徐勇++蔣宗華++石小艷++吳延輝
摘 要:“編譯原理”課程是介紹高級(jí)程序設(shè)計(jì)語言編譯程序構(gòu)造的一般原理、基本設(shè)計(jì)方法,是主要實(shí)現(xiàn)技術(shù)和形式化工具的一門課程,具有較強(qiáng)的理論性和實(shí)踐性。本課程圍繞人才培養(yǎng)目標(biāo),在優(yōu)化課程內(nèi)容體系的基礎(chǔ)上,側(cè)重研究了教學(xué)手段和方法,增加了實(shí)踐教學(xué)環(huán)節(jié)內(nèi)容。
關(guān)鍵詞:編譯原理;內(nèi)容體系;教學(xué)方法;實(shí)踐教學(xué)
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)識(shí)碼:A
編譯原理是現(xiàn)代計(jì)算機(jī)系統(tǒng)理論的基本組成部分之一,是計(jì)算機(jī)專業(yè)的一門重要專業(yè)基礎(chǔ)課,同時(shí)也是一門實(shí)踐性很強(qiáng)的課程。其中涉及詞法、語法的分析,表格、符號(hào)信息的處理方法,清晰有效的算法、描述方法,各種數(shù)據(jù)結(jié)構(gòu)的運(yùn)用,自動(dòng)機(jī)理論等編譯技術(shù),作為一門計(jì)算機(jī)軟件技術(shù)課程,內(nèi)涵極為豐富,因此,該課程可以說是建立在高級(jí)語言或匯編語言基礎(chǔ)上,綜合運(yùn)用編譯理論及多門前修課程如“面向?qū)ο蟪绦蛟O(shè)計(jì)”“數(shù)據(jù)結(jié)構(gòu)”“離散數(shù)學(xué)”“計(jì)算機(jī)原理”等的相關(guān)知識(shí)來解決高級(jí)語言在機(jī)器上運(yùn)行問題的一門課程,其難度較大。通過本課程的學(xué)習(xí),學(xué)生不僅可以掌握編譯程序本身的基本實(shí)現(xiàn)原理和技術(shù),同時(shí)也有助于提高其對(duì)程序設(shè)計(jì)語言的理解,提升語言設(shè)計(jì)及程序設(shè)計(jì)能力。
1.課程教學(xué)理念與目標(biāo)
高等教育正面臨重大的變革 ,根據(jù)學(xué)校的辦學(xué)定位、人才培養(yǎng)目標(biāo)要求及生源情況,課程組應(yīng)及時(shí)更新課程內(nèi)容,拓寬知識(shí)范圍,注重理論聯(lián)系實(shí)際,改進(jìn)教學(xué)方法和手段, 既重視記憶性學(xué)習(xí),又重視啟發(fā)性思考,更重視運(yùn)用理論知識(shí)解決生產(chǎn)實(shí)踐問題能力的培養(yǎng),并把它作為課程教學(xué)改革的基本原則。
課程改革實(shí)施過程中,課程組定位“編譯原理”課程的教學(xué)指導(dǎo)思想是以介紹編譯理論為基礎(chǔ),掌握主流編譯技術(shù)為主,在學(xué)習(xí)典型編譯模塊的過程中重點(diǎn)訓(xùn)練學(xué)生的算法設(shè)計(jì)、分析能力及編程能力。“編譯原理”課程中涉及的算法多而復(fù)雜,在算法教學(xué)中,應(yīng)著重闡明算法的深刻含義、功能及描述方法,結(jié)合編譯模塊實(shí)例,進(jìn)行推理,對(duì)時(shí)間和空間復(fù)雜度進(jìn)行分析。
通過本課程的學(xué)習(xí),學(xué)生可以建立良好的編譯理論基礎(chǔ),并可初步培養(yǎng)學(xué)生在設(shè)計(jì)、實(shí)現(xiàn)、分析和移植編譯程序方面的能力。教學(xué)中不求大而全,不過于講究知識(shí)的系統(tǒng)性,而是講清楚常用的、核心的知識(shí)點(diǎn)即可。教學(xué)目標(biāo)可以歸納為能掌握編譯基本理論,將“編譯原理”課程內(nèi)容作為程序設(shè)計(jì)的實(shí)訓(xùn)素材。
具體教學(xué)目標(biāo)為:
(1)了解編譯和解釋的區(qū)別。
(2)熟練掌握詞法分析中正規(guī)表達(dá)式、有限自動(dòng)機(jī)、正規(guī)文法三者之間的相互轉(zhuǎn)換方法。
(3)熟練掌握語法分析中自上而下分析的LL(1)文法和自下而上分析的規(guī)范規(guī)約及算符優(yōu)先文法。
(4)在中間代碼生成環(huán)節(jié)重點(diǎn)掌握賦值語句的翻譯。
(5)重點(diǎn)了解局部?jī)?yōu)化及循環(huán)優(yōu)化的基本技術(shù)。
(6)了解貫穿整個(gè)編譯過程的表格處理和出錯(cuò)處理的一些基本概念。
(7)設(shè)計(jì)并實(shí)現(xiàn)基本編譯模塊算法。
2.課程教學(xué)大綱與內(nèi)容安排
編譯程序常由詞法分析程序、語法分析程序、語義分析程序、代碼優(yōu)化程序和目標(biāo)代碼生成程序等五個(gè)主要部分組成,[1]這五個(gè)部分相輔相成、互有聯(lián)系、緊密相關(guān)。其中詞法分析程序主要是依據(jù)詞法規(guī)則從左到右掃描輸入的源程序,進(jìn)行詞法分析,輸出單詞符號(hào)。語法分析程序主要是依據(jù)語法規(guī)則對(duì)單詞符號(hào)進(jìn)行語法分析,輸出由語法范疇構(gòu)成的語法樹,判斷輸入串是否構(gòu)成語法上正確的“程序”。語義分析程序依據(jù)語義規(guī)則把語法分析程序歸約出(或推導(dǎo)出)的語法單位翻譯成一定形式的中間代碼(如四元式)。代碼優(yōu)化程序依據(jù)等價(jià)變換原則對(duì)中間代碼進(jìn)行優(yōu)化處理。目標(biāo)代碼生成程序把經(jīng)優(yōu)化后的中間代碼翻譯成目標(biāo)程序。在編譯過程中源程序的各種信息被保留在種種不同的表格里,因此在編譯程序中必須含有一組管理各種表格的程序。如果源程序有錯(cuò)誤,編譯程序應(yīng)設(shè)法發(fā)現(xiàn)錯(cuò)誤,把有關(guān)出錯(cuò)信息報(bào)告給用戶,這部分工作由專門的出錯(cuò)處理程序完成。
總之,“編譯原理”課程內(nèi)容豐富,具有嚴(yán)密的邏輯性,對(duì)提高學(xué)生計(jì)算機(jī)軟件素質(zhì)具有很大作用,可以使學(xué)生真正了解計(jì)算機(jī)的工作過程,認(rèn)識(shí)計(jì)算機(jī)信息處理的實(shí)質(zhì),并綜合運(yùn)用所學(xué)的軟件設(shè)計(jì)技術(shù)來分析解決問題,為今后更加深入地學(xué)習(xí)、探討計(jì)算機(jī)專業(yè)理論知識(shí)打下堅(jiān)實(shí)的基礎(chǔ)。
3.教學(xué)手段與方法
教學(xué)手段與方法是課程建設(shè)的重要內(nèi)容,科學(xué)、先進(jìn)的教學(xué)手段與方法是提高課程教學(xué)質(zhì)量的重要保證。課程教學(xué)手段與方法的建設(shè)要充分體現(xiàn)以學(xué)生為主體、以教師為主導(dǎo),知識(shí)、能力和素質(zhì)協(xié)調(diào)發(fā)展的指導(dǎo)思想,同時(shí)要把課程教學(xué)手段與方法的建設(shè)與現(xiàn)代信息教育技術(shù)結(jié)合起來。
教學(xué)實(shí)踐中,課程組越來越體會(huì)到教學(xué)方法的重要性。將以往的填鴨式教學(xué)轉(zhuǎn)向提問式、啟發(fā)式、討論式教學(xué),是非常必要的,而且,在向?qū)W生傳授知識(shí)的同時(shí),更要注重教會(huì)學(xué)生學(xué)習(xí)的方法,學(xué)會(huì)學(xué)習(xí)是提高教學(xué)效果的有效措施。
根據(jù)“編譯原理”課程教學(xué)的特點(diǎn),并通過教學(xué)實(shí)踐驗(yàn)證,本課程采用項(xiàng)目教學(xué)法,根據(jù)學(xué)習(xí)領(lǐng)域中不同學(xué)習(xí)情景的教學(xué)需要,同時(shí)采用任務(wù)驅(qū)動(dòng)法、激勵(lì)教學(xué)法等多種教學(xué)方法,能起到很好的教學(xué)效果。針對(duì)不同的內(nèi)容、不同難易程度,與其他教學(xué)方法靈活配合使用,還注重互動(dòng)學(xué)習(xí)、團(tuán)隊(duì)學(xué)習(xí)、自主學(xué)習(xí)的運(yùn)用,教學(xué)方法得到了學(xué)生的高度認(rèn)可。
(1)任務(wù)驅(qū)動(dòng)的項(xiàng)目教學(xué)法。多年以來,任務(wù)驅(qū)動(dòng)的項(xiàng)目教學(xué)方法在很多課程中被廣泛使用,實(shí)踐證明,對(duì)于工科課程而言,任務(wù)驅(qū)動(dòng)的教學(xué)方法具體較為明顯的優(yōu)點(diǎn):一是該方法有利于學(xué)生把握相關(guān)知識(shí)點(diǎn)的學(xué)習(xí)目標(biāo);二是可以激發(fā)學(xué)生的學(xué)生興趣;三是便于教師對(duì)相關(guān)知識(shí)點(diǎn)教學(xué)效果進(jìn)行評(píng)價(jià)。針對(duì)“編譯原理”課程內(nèi)容、課程性質(zhì),課程組依據(jù)詞法分析程序、語法分析程序、語義分析程序、代碼優(yōu)化程序和目標(biāo)代碼生成程序等五個(gè)主要編譯模塊,將完整的編譯程序分解為多個(gè)小的教學(xué)項(xiàng)目,每個(gè)教學(xué)項(xiàng)目既要完成理論知識(shí)點(diǎn)的學(xué)習(xí),又要分組完成程序設(shè)計(jì)實(shí)訓(xùn)任務(wù)。
(2)激勵(lì)學(xué)習(xí)、實(shí)訓(xùn)績(jī)效的促進(jìn)教學(xué)法。在“編譯原理”課程的成績(jī)考核中,平時(shí)成績(jī)、期末筆試成績(jī)各占50%。其中平時(shí)考核內(nèi)容包括對(duì)理論知識(shí)的掌握、基本編譯模塊算法的設(shè)計(jì)與實(shí)現(xiàn)能力。本課程制訂詳細(xì)的平時(shí)成績(jī)考核辦法,鼓勵(lì)學(xué)生自主學(xué)習(xí)、實(shí)踐,如果學(xué)生已經(jīng)取得程序員、軟件設(shè)計(jì)師等資格認(rèn)證,可在平時(shí)成績(jī)實(shí)訓(xùn)考核部分獲得滿分。本課程與實(shí)踐聯(lián)系緊密,如果學(xué)生的實(shí)訓(xùn)成果得到了企業(yè)認(rèn)可,同樣可以獲得較高的平時(shí)成績(jī)?cè)u(píng)價(jià)。
(3)貫徹自主學(xué)習(xí)與師生團(tuán)隊(duì)共同學(xué)習(xí)的教學(xué)法。本課程教師團(tuán)隊(duì)是一支以中青年教師為主、充滿工作熱情和創(chuàng)新意識(shí)、具有愛崗敬業(yè)和團(tuán)隊(duì)精神師資隊(duì)伍。在教學(xué)過程中堅(jiān)持以學(xué)生為主體,以學(xué)生活動(dòng)為主線,將教學(xué)過程體現(xiàn)為學(xué)習(xí)過程。
理論教學(xué)部分和教學(xué)實(shí)訓(xùn)過程采用分組學(xué)習(xí)的方式。在教學(xué)過程中,教師先設(shè)計(jì)好課程的教學(xué)情境,并對(duì)任務(wù)學(xué)習(xí)要求做簡(jiǎn)單介紹,讓學(xué)生自主獲取任務(wù)信息,自主制訂計(jì)劃,自主實(shí)施計(jì)劃和檢測(cè)評(píng)估結(jié)果,學(xué)習(xí)過程發(fā)揮小組團(tuán)隊(duì)的作用。
(4)探索式教學(xué)法。在教學(xué)實(shí)施過程中,充分發(fā)揮學(xué)生的積極作用。師生共同探討編譯理論知識(shí)體系及其演變,也注重對(duì)教學(xué)方法的共同探索與思考。變演繹思維為歸納思維,變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí),不僅學(xué)習(xí)效果好,更能培養(yǎng)學(xué)生思維的科學(xué)性、嚴(yán)謹(jǐn)性,把可持續(xù)發(fā)展落到實(shí)處。
(5)信息平臺(tái)的利用。提供比較豐富的教學(xué)資源,如教學(xué)大綱、教學(xué)計(jì)劃、電子教案、電子課件和教學(xué)視頻等,方便學(xué)生自主學(xué)習(xí)。在學(xué)院網(wǎng)站課程論壇中實(shí)現(xiàn)教師與學(xué)生網(wǎng)上教學(xué)交流和互動(dòng),課程組老師及時(shí)跟進(jìn)網(wǎng)絡(luò)前沿技術(shù),并將內(nèi)容更新到網(wǎng)站上。
網(wǎng)絡(luò)教學(xué)平臺(tái)及資源在本課程的教學(xué)中已經(jīng)發(fā)揮了關(guān)鍵的作用,課程教學(xué)組成員負(fù)責(zé)網(wǎng)站的日常維護(hù)和教學(xué)資源更新,學(xué)生每天的正常學(xué)習(xí)都要在這個(gè)平臺(tái)上進(jìn)行,課后師生也經(jīng)常利用這個(gè)網(wǎng)絡(luò)平臺(tái)進(jìn)行在線交流、答疑等。
4.實(shí)踐教學(xué)
實(shí)踐教學(xué)是編譯原理課程教學(xué)過程的有機(jī)組成部分。實(shí)踐教學(xué)內(nèi)容設(shè)置圍繞編譯模塊算法的設(shè)計(jì)與程序來開展,幫助學(xué)生課后進(jìn)行自主課程設(shè)計(jì)訓(xùn)練,鞏固課堂理論知識(shí),提升程序設(shè)計(jì)能力。課外實(shí)踐教學(xué)方案內(nèi)容包括基本知識(shí)、基本理論、基本方法、典型教學(xué)案例等,方案內(nèi)容充實(shí)、合理,目的性強(qiáng)。
為了提高實(shí)踐教學(xué)環(huán)節(jié)的教學(xué)效果,課程組將輔導(dǎo)答疑作為實(shí)踐教學(xué)系統(tǒng)中重要的環(huán)節(jié)。及時(shí)了解并解答學(xué)生實(shí)踐學(xué)習(xí)活動(dòng)中出現(xiàn)的問題,調(diào)整并改進(jìn)教師教學(xué)內(nèi)容和教學(xué)方法,這對(duì)提高教學(xué)質(zhì)量十分重要。
5.質(zhì)量監(jiān)控
科學(xué)合理的考試、考核方法對(duì)激勵(lì)學(xué)生主動(dòng)參與學(xué)習(xí)、提高課程教學(xué)質(zhì)量十分重要。編譯原理課程要建立符合自身特點(diǎn)的結(jié)構(gòu)化課程考試考核辦法,避免一張?jiān)嚲矶ńY(jié)論的弊端。編譯原理課程詳細(xì)地規(guī)定了考核方式和成績(jī)?cè)u(píng)定方法, 明確了平時(shí)、期中和期末成績(jī)所占的比例,把學(xué)生平時(shí)的自主學(xué)習(xí)成績(jī)納入學(xué)生課程學(xué)習(xí)的總成績(jī)。以對(duì)學(xué)生的知識(shí)、能力、素質(zhì)綜合考核為目標(biāo),積極開展考試內(nèi)容改革,不斷改革考試、考查的傳統(tǒng)模式,探索符合教學(xué)內(nèi)容特點(diǎn),切合學(xué)生學(xué)習(xí)實(shí)際的方法,這樣既有利于檢驗(yàn)學(xué)生的學(xué)習(xí)成果,又能全面客觀地反映學(xué)生學(xué)習(xí)業(yè)績(jī),從而引導(dǎo)學(xué)生自主學(xué)習(xí),不斷探索,提升自身綜合運(yùn)用知識(shí)的能力和創(chuàng)新能力。
6.教學(xué)資源
課程組將編譯原理的課程概況、課程內(nèi)容、習(xí)題解答、教學(xué)錄像、參考資料、實(shí)踐課題、編譯實(shí)例庫(kù)以及CAI 課件等內(nèi)容通過信息平臺(tái),為學(xué)生學(xué)習(xí)和實(shí)踐編譯原理與技術(shù)提供理論知識(shí)和范例。同時(shí)組織課程組教師和部分學(xué)生將實(shí)踐教學(xué)過程中的優(yōu)秀教學(xué)案例和素材編寫成課程實(shí)踐學(xué)習(xí)方案講義,供同學(xué)們參考學(xué)習(xí)。
7.小結(jié)
“編譯原理”課程改革以教育思想和教育觀念的轉(zhuǎn)變?yōu)橄葘?dǎo),通過改革教學(xué)內(nèi)容,改進(jìn)教學(xué)方法和教學(xué)手段,加強(qiáng)師資隊(duì)伍建設(shè)和實(shí)踐性教學(xué)環(huán)節(jié)建設(shè),[2]在具體教學(xué)實(shí)踐中,教師必須堅(jiān)持每次上課前認(rèn)真?zhèn)湔n,教案每年都認(rèn)真補(bǔ)充、修改,使其不斷完善。在教學(xué)實(shí)踐中不斷改進(jìn)教學(xué)方法, 使學(xué)生真正感到每堂課都能學(xué)到新的知識(shí),從根本上保證課程建設(shè)在培養(yǎng)學(xué)生能力、知識(shí)、素質(zhì)等方面發(fā)揮基礎(chǔ)性的重要作用。
參考文獻(xiàn):
[1]陳火旺,劉春林,等.程序設(shè)計(jì)語言編譯原理(第三版)[M].北京:國(guó)防工業(yè)出版社,2001.
[2]潘懋元,王偉廉.高等教育學(xué)[M].福州:福建教育出版社,2013.