国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于領(lǐng)域應(yīng)用的編譯原理教學(xué)探索

2013-12-31 00:00:00伍春香
計(jì)算機(jī)教育 2013年18期

摘要:編譯原理課程被公認(rèn)為本科計(jì)算機(jī)專業(yè)教學(xué)的難點(diǎn)。文章結(jié)合教學(xué)實(shí)踐,介紹基于領(lǐng)域應(yīng)用的編譯原理課程研究型教學(xué)方法:以問題求解為切入點(diǎn),用各種應(yīng)用領(lǐng)域問題激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生學(xué)習(xí)和實(shí)踐的參與度,培養(yǎng)學(xué)生在“類”的層面對(duì)待領(lǐng)域“實(shí)例”問題的求解,幫助學(xué)生深入理解計(jì)算機(jī)學(xué)科問題求解抽象描述和處理的實(shí)質(zhì)。

關(guān)鍵詞:編譯原理;教學(xué)實(shí)踐;學(xué)習(xí)興趣;應(yīng)用領(lǐng)域

文章編號(hào):1672-5913(2013)18-0062-04

中圖分類號(hào):G642

0 引言

編譯原理課程內(nèi)容豐富,而且涉及形式文法和語言、有窮自動(dòng)機(jī)等抽象內(nèi)容,學(xué)生理解和掌握有一定難度。加上編譯程序是系統(tǒng)軟件,讓不少學(xué)生又增添了一層畏懼,甚至有的學(xué)生戲稱該課程是軟件系列課程中最難學(xué)的“天書”。部分學(xué)校單純從“直接有用性”角度考慮,將該課程由必修改為選修,甚至取消該課程,這些做法從另一個(gè)角度助推了學(xué)生的畏難情緒,也打擊了教師的教學(xué)研究積極性。

為打破這種尷尬局面,解除學(xué)生的學(xué)習(xí)心理障礙,我們引導(dǎo)學(xué)生探索編譯的原理、方法和技術(shù)在各應(yīng)用領(lǐng)域中的使用,并以“應(yīng)用領(lǐng)域編譯器”的構(gòu)建作為課程實(shí)踐內(nèi)容。這些做法,既改變了編譯的“抽象”印象,激發(fā)學(xué)生學(xué)習(xí)興趣,又讓學(xué)生在具體應(yīng)用問題的求解中,從系統(tǒng)的層面重新認(rèn)識(shí)此前程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法等課程介紹的程序、算法,在實(shí)踐中體會(huì)各種概念、原理和技術(shù)的實(shí)質(zhì),有助于學(xué)生深刻體驗(yàn)計(jì)算機(jī)問題求解的內(nèi)涵,建立計(jì)算機(jī)系統(tǒng)觀。

1 基于領(lǐng)域應(yīng)用的研究性教學(xué)實(shí)踐

編譯原理作為本科生課程,其主要目標(biāo)是希望學(xué)生掌握編譯原理中的基本概念、理論和方法,在系統(tǒng)級(jí)上再認(rèn)識(shí)程序和算法,提升學(xué)生的計(jì)算機(jī)問題求解的水平,增強(qiáng)其系統(tǒng)能力,體驗(yàn)實(shí)現(xiàn)自動(dòng)計(jì)算的樂趣。

如何幫助學(xué)生克服對(duì)編譯原理課程的恐懼,激發(fā)學(xué)生的學(xué)習(xí)興趣,達(dá)到課程的教學(xué)目的,是任課教師需要解決的重要問題。

研究表明:正情緒(如興趣)有利于智力操作,負(fù)情緒(如痛苦)不利于智力操作。為提高學(xué)生學(xué)習(xí)編譯原理的“正情緒”,我們?cè)趯?shí)踐中逐步摸索出了基于領(lǐng)域應(yīng)用的編譯原理課程研究型教學(xué)方法,大大減輕了學(xué)生對(duì)編譯課程的畏懼感,提高了學(xué)習(xí)興趣,改善了教學(xué)效果。

1.1 以領(lǐng)域應(yīng)用為導(dǎo)向,激發(fā)學(xué)習(xí)興趣

編譯程序是系統(tǒng)軟件。在有限的學(xué)科知識(shí)背景下,一些學(xué)生認(rèn)為自己將來不會(huì)從事系統(tǒng)軟件開發(fā),編譯原理課程的學(xué)習(xí)沒有實(shí)際意義,因而沒有學(xué)習(xí)興趣。另一部分學(xué)生則認(rèn)為涉及系統(tǒng)軟件的知識(shí)是復(fù)雜的、晦澀難懂的,由于懼怕,在心理上給自己增加了學(xué)習(xí)障礙。

