劉漢強(qiáng)
摘要:編譯原理是計(jì)算機(jī)專業(yè)的一門重要專業(yè)課,旨在介紹編譯程序構(gòu)造的一般原理和基本方法。針對(duì)高等師范院校的計(jì)算機(jī)專業(yè)師范生普遍對(duì)編譯原理課程學(xué)習(xí)興趣不高且無法獲得良好的學(xué)習(xí)效果等問題,通過考察計(jì)算機(jī)專業(yè)師范生的特點(diǎn),深入分析了教材、教學(xué)對(duì)象、教學(xué)目標(biāo)和教學(xué)過程等問題,設(shè)計(jì)了計(jì)算機(jī)專業(yè)師范生編譯原理課程的教學(xué)和實(shí)驗(yàn)改革措施。通過措施的開展,使得學(xué)生能夠理解掌握并能清楚講解編譯原理主要理論,加深學(xué)生對(duì)編譯原理基本課程理論的理解與把握,提升學(xué)習(xí)效率。
關(guān)鍵詞:計(jì)算機(jī)專業(yè)師范生;編譯原理;教學(xué)方法;改革探索
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2017)36-0121-03
引言
2007年,國務(wù)院決定在教育部直屬師范大學(xué)實(shí)行師范生免費(fèi)教育。陜西師范大學(xué)作為教育部直屬6所師范大學(xué)之一,經(jīng)過近十年的努力,在師范生免費(fèi)教育上獲得了突出的成績。編譯原理作為計(jì)算機(jī)專業(yè)的一門重要專業(yè)課,旨在介紹編譯程序構(gòu)造的一般原理和基本方法。在陜西師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,對(duì)于計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)師范生,該課程開設(shè)在第五個(gè)學(xué)期。該課程講授內(nèi)容包括語言和文法、詞法分析、語法分析、語法制導(dǎo)翻譯、中間代碼生成、存儲(chǔ)管理、代碼優(yōu)化和目標(biāo)代碼生成[1]。Alfred V.Aho在其名著《編譯原理》的開篇寫道,“編譯編譯器的原理與技術(shù)具有十分普遍的意義,以至于每個(gè)計(jì)算機(jī)科學(xué)家的研究生涯中,本書中的原理與技術(shù)都會(huì)被反復(fù)使用”[2],表明了編譯原理在整個(gè)程序設(shè)計(jì)教程中擔(dān)負(fù)著重要作用。
雖然編譯原理在計(jì)算機(jī)教學(xué)中擔(dān)任著重要的角色,但是作為一名計(jì)算機(jī)專業(yè)大三學(xué)生,尤其計(jì)算機(jī)專業(yè)師范生,在學(xué)習(xí)這門課程時(shí)普遍存在以下問題:(1)該課程對(duì)計(jì)算機(jī)專業(yè)師范生未來從事中小學(xué)教師職業(yè)幫助不大,且無法得知是否可以對(duì)今后的學(xué)習(xí)與工作產(chǎn)生有利的影響;(2)編譯原理課本中存在大量的理論知識(shí),內(nèi)容抽象枯燥且不易理解,很難完整全面地把握知識(shí)并形成相應(yīng)的理論體系;(3)很多人認(rèn)為只要掌握了如何使用編譯器就可以了,何必掌握這個(gè)編譯器是怎么來的呢,又為何要學(xué)習(xí)如何編譯一個(gè)編譯器呢?也因?yàn)檫@樣的原因,大多數(shù)計(jì)算機(jī)專業(yè)師范生對(duì)編譯原理的學(xué)習(xí)興趣不高甚至于根本沒有學(xué)習(xí)興趣。因此我們不得不采取措施轉(zhuǎn)變教學(xué)觀念,改革編譯原理的傳統(tǒng)教學(xué)和實(shí)驗(yàn)方法,研究新型教學(xué)和實(shí)驗(yàn)?zāi)J?,使同學(xué)們糾正自己的錯(cuò)誤認(rèn)識(shí),端正學(xué)習(xí)態(tài)度,提高學(xué)習(xí)編譯原理的積極性與熱情,更好地理解與掌握編譯原理的相關(guān)知識(shí)。同時(shí),也能夠使教師在授課的過程中更加用心,最終使教師與學(xué)生共同進(jìn)步。
一、對(duì)計(jì)算機(jī)專業(yè)師范生的編譯原理理論知識(shí)的教學(xué)改革
在傳統(tǒng)教學(xué)方法中,習(xí)慣使用填鴨式教學(xué)法,即教師對(duì)知識(shí)進(jìn)行系統(tǒng)的講解,學(xué)生在短時(shí)間內(nèi)掌握大量知識(shí)。但是這種方法以教師為主體,學(xué)生的聽課效率不高,并且這種教學(xué)方法多以書本為主,很少考慮學(xué)生的主體意識(shí)。此外,編譯原理知識(shí)的晦澀枯燥使學(xué)生們的學(xué)習(xí)興趣大大降低,且教師與學(xué)生間的互動(dòng)相對(duì)來說比較少,教師難以把握學(xué)生學(xué)習(xí)狀況,不利于教學(xué)的展開[3]。此外,計(jì)算機(jī)專業(yè)的師范生未來的工作多為中小學(xué)信息技術(shù)老師,編譯原理課程在其未來的工作可能不再會(huì)涉及,使得他們對(duì)該課程的學(xué)習(xí)不夠重視,并且學(xué)生遇到問題時(shí)不愿意獨(dú)立思考、動(dòng)手實(shí)踐。針對(duì)計(jì)算機(jī)專業(yè)師范生編譯原理課程學(xué)習(xí)中出現(xiàn)的問題,結(jié)合學(xué)生和編譯原理課程的特點(diǎn),轉(zhuǎn)變教學(xué)模式,精心設(shè)計(jì)任務(wù)教學(xué)任務(wù)。
(一)啟發(fā)式教學(xué)法
啟發(fā)式教學(xué)就是根據(jù)教學(xué)目的、內(nèi)容、學(xué)生的知識(shí)水平和知識(shí)規(guī)律,運(yùn)用各種教學(xué)手段,采用啟發(fā)誘導(dǎo)辦法傳授知識(shí),使學(xué)生積極主動(dòng)地學(xué)習(xí),以促進(jìn)身心發(fā)展。例如:學(xué)習(xí)詞法分析時(shí),怎樣完成單詞的識(shí)別呢?可以讓學(xué)生思考人類語言的結(jié)構(gòu),按照從左到右的掃描順序,一個(gè)一個(gè)解讀每個(gè)單詞,尋找規(guī)律并發(fā)現(xiàn)不同的單詞。最后,按照開始符號(hào)的不同,識(shí)別不同的單詞,拼寫單詞直到遇到非法符號(hào)即可。
(二)任務(wù)驅(qū)動(dòng)教學(xué)法
任務(wù)驅(qū)動(dòng)教學(xué)法是學(xué)生在任務(wù)的驅(qū)動(dòng)下,借助教師的幫助,利用學(xué)習(xí)資源,通過課堂上的自主、合作、探究學(xué)習(xí)獲得知識(shí)意義的建構(gòu)和能力提高的一種教學(xué)方法。它以任務(wù)為主線、教師為主導(dǎo)、學(xué)生為主體,是新課程改革實(shí)踐中出現(xiàn)的一種新教法、新模式,體現(xiàn)了新課程改革“自主—合作—探究”的學(xué)習(xí)理念。詞法分析的任務(wù)和功能以及有限自動(dòng)機(jī)等分析工具的內(nèi)容比較抽象,是教學(xué)的重點(diǎn)和難點(diǎn)。采用任務(wù)驅(qū)動(dòng)法能夠取得較好的效果[4]。詞法分析是編譯的第一階段,該階段的任務(wù)是從左到右逐個(gè)字段對(duì)源程序進(jìn)行掃描,產(chǎn)生一個(gè)個(gè)單詞序列,用以進(jìn)行語法分析。直白的說就是輸入源程序,輸出單詞符號(hào)。具備了正規(guī)文法知識(shí),講解形式語言和自動(dòng)機(jī)理論知識(shí)就比較容易被學(xué)生接受。
(三)案例教學(xué)法
案例教學(xué)是一種開放式、互動(dòng)式的新型教學(xué)方式。通常,案例教學(xué)要經(jīng)過事先周密的策劃和準(zhǔn)備,要使用特定的案例并指導(dǎo)學(xué)生提前閱讀,要組織學(xué)生開展討論或爭論,形成反復(fù)的互動(dòng)與交流。算法優(yōu)先分析是編譯原理過程中的一個(gè)重要的自上而下分析算法,在講解詞算法時(shí),首先要引入3個(gè)概念:算符文法、終結(jié)符間的優(yōu)先關(guān)系及算符優(yōu)先文法。我們首先從“算符優(yōu)先算法”幾個(gè)字入手,先了解這種算法是借助于“字符間的優(yōu)先關(guān)系”進(jìn)行的一種語法分析方法,告訴學(xué)生優(yōu)先關(guān)系有3種,然后給出3組小實(shí)例,從而使得學(xué)生能夠很自然地理解這里的優(yōu)先關(guān)系與數(shù)字間的大小關(guān)系是完全不同的,它是指左結(jié)合下的算法表達(dá)式中算符計(jì)算的先后順序。然后在黑板上給出小實(shí)例,如“3+4*52-6”,并在寫的過程中告訴學(xué)生這個(gè)表達(dá)式很長,在寫中間過程“3+4”、“3+4*”、“3+4*52”、“3+4*52-”的時(shí)候,詢問學(xué)生表達(dá)式還未結(jié)束是否可以計(jì)算,因此讓學(xué)生自己總結(jié)出這里的優(yōu)先關(guān)系是指前一個(gè)算符和后一個(gè)相繼出現(xiàn)的算符的關(guān)系,并強(qiáng)調(diào)兩點(diǎn):首先,(a,b)和(b,a)是兩種不同的關(guān)系;其次,當(dāng)a,b前后相繼出現(xiàn)時(shí)才會(huì)用到(a,b)。最后,把算符擴(kuò)充到終結(jié)符。根據(jù)上述案例教學(xué),很容易讓學(xué)生理解算符文法和算法優(yōu)先文法的概念。endprint
(四)討論式教學(xué)法
討論式教學(xué)法強(qiáng)調(diào)在教師的精心準(zhǔn)備和指導(dǎo)下,為實(shí)現(xiàn)一定的教學(xué)目標(biāo),通過預(yù)先的設(shè)計(jì)與組織,啟發(fā)學(xué)員就特定問題發(fā)表自己的見解,以培養(yǎng)學(xué)員的獨(dú)立思考能力和創(chuàng)新精神。討論式教學(xué)的環(huán)節(jié)大致包括:設(shè)計(jì)問題、提供資料、啟發(fā)思路、得出結(jié)論。
在講授編譯原理語法分析單元中的算符有限分析法時(shí),設(shè)計(jì)了一個(gè)計(jì)算器的應(yīng)用程序,傳統(tǒng)的計(jì)算器是按照輸入表達(dá)式的順序進(jìn)行運(yùn)算,而這里的設(shè)計(jì)包含括號(hào)的計(jì)算器,按照先括號(hào)后乘除最后加減的方法進(jìn)行運(yùn)算,當(dāng)輸入表達(dá)式后通過按鈕控制結(jié)果的輸出。演示完畢后,由同學(xué)討論計(jì)算機(jī)是如何完成的。最后給出采用兩個(gè)棧存放操作數(shù)和運(yùn)算符,通過按鈕來控制進(jìn)棧和出棧。這樣引出了算符優(yōu)先分析法的內(nèi)容。這種講解法激發(fā)了學(xué)生的學(xué)習(xí)興趣,對(duì)接下來的內(nèi)容充滿了好奇,有利于對(duì)知識(shí)的學(xué)習(xí)。
(五)Blackboard信息化教學(xué)平臺(tái)的使用
陜西師范大學(xué)已于2013年引入Blackboard信息化教學(xué)平臺(tái),引導(dǎo)各教學(xué)單位和廣大教師開展基于Blackboard教學(xué)平臺(tái)的信息化課程建設(shè)及教學(xué)方式改革。該信息平臺(tái)可以提供比較豐富的教學(xué)資源,如教學(xué)大綱、教學(xué)計(jì)劃、電子教案、電子課件和教學(xué)視頻等,方便學(xué)生自主學(xué)習(xí)。網(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)行在線交流、答疑等。通過利用該教學(xué)平臺(tái),使用混合式教學(xué),將傳統(tǒng)教學(xué)的優(yōu)勢和數(shù)字化教學(xué)的優(yōu)勢結(jié)合起來,二者優(yōu)勢互補(bǔ),從而獲得更佳的教學(xué)效果。
二、針對(duì)計(jì)算機(jī)專業(yè)師范生的編譯原理實(shí)驗(yàn)部分改革
對(duì)于計(jì)算機(jī)學(xué)科來說,實(shí)驗(yàn)是其重要的組成部分。如果掌握了理論知識(shí)而不動(dòng)手實(shí)踐,就如同將軍紙上談兵。對(duì)于編譯原理來說,通過實(shí)驗(yàn)可以更好地掌握其理論知識(shí),當(dāng)我們做完試驗(yàn)后再回頭看書,我們會(huì)發(fā)現(xiàn)原來編譯原理并沒有那么難理解。通過實(shí)驗(yàn),學(xué)生可以對(duì)自己所學(xué)知識(shí)進(jìn)行檢測,及時(shí)發(fā)現(xiàn)自己存在的問題與漏洞,及時(shí)改正與復(fù)習(xí),同時(shí)也避免了丟開課本就忘的情況。計(jì)算機(jī)專業(yè)師范生因以后多從事教師行業(yè),大多對(duì)自己的理論知識(shí)要求較高,而在實(shí)驗(yàn)環(huán)節(jié)要求一般,做具體實(shí)驗(yàn)時(shí)會(huì)感覺比較難,動(dòng)手實(shí)踐能力較差,因此教師可以以學(xué)生了解實(shí)驗(yàn)原理作為實(shí)驗(yàn)?zāi)康呐c要求。因此針對(duì)計(jì)算機(jī)專業(yè)師范生,對(duì)編譯原理課程實(shí)驗(yàn)部分改革的具體內(nèi)容為:(1)詞法分析器設(shè)計(jì):主要目的為熟悉詞法分析的基本原理、詞法分析的過程以及詞法分析中要注意的問題。實(shí)驗(yàn)內(nèi)容是使用C語言編寫一個(gè)PL/0詞法分析器,為語法語義分析提供單詞,使之能把輸入的字符串形式的源程序分割成一個(gè)個(gè)單詞符號(hào)傳遞給語法語義分析,并把分析結(jié)果(基本字,運(yùn)算符,標(biāo)識(shí)符,常數(shù)以及界符)輸出。(2)語法分析程序設(shè)計(jì)(一):加深對(duì)語法分析器工作過程的理解,能夠采用C語言實(shí)現(xiàn)簡單的語法分析程序,能夠使用自己編寫的分析程序?qū)唵蔚某绦蚨芜M(jìn)行語法翻譯。這里可以設(shè)計(jì)使用預(yù)測分析法來編制語法分析程序,通過對(duì)語法規(guī)則的明確定義,編寫有效的分析程序并對(duì)詞法分析器實(shí)驗(yàn)中得到的結(jié)果進(jìn)行正確的語法分析。(3)語法分析程序設(shè)計(jì)(二):由于后續(xù)語法分析原理比較復(fù)雜,針對(duì)計(jì)算機(jī)專業(yè)師范生,為了加強(qiáng)學(xué)生對(duì)算符優(yōu)先分析法、遞歸下降分析法和LR(1)分析法的理解,將現(xiàn)成的程序讓學(xué)生閱讀理解,并組織分組討論和講解,實(shí)現(xiàn)語法分析程序的掌握。
通過上述的實(shí)驗(yàn)改革,計(jì)算機(jī)專業(yè)師范生提高了學(xué)生對(duì)編譯原理實(shí)驗(yàn)的興趣,在原有的基礎(chǔ)上加深了對(duì)原理的掌握,同時(shí)提高了自己閱讀和理解程序的能力。
三、總結(jié)與展望
該論文旨在對(duì)師范院校計(jì)算機(jī)專業(yè)師范生的編譯原理教學(xué)與實(shí)驗(yàn)改革部分進(jìn)行闡述,使教師和學(xué)生轉(zhuǎn)變教學(xué)思想,端正學(xué)生學(xué)習(xí)態(tài)度,提升學(xué)生對(duì)編譯原理的學(xué)習(xí)興趣,加強(qiáng)對(duì)編譯原理相關(guān)知識(shí)的理解與把握能力,從而提升其創(chuàng)新精神與創(chuàng)造能力。通過介紹編譯原理在計(jì)算機(jī)中的重要性、對(duì)編譯原理進(jìn)行教學(xué)改革的原因,結(jié)合計(jì)算機(jī)專業(yè)師范生的學(xué)習(xí)特點(diǎn),對(duì)編譯原理教學(xué)進(jìn)行改革所采取的新式教學(xué)和實(shí)驗(yàn)方法策略。希望此論文可以為計(jì)算機(jī)專業(yè)師范生的編譯原理教學(xué)提供幫助。
參考文獻(xiàn):
[1]陳火旺,劉春林,譚慶平,等.程序設(shè)計(jì)語言編譯原理[M].北京:國防工業(yè)出版社,2009.
[2]張素琴,呂映芝,蔣維杜,等.編譯原理[M].北京:清華大學(xué)出版社,2005.
[3]徐晶.研究型教學(xué)在編譯原理課程中的應(yīng)用探索[J].現(xiàn)代教育技術(shù),2009,19(S1):62-63.
[4]袁彩虹,周星.編譯原理課程案例教學(xué)研究[J].計(jì)算機(jī)教育,2013,(9):27-29.endprint