999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于領域應用的編譯原理教學探索

2013-12-31 00:00:00伍春香
計算機教育 2013年18期

摘要:編譯原理課程被公認為本科計算機專業教學的難點。文章結合教學實踐,介紹基于領域應用的編譯原理課程研究型教學方法:以問題求解為切入點,用各種應用領域問題激發學生的學習興趣,提高學生學習和實踐的參與度,培養學生在“類”的層面對待領域“實例”問題的求解,幫助學生深入理解計算機學科問題求解抽象描述和處理的實質。

關鍵詞:編譯原理;教學實踐;學習興趣;應用領域

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

中圖分類號:G642

0 引言

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

為打破這種尷尬局面,解除學生的學習心理障礙,我們引導學生探索編譯的原理、方法和技術在各應用領域中的使用,并以“應用領域編譯器”的構建作為課程實踐內容。這些做法,既改變了編譯的“抽象”印象,激發學生學習興趣,又讓學生在具體應用問題的求解中,從系統的層面重新認識此前程序設計、數據結構與算法等課程介紹的程序、算法,在實踐中體會各種概念、原理和技術的實質,有助于學生深刻體驗計算機問題求解的內涵,建立計算機系統觀。

1 基于領域應用的研究性教學實踐

編譯原理作為本科生課程,其主要目標是希望學生掌握編譯原理中的基本概念、理論和方法,在系統級上再認識程序和算法,提升學生的計算機問題求解的水平,增強其系統能力,體驗實現自動計算的樂趣。

如何幫助學生克服對編譯原理課程的恐懼,激發學生的學習興趣,達到課程的教學目的,是任課教師需要解決的重要問題。

研究表明:正情緒(如興趣)有利于智力操作,負情緒(如痛苦)不利于智力操作。為提高學生學習編譯原理的“正情緒”,我們在實踐中逐步摸索出了基于領域應用的編譯原理課程研究型教學方法,大大減輕了學生對編譯課程的畏懼感,提高了學習興趣,改善了教學效果。

1.1 以領域應用為導向,激發學習興趣

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

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

實際上,編譯原理課程講述的是通用的問題求解方法,是針對各個具體應用領域中問題共性的求解方法,是從“類”的角度出發的計算方法,一旦掌握,可以應用于各領域具體問題的“實例”問題求解,效率更高,方法更通用。

現實中,很多應用領域都在使用編譯的原理、技術和方法。例如,從程序設計語言實現的角度得到的詞法分析、語法分析、語義分析的方法,還有中問代碼生成、目標代碼生成的思想,在自然語言處理領域有很好的應用實例;程序變換的思想在軟件自動生成方面得到體現;網絡環境下的搜索引擎也用到編譯的原理和技術。學生受限于已掌握的知識,缺少實際應用的經驗,誤以為編譯原理課程介紹的內容就只是用于作為系統程序的編譯程序的構建,畏懼心理加上缺乏興趣,使得這門課程的學習難度無形中加大。

在課程的開始階段,我們讓學生選擇一個自己感興趣的應用領域。隨著課程的進行,引導學生分析應用領域中的問題,尋找其與編譯問題的相似性,發現二者的聯系,思考編譯中的原理、方法和技術如何與這些應用領域中問題求解方法相結合。當面對自己感興趣的應用領域時,學生的學習動力就不可估量了。我們再引導學生將這些應用領域問題的求解轉換成“類”的問題描述,思考這些“類問題”如何用課堂所學的編譯方法予以求解。

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

在探索了編譯理論和技術在不同領域的可能應用后,我們又指導學生將心得撰寫成研究型小論文。雖然大多數論文還略顯幼稚,但論文的撰寫過程確實是對研究型學習的再一次總結和升華。

當學生們看到編譯的知識在如此眾多的非編譯領域同樣有著大量的用途時,他們不再覺得編譯原理課程的內容與自己未來的學習和工作無關,反而希望能更好地學習和理解編譯原理課程介紹的原理、方法和技術,以便為將來的發展打好基礎。

在興趣的驅使下,編譯原理課程的學習不再枯燥晦澀,即使面對形式化描述的抽象內容,學生也不再畏懼;同時,編譯原理課程的教學目的也得以實現。

1.2 構建應用領域編譯器,提高實習參與度

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

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

我們除了在課堂教學中引導學生探究編譯原理和技術在非編譯領域的應用,習作研究型小論文外,還在課程實習環節采用構建“應用領域編譯器”作為實習題目,以提高學生的實習興趣和參與度。

編譯原理課程的教學目的是培養學生在系統級別上重新認識程序和算法。我們采用循序漸進的引導,培養學生從“類”的層面逐步完成應用領域“實例”問題的認識、分析、設計和系統實現。

1)以能力確定選題。

并非所有的學生都適合選擇程序設計語言以外的應用領域問題作為實習題目。我們讓學生根據自己的能力選擇合適的選題。

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

對于學習能力較強的學生,我們建議其選擇一個自己感興趣的應用領域問題,采用編譯程序模型化計算的思想,實現一個應用領域編譯器。至于具體的實現過程,則隨著課程的進度,逐步引導學生從“問題類求解”的層面定義問題,并完成分析、設計和系統實現。

2)漸進式構建引導。

隨著課堂內容的進行,我們采用漸進式構建的方法,引導學生逐步實現應用領域編譯器,其實施過程如圖1所示。