建構(gòu)主義學(xué)習(xí)理論提倡以學(xué)習(xí)者為中心的有意義的學(xué)習(xí),認(rèn)為教師是意義建構(gòu)的幫助者和促進(jìn)者,而不是知識(shí)的傳輸者與灌輸者。事實(shí)也證明“興趣是最好的老師”,一旦學(xué)生的學(xué)習(xí)興趣被激發(fā),學(xué)生對(duì)問題的鉆研深度和取得的成果往往會(huì)超過老師。因此,在編譯原理的教學(xué)過程中,我們以激發(fā)學(xué)生的學(xué)習(xí)興趣為切入點(diǎn),嘗試探究式的教學(xué)方法。

實(shí)際上,編譯原理課程講述的是通用的問題求解方法,是針對(duì)各個(gè)具體應(yīng)用領(lǐng)域中問題共性的求解方法,是從“類”的角度出發(fā)的計(jì)算方法,一旦掌握,可以應(yīng)用于各領(lǐng)域具體問題的“實(shí)例”問題求解,效率更高,方法更通用。

現(xiàn)實(shí)中,很多應(yīng)用領(lǐng)域都在使用編譯的原理、技術(shù)和方法。例如,從程序設(shè)計(jì)語言實(shí)現(xiàn)的角度得到的詞法分析、語法分析、語義分析的方法,還有中問代碼生成、目標(biāo)代碼生成的思想,在自然語言處理領(lǐng)域有很好的應(yīng)用實(shí)例;程序變換的思想在軟件自動(dòng)生成方面得到體現(xiàn);網(wǎng)絡(luò)環(huán)境下的搜索引擎也用到編譯的原理和技術(shù)。學(xué)生受限于已掌握的知識(shí),缺少實(shí)際應(yīng)用的經(jīng)驗(yàn),誤以為編譯原理課程介紹的內(nèi)容就只是用于作為系統(tǒng)程序的編譯程序的構(gòu)建,畏懼心理加上缺乏興趣,使得這門課程的學(xué)習(xí)難度無形中加大。

在課程的開始階段,我們讓學(xué)生選擇一個(gè)自己感興趣的應(yīng)用領(lǐng)域。隨著課程的進(jìn)行,引導(dǎo)學(xué)生分析應(yīng)用領(lǐng)域中的問題,尋找其與編譯問題的相似性,發(fā)現(xiàn)二者的聯(lián)系,思考編譯中的原理、方法和技術(shù)如何與這些應(yīng)用領(lǐng)域中問題求解方法相結(jié)合。當(dāng)面對(duì)自己感興趣的應(yīng)用領(lǐng)域時(shí),學(xué)生的學(xué)習(xí)動(dòng)力就不可估量了。我們?cè)僖龑?dǎo)學(xué)生將這些應(yīng)用領(lǐng)域問題的求解轉(zhuǎn)換成“類”的問題描述,思考這些“類問題”如何用課堂所學(xué)的編譯方法予以求解。

舉例來說,在最近一輪的編譯原理課程教學(xué)中,學(xué)生們就從多個(gè)非程序設(shè)計(jì)語言翻譯的角度探索了編譯技術(shù)的應(yīng)用,涉及網(wǎng)絡(luò)傳輸協(xié)議解析、文檔編輯器、測(cè)試自動(dòng)化、文檔排版、作業(yè)自動(dòng)批改、漢語自然語言處理、惡意腳本查殺、邏輯門電路繪制、漢語英語翻譯、自動(dòng)閱卷系統(tǒng)、火車票購票、中文識(shí)別、郵件地址識(shí)別、模式識(shí)別等諸多非編譯問題。

在探索了編譯理論和技術(shù)在不同領(lǐng)域的可能應(yīng)用后,我們又指導(dǎo)學(xué)生將心得撰寫成研究型小論文。雖然大多數(shù)論文還略顯幼稚,但論文的撰寫過程確實(shí)是對(duì)研究型學(xué)習(xí)的再一次總結(jié)和升華。

當(dāng)學(xué)生們看到編譯的知識(shí)在如此眾多的非編譯領(lǐng)域同樣有著大量的用途時(shí),他們不再覺得編譯原理課程的內(nèi)容與自己未來的學(xué)習(xí)和工作無關(guān),反而希望能更好地學(xué)習(xí)和理解編譯原理課程介紹的原理、方法和技術(shù),以便為將來的發(fā)展打好基礎(chǔ)。

