劉 磊 郭德貴
“編譯原理”課程是計(jì)算機(jī)專業(yè)必修的一門重要的專業(yè)基礎(chǔ)課程,也是計(jì)算機(jī)系統(tǒng)軟件中非常重要的一個(gè)分支,任何計(jì)算機(jī)語言的實(shí)現(xiàn)都離不開編譯技術(shù),因而,作為計(jì)算機(jī)專業(yè)的學(xué)生,學(xué)習(xí)和掌握編譯程序的基本構(gòu)造原理和實(shí)現(xiàn)技術(shù),對今后進(jìn)一步的學(xué)習(xí)、研究和工作奠定堅(jiān)實(shí)的專業(yè)理論基礎(chǔ)是十分必要的。
吉林大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院軟件教研室多年來一直從事計(jì)算機(jī)本科生“編譯原理”課程的教學(xué)與科研工作,積累了豐富的教學(xué)、科研經(jīng)驗(yàn),并取得了多項(xiàng)與編譯課程相關(guān)的教學(xué)、科研成果,“編譯原理”課程先后被評為吉林大學(xué)精品課程、吉林省精品課程和“教育部-微軟精品課程”。
一、注重理論教學(xué)
編譯程序不同于一般的應(yīng)用程序,是一個(gè)十分龐大和復(fù)雜的系統(tǒng)軟件,它所包含的算法和思想比較特殊,理論性較強(qiáng),抽象度也較高。學(xué)習(xí)編譯程序的構(gòu)造原理和實(shí)現(xiàn)技術(shù),不僅可以掌握編譯程序本身的實(shí)現(xiàn)技術(shù),同時(shí)也能夠提高對程序設(shè)計(jì)語言的理解,提高語言的設(shè)計(jì)能力,提高元級(jí)程序的設(shè)計(jì)能力,提高開發(fā)大型軟件的能力,能夠培養(yǎng)學(xué)生的抽象思維能力和形式化描述能力。吉林大學(xué)計(jì)算機(jī)學(xué)院軟件教研室在“編譯原理”課程的教學(xué)過程中,注重學(xué)生對原理的理解,使學(xué)生不僅要做到知其然,更要做到知其所以然。
(1)科學(xué)引導(dǎo),啟發(fā)學(xué)生積極思維
從知識(shí)體系的內(nèi)部結(jié)構(gòu)入手,抓住編譯過程各個(gè)功能階段的內(nèi)在聯(lián)系和規(guī)律,通過有目的地設(shè)計(jì)問題,有意義地提出問題,引導(dǎo)學(xué)生的積極思維。把編譯原理中的理論難點(diǎn)、抽象概念通過問題引導(dǎo)呈現(xiàn)出來,學(xué)生通過回答問題,從不同的角度尋求解決問題的原則、途徑和方法,從而引導(dǎo)學(xué)生獨(dú)立分析問題和解決問題,加深對編譯理論和技術(shù)的理解。
(2)從知識(shí)體系的內(nèi)部結(jié)構(gòu)入手,培養(yǎng)學(xué)生的自學(xué)能力
教師通過精心備課,掌握知識(shí)的內(nèi)在聯(lián)系,對編譯過程的各個(gè)功能階段進(jìn)行歸納總結(jié)。講授時(shí),讓學(xué)生掌握編譯原理各個(gè)階段的基本概念,基本法則以及它們之間的內(nèi)在聯(lián)系和規(guī)律,抓住知識(shí)體系的主線,掌握規(guī)律性的知識(shí),授之以法,培養(yǎng)學(xué)生的自學(xué)能力。
(3)實(shí)施多媒體輔助教學(xué)形式
“編譯原理”是一門理論性強(qiáng)的課程,為了使抽象問題形象化,便于學(xué)生對知識(shí)點(diǎn)的理解和運(yùn)用,利用多媒體手段,把原理性的重點(diǎn)知識(shí)以動(dòng)畫、圖形形式呈現(xiàn)給學(xué)生,把知識(shí)講解化靜為動(dòng),寓教于樂,培養(yǎng)和激發(fā)學(xué)生的學(xué)習(xí)興趣。
(4)設(shè)計(jì)課程輔助教學(xué)軟件
教研室設(shè)計(jì)和開發(fā)了編譯原理CAI課件-PCMCAI、SNL編譯實(shí)例等編譯原理教學(xué)輔助軟件,教師在上課時(shí)使用這些課件來演示部分關(guān)鍵算法和難點(diǎn),提高了教學(xué)效果,學(xué)生在課下利用這些課件自動(dòng)生成各個(gè)分析程序,進(jìn)一步理解基本原理和實(shí)現(xiàn)算法。
二、開拓教學(xué)內(nèi)容、擴(kuò)展學(xué)生視野
在“編譯原理”課程的講授過程中,教學(xué)隊(duì)伍一直堅(jiān)持教學(xué)和科研相結(jié)合、理論和實(shí)踐相結(jié)合、課內(nèi)和課外相結(jié)合,融知識(shí)傳授、能力培養(yǎng)、素質(zhì)教育于一體,將最新教改和科研成果引入教學(xué)。
教研室先后承擔(dān)了Algol60編譯器、Fortran編譯器、Algol60到Fortran的轉(zhuǎn)換器等與編譯原理相關(guān)的科研項(xiàng)目,目前教研室正在進(jìn)行ATLAS編譯器項(xiàng)目的設(shè)計(jì)與開發(fā)工作。在教學(xué)過程中將這些科研項(xiàng)目中的新思想、新方法、新技術(shù)融入到課堂講授當(dāng)中,不僅加深了學(xué)生對編譯基本原理的掌握,而且促進(jìn)了學(xué)生對傳統(tǒng)內(nèi)容與最新技術(shù)成果的理解。例如,在講授語法分析時(shí),傳統(tǒng)的Early算法受當(dāng)時(shí)硬件條件限制,它僅僅是一個(gè)理論上的語法分析方法;隨著技術(shù)進(jìn)步,結(jié)合ATLAS編譯器項(xiàng)目的設(shè)計(jì)與實(shí)現(xiàn),Early語法分析方法便成為一個(gè)實(shí)用、有效的語法分析方法。通過這些內(nèi)容的講述,將經(jīng)典編譯理論與現(xiàn)代編譯技術(shù)有機(jī)地結(jié)合起來,激發(fā)了學(xué)生對編譯新技術(shù)的學(xué)習(xí)興趣。
三、重視實(shí)踐能力培養(yǎng)
編譯程序以程序作為操作對象,是一個(gè)元級(jí)處理程序,它所包含的算法和思想理論性較強(qiáng),抽象度也較高,并且一個(gè)編譯器是由多個(gè)完成不同功能、執(zhí)行在不同階段的子程序組成的,各個(gè)階段具有不同的特點(diǎn),采用比較經(jīng)典的方法來完成各自不同的功能,即使學(xué)生理解了不同階段的各個(gè)子程序的功能和特定方法,但如何銜接各個(gè)子程序,如何組成一個(gè)完整的編譯器,對學(xué)生來講,仍可能是一件比較困難的事情。基于此,我們開設(shè)了編譯原理實(shí)踐課程,培養(yǎng)學(xué)生的實(shí)踐能力。
實(shí)踐性教學(xué)的設(shè)計(jì)思想是使學(xué)生透徹地理解編譯程序的原理和思想,系統(tǒng)全面地掌握編譯技術(shù),使學(xué)生通過課堂學(xué)習(xí),理解編譯原理的同時(shí),注重學(xué)生實(shí)踐能力的培養(yǎng),進(jìn)一步鞏固對知識(shí)的理解,通過實(shí)際的鍛煉,掌握編譯技術(shù),進(jìn)而能夠獨(dú)立地進(jìn)行編譯器的設(shè)計(jì)。
通過多年來的教學(xué)實(shí)踐以及近五年來關(guān)于編譯原理實(shí)踐課程的建設(shè),我們?nèi)〉昧艘恍┏尚?。開設(shè)的編譯原理實(shí)踐課程,以實(shí)際上機(jī)實(shí)習(xí)為主,教師指導(dǎo)為輔,學(xué)生在實(shí)踐課程中,通過實(shí)際動(dòng)手,把原理性的抽象理論知識(shí)具體化和形象化,消化了課堂上、書本中難于理解的概念和方法,全面系統(tǒng)地掌握了編譯器的構(gòu)造過程。同時(shí),也激發(fā)了學(xué)生的學(xué)習(xí)興趣,提高了學(xué)生進(jìn)行更深入學(xué)習(xí)的主動(dòng)性。通過一個(gè)學(xué)期的實(shí)習(xí),大部分學(xué)生對編譯器的整個(gè)過程有了較清晰的理解,靈活地掌握了編譯程序的構(gòu)造方法和技術(shù),部分學(xué)生可以獨(dú)立地設(shè)計(jì)和實(shí)現(xiàn)自定義的模型語言,達(dá)到了預(yù)計(jì)的效果。
四、精品課網(wǎng)站建設(shè)
針對目前學(xué)生人數(shù)增多,教學(xué)資源不足,學(xué)生質(zhì)量參差不齊,教學(xué)質(zhì)量和效率得不到保證的情況,我們充分利用Internet網(wǎng)絡(luò),建立和實(shí)施了網(wǎng)絡(luò)課程體系,利用Internet網(wǎng)在信息制造、貯存和遞送方面的優(yōu)勢,克服了資源不足的缺點(diǎn),同時(shí)也為學(xué)生提供了完全個(gè)性化的學(xué)習(xí)環(huán)境,發(fā)揮網(wǎng)絡(luò)教學(xué)優(yōu)勢。具體網(wǎng)址為http://softlab.jlu.edu.cn。
目前已經(jīng)完成了編譯網(wǎng)絡(luò)課程體系的基本功能模塊,構(gòu)造和實(shí)現(xiàn)了一個(gè)網(wǎng)絡(luò)課程資源系統(tǒng),具體包括:
(1)“編譯原理”網(wǎng)絡(luò)課程內(nèi)容教學(xué)體系
將“編譯原理”的課程概況、課程內(nèi)容、習(xí)題解答、教學(xué)錄像、參考資料、實(shí)踐課題、編譯實(shí)例庫以及CAI課件等內(nèi)容上網(wǎng),為校內(nèi)外學(xué)生學(xué)習(xí)和實(shí)踐編譯原理與技術(shù)提供理論知識(shí)和范例。
(2)完成學(xué)生練習(xí)系統(tǒng)的構(gòu)造
通過電子黑板,BBS為學(xué)生提供開放的學(xué)習(xí)時(shí)間和空間,促進(jìn)教師與學(xué)生,學(xué)生與學(xué)生間的相互交流,激發(fā)學(xué)生學(xué)習(xí)的主動(dòng)性,提高學(xué)生的實(shí)踐能力,更深入地理解和掌握課程內(nèi)容。
(3)設(shè)計(jì)實(shí)現(xiàn)輔助工具系統(tǒng)
提供電子筆記本,對學(xué)生學(xué)習(xí)情況進(jìn)行記錄,教師通過對記錄的分析,反饋和改進(jìn)課程網(wǎng)絡(luò)系統(tǒng),有利于今后的維護(hù)工作。
(4)構(gòu)造網(wǎng)絡(luò)管理系統(tǒng)
通過網(wǎng)絡(luò)登陸驗(yàn)證,維護(hù)網(wǎng)絡(luò)安全,以保證網(wǎng)絡(luò)課程體系運(yùn)行良好。
五、教師隊(duì)伍建設(shè)
長期以來,教研室一直注重把精品課程建設(shè)與高水平教師隊(duì)伍建設(shè)相結(jié)合?!熬幾g原理”課程已形成一支教師職稱結(jié)構(gòu)、年齡結(jié)構(gòu)、學(xué)歷結(jié)構(gòu)、學(xué)位結(jié)構(gòu)合理,人員穩(wěn)定,教學(xué)水平高的教學(xué)隊(duì)伍。教學(xué)隊(duì)伍成員具有良好的師德,學(xué)術(shù)造詣高,教學(xué)能力強(qiáng),教學(xué)經(jīng)驗(yàn)豐富,教學(xué)特色鮮明。
編譯課程負(fù)責(zé)人劉磊教授1997年獲寶鋼優(yōu)秀教師獎(jiǎng),2005年被評為吉林大學(xué)十佳優(yōu)秀教師,并在學(xué)校的教學(xué)評估中,多次被評為優(yōu)秀,受到學(xué)校的表彰獎(jiǎng)勵(lì),先后主編出版了多部教材,在各級(jí)學(xué)術(shù)期刊和國際會(huì)議上發(fā)表學(xué)術(shù)論文60余篇。
六、教材建設(shè)
教研室一直注重編譯教材建設(shè),先后在科學(xué)出版社、高等教育出版社和機(jī)械工業(yè)出版社出版了編譯原理方面的著作7部,例如:《Algol60編譯方法》上下冊(1983年,科學(xué)出版社)、《編譯方法》(1984年,高等教育出版社)、《編譯原理與實(shí)現(xiàn)》(1989年,高等教育出版社)、《編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)》(2000年,高等教育出版社)、《編譯程序的設(shè)計(jì)與實(shí)現(xiàn)》(2004年,機(jī)械工業(yè)出版社)、《編譯原理及實(shí)現(xiàn)技術(shù)》(2005年,機(jī)械工業(yè)出版社)等。
目前在編著的由國家“九五”規(guī)劃出版的面向二十一世紀(jì)教材《編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)》基礎(chǔ)上,教研室又新推出了《編譯程序設(shè)計(jì)與實(shí)現(xiàn)》教材,作為“編譯原理”實(shí)踐課程教材,也是“編譯原理”課程的配套教材。該教材以實(shí)踐培養(yǎng)為重點(diǎn),針對一個(gè)教學(xué)語言模型,詳細(xì)地介紹了該模型語言編譯器的設(shè)計(jì)和具體的實(shí)現(xiàn)方法。同時(shí),為學(xué)生提供國內(nèi)外先進(jìn)的編譯教材,供學(xué)生選讀。
這些教材一直是高等院校計(jì)算機(jī)專業(yè)普遍使用的教材,也是計(jì)算機(jī)軟件相關(guān)專業(yè)的重要參考書籍,至今許多著作經(jīng)過了多次重印,在國內(nèi)占有重要的地位。
七、總結(jié)
教研室始終堅(jiān)持吸收最新研究成果和保持自己特色的原則,保證“編譯原理”課程教材內(nèi)容的先進(jìn)性和實(shí)用性,注重教學(xué)方法和教學(xué)手段改革,至今,教研室已先后出版編譯相關(guān)教材7部,承擔(dān)并圓滿完成了多項(xiàng)省部級(jí)重點(diǎn)教改項(xiàng)目,發(fā)表了多篇教改教研論文,研制了課程教輔軟件,使吉林大學(xué)在“編譯原理”課程、教材和教學(xué)梯隊(duì)建設(shè),以及課程的教學(xué)組織管理和學(xué)生系統(tǒng)軟件分析能力的嚴(yán)格訓(xùn)練等方面居國內(nèi)領(lǐng)先行列。