(1)定義領域對象。確定應用領域后,引導學生分析領域問題處理對象的構成特點,并據此構造領域問題處理對象的生成文法。

(2)確定領域的“詞”。引導學生分析和認識應用領域中的“詞”和“詞法分析”的工作內容。在應用領域中,“詞”是構成問題對象的最小處理單位。明白了“詞”的含義,“詞法分析”就是識別出這些最基本的單位,其構建完全和程序設計語言詞法分析程序的設計與實現一樣。

(3)確定領域“語法成分”。引導學生分析和識別應用領域的“語法成分”和“語法分析”工作內容。應用領域中的“語法成分”是被處理對象的不同層次的構成單位,“語法分析”就是分析領域被處理對象的構成,可以選用編譯原理課程中的一種語法分析方法予以實現。

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

(5)確定領域“目標代碼”。其內容也依賴于領域中的具體應用。

當實習全部完成后,學生體驗到了從詞法分析、語法分析、語義分析和中問代碼生成、目標代碼生成的所有環節,這實質上完成了一個應用領域編譯器,實踐過程覆蓋了課程教學目標要求學生掌握的全部內容。

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

在建構主義學習理論指導下,我們以激發學生的學習興趣為切人點,使課程學習與具體應用領域相結合,讓學生體會到編譯原理和技術的實用性,大大提高其學習參與度;同時注重引導學生對問題求解基本思想、方法的探討,從確定領域問題,到詞法分析、語法分析、語義分析、目標代碼生成的每一步求解思路分析,到應用具體編譯技術實現求解算法,讓學生明白怎樣從“實例”問題的計算求解過渡到問題“類”計算,鍛煉了學生抽象問題描述和解決問題的能力:而整個系統的實現涉及不同層次的抽象和問題處理,達到了培養學生系統能力的目的。一些學生在課程學習結束后,體會到了學以致用的樂趣,還主動與教師談論研究型論文和應用領域編譯器的改進設想。

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

2 結語

編譯程序的“系統程序”地位造成的陌生感、編譯原理課程自身內容的復雜性,給學生學習該課程帶來了一定的障礙。我們在編譯原理課程的教學實踐中,針對該課程學習的最大問題——陌生與抽象,以非編譯的應用領域問題求解為切入點,以學生對應用領域問題的學習興趣提高學生的學習和實踐參與度,通過引導學生在“類”的層面嘗試領域“實例”問題的求解,使學生體驗了計算機求解的問題抽象描述與處理方法,達到了課程的教學目的。

參考文獻:

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

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

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

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

[5]何炎祥,伍春香,現代教育理論指導下的“編譯原理”教學綜合改革[J],計算機教育,2005(3):46-49

(見習編輯:劉麗麗)

主站蜘蛛池模板: 欧美成人精品欧美一级乱黄| 久久久久亚洲AV成人网站软件| 农村乱人伦一区二区| 一级一级一片免费| 67194亚洲无码| 五月天久久综合国产一区二区| 国产欧美日韩精品综合在线| 精品成人免费自拍视频| 波多野结衣在线se| 国产手机在线观看| 韩国自拍偷自拍亚洲精品| 全部免费特黄特色大片视频| 国产主播福利在线观看| 五月天香蕉视频国产亚| 国产一区三区二区中文在线| 日韩在线第三页| 久久一日本道色综合久久| 亚洲精品成人片在线播放| 日韩成人免费网站| 中文字幕一区二区视频| 永久在线精品免费视频观看| 三级视频中文字幕| 黄色片中文字幕| 亚洲成A人V欧美综合天堂| 国产精品主播| 四虎在线观看视频高清无码 | 国产精品人人做人人爽人人添| 精品国产Ⅴ无码大片在线观看81| 狠狠色丁香婷婷综合| 成人国内精品久久久久影院| 日韩亚洲综合在线| 亚洲精品中文字幕午夜| 久久精品一品道久久精品| 亚洲婷婷在线视频| 亚洲日韩国产精品综合在线观看| 久久久久亚洲精品成人网| 另类欧美日韩| 人人91人人澡人人妻人人爽| 亚洲国产欧洲精品路线久久| 成年网址网站在线观看| 精品91视频| 欧美影院久久| 日本不卡免费高清视频| 中文字幕亚洲综久久2021| 国产美女主播一级成人毛片| 亚洲AV永久无码精品古装片| 欧美一道本| 一级毛片基地| 亚洲成人77777| 一级香蕉视频在线观看| 日韩精品久久无码中文字幕色欲| 67194亚洲无码| 亚洲天堂啪啪| 午夜视频免费试看| 麻豆精品在线播放| 丰满人妻久久中文字幕| 在线国产91| 亚洲综合在线最大成人| 亚洲AV无码久久精品色欲| 国产精品视频白浆免费视频| 日本91在线| 欧美精品v日韩精品v国产精品| 成人夜夜嗨| 国产成人福利在线视老湿机| 亚洲久悠悠色悠在线播放| 欧美精品v欧洲精品| 91青青视频| 久久先锋资源| 精品91在线| 欧美伦理一区| 高清不卡一区二区三区香蕉| 老司机久久精品视频| 2022精品国偷自产免费观看| 亚洲精品国产综合99| 尤物精品视频一区二区三区| 欧美有码在线观看| 欧美亚洲一二三区| 激情综合图区| 国产成人8x视频一区二区| 国产午夜精品一区二区三区软件| 国产精品19p| 国产探花在线视频|