在興趣的驅(qū)使下,編譯原理課程的學(xué)習(xí)不再枯燥晦澀,即使面對(duì)形式化描述的抽象內(nèi)容,學(xué)生也不再畏懼;同時(shí),編譯原理課程的教學(xué)目的也得以實(shí)現(xiàn)。

1.2 構(gòu)建應(yīng)用領(lǐng)域編譯器,提高實(shí)習(xí)參與度

傳統(tǒng)的編譯原理課程實(shí)習(xí)中,學(xué)生在掌握基本原理的基礎(chǔ)上,完成一個(gè)受限程序設(shè)計(jì)語言的詞法分析程序、語法分析程序和語義分析與中間代碼生成程序。雖然學(xué)生可以自行選擇語言完成實(shí)現(xiàn),但編譯程序的“系統(tǒng)程序”的地位,使學(xué)生整體學(xué)習(xí)興趣受到影響,而對(duì)課程實(shí)踐的興趣不足,又直接影響了對(duì)理論知識(shí)的理解和深入。

建構(gòu)主義的學(xué)習(xí)觀認(rèn)為:學(xué)習(xí)不是由教師把知識(shí)簡單地傳遞給學(xué)生,而是由學(xué)生自己建構(gòu)知識(shí)的過程;學(xué)生不是簡單被動(dòng)地接收信息,而是主動(dòng)地建構(gòu)知識(shí)的意義,這種建構(gòu)是無法由他人來代替的。單純的課堂聽課,沒有真正完成知識(shí)的掌握和轉(zhuǎn)化。課堂聽懂了但課后不會(huì)做題或?qū)嵙?xí)就是一個(gè)很好的證明。課堂聽課過程中,學(xué)生是運(yùn)用自己已有的知識(shí),來衡量教師當(dāng)前講述內(nèi)容的合理性,教師當(dāng)前所講述內(nèi)容并未轉(zhuǎn)化為學(xué)生已有知識(shí)體系中的一部分。所謂“課堂聽瞳了”,只是學(xué)生使用已有知識(shí)判斷出教師所講內(nèi)容“合理”而已。只有當(dāng)教師所講內(nèi)容真正轉(zhuǎn)化成學(xué)生知識(shí)體系中的一部分時(shí),做題或?qū)嵙?xí)才不會(huì)困難。所以,習(xí)題和實(shí)習(xí)是理論課程學(xué)習(xí)的重要實(shí)踐環(huán)節(jié),在編譯原理這門課程中更是如此。

我們除了在課堂教學(xué)中引導(dǎo)學(xué)生探究編譯原理和技術(shù)在非編譯領(lǐng)域的應(yīng)用,習(xí)作研究型小論文外,還在課程實(shí)習(xí)環(huán)節(jié)采用構(gòu)建“應(yīng)用領(lǐng)域編譯器”作為實(shí)習(xí)題目,以提高學(xué)生的實(shí)習(xí)興趣和參與度。

編譯原理課程的教學(xué)目的是培養(yǎng)學(xué)生在系統(tǒng)級(jí)別上重新認(rèn)識(shí)程序和算法。我們采用循序漸進(jìn)的引導(dǎo),培養(yǎng)學(xué)生從“類”的層面逐步完成應(yīng)用領(lǐng)域“實(shí)例”問題的認(rèn)識(shí)、分析、設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)。

1)以能力確定選題。

并非所有的學(xué)生都適合選擇程序設(shè)計(jì)語言以外的應(yīng)用領(lǐng)域問題作為實(shí)習(xí)題目。我們讓學(xué)生根據(jù)自己的能力選擇合適的選題。

普通層次的學(xué)生,要求其掌握最基本的方法和技術(shù),而不被應(yīng)用問題本身的復(fù)雜性牽扯太多精力。我們按照傳統(tǒng)編譯原理課程實(shí)習(xí)的做法,推薦一個(gè)受限的程序設(shè)計(jì)語言(包含語言的若干基本成分,如表達(dá)式、賦值語句、If語句、while語句等),學(xué)生可選實(shí)際程序設(shè)計(jì)語言(如C語言)的子集,也可由學(xué)生自行設(shè)計(jì)一個(gè)小語言,要求實(shí)現(xiàn)該受限語言編譯程序的詞法分析程序、語法分析程序、語義分析和中間代碼生成程序,并且每個(gè)程序的輸入、輸出均以文件形式存放,前一階段的輸出可以作為后一階段的輸入。雖然并不是一個(gè)完整的編譯器,但是編譯程序工作過程的主要環(huán)節(jié)都得到模擬,而且各部分的共同作用也有助于理解編譯程序的整體架構(gòu),同樣可以達(dá)到掌握主要編譯技術(shù)的目的。

