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