對(duì)于學(xué)習(xí)能力較強(qiáng)的學(xué)生,我們建議其選擇一個(gè)自己感興趣的應(yīng)用領(lǐng)域問題,采用編譯程序模型化計(jì)算的思想,實(shí)現(xiàn)一個(gè)應(yīng)用領(lǐng)域編譯器。至于具體的實(shí)現(xiàn)過程,則隨著課程的進(jìn)度,逐步引導(dǎo)學(xué)生從“問題類求解”的層面定義問題,并完成分析、設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)。

2)漸進(jìn)式構(gòu)建引導(dǎo)。

隨著課堂內(nèi)容的進(jìn)行,我們采用漸進(jìn)式構(gòu)建的方法,引導(dǎo)學(xué)生逐步實(shí)現(xiàn)應(yīng)用領(lǐng)域編譯器,其實(shí)施過程如圖1所示。

(1)定義領(lǐng)域?qū)ο?。確定應(yīng)用領(lǐng)域后,引導(dǎo)學(xué)生分析領(lǐng)域問題處理對(duì)象的構(gòu)成特點(diǎn),并據(jù)此構(gòu)造領(lǐng)域問題處理對(duì)象的生成文法。

(2)確定領(lǐng)域的“詞”。引導(dǎo)學(xué)生分析和認(rèn)識(shí)應(yīng)用領(lǐng)域中的“詞”和“詞法分析”的工作內(nèi)容。在應(yīng)用領(lǐng)域中,“詞”是構(gòu)成問題對(duì)象的最小處理單位。明白了“詞”的含義,“詞法分析”就是識(shí)別出這些最基本的單位,其構(gòu)建完全和程序設(shè)計(jì)語言詞法分析程序的設(shè)計(jì)與實(shí)現(xiàn)一樣。

(3)確定領(lǐng)域“語法成分”。引導(dǎo)學(xué)生分析和識(shí)別應(yīng)用領(lǐng)域的“語法成分”和“語法分析”工作內(nèi)容。應(yīng)用領(lǐng)域中的“語法成分”是被處理對(duì)象的不同層次的構(gòu)成單位,“語法分析”就是分析領(lǐng)域被處理對(duì)象的構(gòu)成,可以選用編譯原理課程中的一種語法分析方法予以實(shí)現(xiàn)。

(4)確定領(lǐng)域“語義”和“中間代碼”。這里的“語義”和“中間代碼”依賴于領(lǐng)域問題的具體應(yīng)用,需要引導(dǎo)學(xué)生分析不同領(lǐng)域中問題求解的目的,從而得出應(yīng)用領(lǐng)域的主要操作——“語義分析”的內(nèi)容。

(5)確定領(lǐng)域“目標(biāo)代碼”。其內(nèi)容也依賴于領(lǐng)域中的具體應(yīng)用。

當(dāng)實(shí)習(xí)全部完成后,學(xué)生體驗(yàn)到了從詞法分析、語法分析、語義分析和中問代碼生成、目標(biāo)代碼生成的所有環(huán)節(jié),這實(shí)質(zhì)上完成了一個(gè)應(yīng)用領(lǐng)域編譯器,實(shí)踐過程覆蓋了課程教學(xué)目標(biāo)要求學(xué)生掌握的全部內(nèi)容。

雖然每個(gè)應(yīng)用領(lǐng)域系統(tǒng)不必完全按照上述方法實(shí)現(xiàn),但是按照上述方法完成系統(tǒng)后,我們引導(dǎo)學(xué)生分析該方法的好處:這樣實(shí)現(xiàn)的系統(tǒng)可以略作修改甚至不作修改就能處理該領(lǐng)域的同類型問題,可以大大提高軟件的可移植性,減少軟件開發(fā)的工作量。主要原因就是按照編譯的方法,是從“問題類”的角度看問題,從系統(tǒng)的角度分析、設(shè)計(jì)和實(shí)現(xiàn)問題的求解,因此最終實(shí)現(xiàn)的系統(tǒng)可以適用于滿足“類”特征的所有“實(shí)例”問題。

在建構(gòu)主義學(xué)習(xí)理論指導(dǎo)下,我們以激發(fā)學(xué)生的學(xué)習(xí)興趣為切人點(diǎn),使課程學(xué)習(xí)與具體應(yīng)用領(lǐng)域相結(jié)合,讓學(xué)生體會(huì)到編譯原理和技術(shù)的實(shí)用性,大大提高其學(xué)習(xí)參與度;同時(shí)注重引導(dǎo)學(xué)生對(duì)問題求解基本思想、方法的探討,從確定領(lǐng)域問題,到詞法分析、語法分析、語義分析、目標(biāo)代碼生成的每一步求解思路分析,到應(yīng)用具體編譯技術(shù)實(shí)現(xiàn)求解算法,讓學(xué)生明白怎樣從“實(shí)例”問題的計(jì)算求解過渡到問題“類”計(jì)算,鍛煉了學(xué)生抽象問題描述和解決問題的能力:而整個(gè)系統(tǒng)的實(shí)現(xiàn)涉及不同層次的抽象和問題處理,達(dá)到了培養(yǎng)學(xué)生系統(tǒng)能力的目的。一些學(xué)生在課程學(xué)習(xí)結(jié)束后,體會(huì)到了學(xué)以致用的樂趣,還主動(dòng)與教師談?wù)撗芯啃驼撐暮蛻?yīng)用領(lǐng)域編譯器的改進(jìn)設(shè)想。

通過這樣的實(shí)踐,學(xué)生對(duì)文法、語言的實(shí)際意義有了更廣泛的認(rèn)識(shí),而不再局限在程序設(shè)計(jì)語言這個(gè)范圍內(nèi),真正體會(huì)到形式文法和語言只是具體問題的抽象反映,從而更深入地理解了計(jì)算機(jī)學(xué)科問題求解的抽象描述和處理這一實(shí)質(zhì)。

2 結(jié)語

編譯程序的“系統(tǒng)程序”地位造成的陌生感、編譯原理課程自身內(nèi)容的復(fù)雜性,給學(xué)生學(xué)習(xí)該課程帶來了一定的障礙。我們?cè)诰幾g原理課程的教學(xué)實(shí)踐中,針對(duì)該課程學(xué)習(xí)的最大問題——陌生與抽象,以非編譯的應(yīng)用領(lǐng)域問題求解為切入點(diǎn),以學(xué)生對(duì)應(yīng)用領(lǐng)域問題的學(xué)習(xí)興趣提高學(xué)生的學(xué)習(xí)和實(shí)踐參與度,通過引導(dǎo)學(xué)生在“類”的層面嘗試領(lǐng)域“實(shí)例”問題的求解,使學(xué)生體驗(yàn)了計(jì)算機(jī)求解的問題抽象描述與處理方法,達(dá)到了課程的教學(xué)目的。

參考文獻(xiàn):

[1]蔣宗禮,編譯課程教材建設(shè)[J],計(jì)算機(jī)教育,2007(6):74-76

[2]蔣宗禮,“編譯原理”教學(xué)設(shè)計(jì)[J],計(jì)算機(jī)教育,2008(2):26-30

[3]徐旭東,蔣宗禮,論編譯原理在程序設(shè)計(jì)類課程建設(shè)中的重要作用[J],計(jì)算機(jī)教育,2011(9):27-28,32

[4]蔣宗禮,“編譯原理”課程與專業(yè)能力培養(yǎng)[J],計(jì)算機(jī)教育,2009(11):4-6,10

[5]何炎祥,伍春香,現(xiàn)代教育理論指導(dǎo)下的“編譯原理”教學(xué)綜合改革[J],計(jì)算機(jī)教育,2005(3):46-49

(見習(xí)編輯:劉麗麗)

墨竹工卡县| 鸡泽县| 山阴县| 扬中市| 鹤岗市| 乌海市| 苍溪县| 女性| 清河县| 蓝山县| 民乐县| 闽侯县| 广宁县| 眉山市| 清河县| 黑龙江省| 东港市| 桓仁| 苗栗市| 辛集市| 册亨县| 民县| 定兴县| 盈江县| 于都县| 图木舒克市| 罗甸县| 响水县| 黄大仙区| 琼结县| 星子县| 梧州市| 伊宁市| 安丘市| 陕西省| 平乡县| 东光县| 大港区| 铜川市| 威远县| 全椒县|