• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      面向應(yīng)用型人才能力培養(yǎng)的編譯原理教學(xué)內(nèi)容剪裁研究

      2014-12-12 08:58:16吳其林汪世義
      巢湖學(xué)院學(xué)報(bào) 2014年6期
      關(guān)鍵詞:分析程序C語言原理

      吳其林 汪世義

      (巢湖學(xué)院計(jì)算機(jī)與信息工程學(xué)院,安徽 巢湖 238000)

      編譯原理是計(jì)算機(jī)類專業(yè)中一門非常重要的基礎(chǔ)課程,主要講述編譯程序的基本理論、方法與實(shí)現(xiàn)技術(shù),通過這些知識(shí)的學(xué)習(xí),可以讓學(xué)生進(jìn)一步認(rèn)識(shí)程序和算法,提升學(xué)生的邏輯思維能力以及計(jì)算機(jī)問題的求解水平。另外,編譯技術(shù)已經(jīng)廣泛應(yīng)用于編譯程序構(gòu)造之外的其他領(lǐng)域(比如網(wǎng)絡(luò)信息處理、網(wǎng)絡(luò)協(xié)議的分析與實(shí)現(xiàn)、自然語言語言處理等領(lǐng)域),通過這門課程的學(xué)習(xí),對(duì)拓寬學(xué)生的知識(shí)面以及未來的創(chuàng)新研發(fā)生涯將產(chǎn)生有益影響[1-3]。然而,這門課程中所涉及到形式語言與自動(dòng)機(jī)理論等概念較為抽象,難以理解,學(xué)生在學(xué)習(xí)過程存在一定困難,需要投入較大的精力。為此,編譯原理課程的教學(xué)將面臨一個(gè)重要的挑戰(zhàn):如何激發(fā)學(xué)生的學(xué)習(xí)興趣,努力學(xué)好這門課程?根據(jù)筆者的長期教學(xué)經(jīng)驗(yàn),在正確的教學(xué)目標(biāo)下選擇適當(dāng)?shù)慕虒W(xué)內(nèi)容將是化解這一挑戰(zhàn)的非常重要的一環(huán)。

      1 理論教學(xué)內(nèi)容剪裁

      國內(nèi)外關(guān)于編譯原理課程的教學(xué)已有幾十年了,一些國外知名院校(比如麻省理工學(xué)院、加州大學(xué)伯克利分校以及佐治亞理工學(xué)院等)和國內(nèi)重點(diǎn)大學(xué)(比如武漢大學(xué)、中國科學(xué)技術(shù)大學(xué)以及清華大學(xué)等)都在編譯原理的教學(xué)內(nèi)容、教學(xué)方式以及教學(xué)手段等方面積累了寶貴的教學(xué)經(jīng)驗(yàn),值得我們借鑒與學(xué)習(xí)。顯然,對(duì)于應(yīng)用型普通本科院校而言,我們不能照搬這些重點(diǎn)大學(xué)和知名院校的教學(xué)內(nèi)容和方法,需要根據(jù)自身的辦學(xué)特點(diǎn)和學(xué)生水平,對(duì)編譯原理的教學(xué)內(nèi)容做適當(dāng)?shù)募舨?,以收獲較好的教學(xué)效果。

      根據(jù)筆者的教學(xué)心得,以及應(yīng)用型辦學(xué)特點(diǎn)和學(xué)生的基本素養(yǎng),教學(xué)內(nèi)容的選取應(yīng)強(qiáng)調(diào)對(duì)編譯原理和技術(shù)的宏觀理解及全局把握,而不是把學(xué)生的注意力集中到一些細(xì)節(jié)的算法上,在講述各章理論的同時(shí)使用一些C語言小程序作為實(shí)例,努力將一些實(shí)際的問題抽象出來,鼓勵(lì)學(xué)生去解決實(shí)際的應(yīng)用問題。依據(jù)筆者教學(xué)經(jīng)驗(yàn),對(duì)于應(yīng)用型普通本科高校,在課程內(nèi)容講解時(shí),可以直接從詞法分析開始逐步按照編譯器的各個(gè)階段講解,而不需要首先對(duì)形式語言和自動(dòng)機(jī)理論加以詳述。結(jié)合編譯器的各個(gè)階段,現(xiàn)對(duì)教學(xué)內(nèi)容裁剪如下:

      1.1 詞法分析

      該內(nèi)容要強(qiáng)調(diào)有限自動(dòng)機(jī)具有識(shí)別功能,它為詞法分析程序的構(gòu)造提供一種特殊的方法與工具。并且要以正規(guī)式、正規(guī)文法與有限自動(dòng)機(jī)三者之間的相互轉(zhuǎn)換,以及有限自動(dòng)機(jī)的最小化為講解主線。同時(shí)要運(yùn)用C語言寫的一個(gè)簡(jiǎn)單語言的詞法分析程序,介紹詞法分析器的生成過程,以便將抽象的自動(dòng)機(jī)理論應(yīng)用到實(shí)際問題的求解中去。

      1.2 語法分析

      該內(nèi)容要強(qiáng)調(diào)語法分析可以分為自下而上和自上而下兩種分析方法,以及每種分析方法所要面臨的問題與所適用的文法環(huán)境。講解時(shí),需要重點(diǎn)講解 LL(1)和 LR(0)兩種具體的分析方法,而與算法優(yōu)先分析有關(guān)的算法則不需要講解,因?yàn)榫幾g器的語法分析已不再使用這種方法。對(duì)于LL(1),要重點(diǎn)講述預(yù)測(cè)分析程序的構(gòu)造與實(shí)現(xiàn)過程,避免過多地將學(xué)生的集中力分散到消除遞歸、消除回溯以及求解First集和Fellow集的具體算法上。同時(shí)要以一個(gè)C語言小程序的語法分析來講解預(yù)測(cè)分析程序的實(shí)現(xiàn)過程,從而增強(qiáng)學(xué)生的直觀感,讓學(xué)生充分認(rèn)識(shí)到編譯原理的應(yīng)用性特點(diǎn)。LR分析方法是一種高效的自下而上的語法分析技術(shù),它能適用于一大類上下文無關(guān)文法的分析,可以進(jìn)一步分為LR(0)、SLR、規(guī)范LR和LALR四種方法。然而,LR分析表的生成算法較為復(fù)雜,講解時(shí)需要重點(diǎn)講述LR實(shí)現(xiàn)的關(guān)鍵問題,即根據(jù)“歷史”、“展望”以及“現(xiàn)實(shí)”來確定棧頂符號(hào)是否構(gòu)成句柄,并且以LR(0)作為講解的主要內(nèi)容,并且也要以一個(gè)C語言小程序的語法分析來講解其分析程序的實(shí)現(xiàn)過程。

      1.3 語義分析

      目前流行的語義處理方法是屬性文法和語法制導(dǎo)翻譯,通過對(duì)此內(nèi)容的學(xué)習(xí)會(huì)讓學(xué)生對(duì)語義分析程序有更多的了解,這在軟件工程中是很有好處的。然而這部分內(nèi)容較為抽象,難以理解。講解時(shí),首先對(duì)屬性文法、語義規(guī)則與翻譯模式等概念加以簡(jiǎn)單介紹,然后將重心放在如何將這兩個(gè)技術(shù)和方法應(yīng)用到具體的語義分析中去,努力將抽象的東西具體化,以便于學(xué)生的理解與應(yīng)用。結(jié)合C語言程序,重點(diǎn)講解類型檢查、控制語句與賦值語句的翻譯過程,因?yàn)檫@三者在C語言程序設(shè)計(jì)中占據(jù)重要位置。

      1.4 運(yùn)行時(shí)存儲(chǔ)空間的組織

      在使用C語言這樣比較低級(jí)的語言時(shí),掌握這部分內(nèi)容對(duì)程序的編寫和查錯(cuò)都很有幫助。具體應(yīng)該講解局部存儲(chǔ)分配策略,以及靜態(tài)分配、棧式分配和堆式分配等三種全局存儲(chǔ)分配策略,非局部名字的訪問和各種參數(shù)傳遞方式的實(shí)現(xiàn)。

      1.5 代碼優(yōu)化

      用實(shí)例來重點(diǎn)講解局部?jī)?yōu)化和循環(huán)優(yōu)化(避免講解全局優(yōu)化,因?yàn)檫@類優(yōu)化較為復(fù)雜,其實(shí)現(xiàn)代價(jià)較高),讓學(xué)生明白編譯器能完成哪些優(yōu)化,而不要給學(xué)生介紹各種優(yōu)化算法。這對(duì)編程有好處,例如,在可讀性好的源代碼和優(yōu)化的源代碼兩者之間做選擇時(shí),若知道哪些優(yōu)化可以由優(yōu)化編譯完成,則寧可選擇可讀性好的代碼。

      1.6 代碼生成

      代碼生成器是編譯程序設(shè)計(jì)的最后一步,其設(shè)計(jì)要依賴于目標(biāo)語言和操作系統(tǒng),可以選擇一種采用簡(jiǎn)單的寄存器分配策略的代碼生成算法加以介紹,讓學(xué)生對(duì)代碼生成作一簡(jiǎn)單了解。

      2 實(shí)驗(yàn)教學(xué)內(nèi)容剪裁

      編譯原理內(nèi)容抽象、不易理解,其實(shí)驗(yàn)是將理論知識(shí)轉(zhuǎn)化成具體實(shí)現(xiàn)的重要手段,對(duì)培養(yǎng)學(xué)生深入理解編譯程序各個(gè)階段任務(wù),同時(shí)也對(duì)培養(yǎng)學(xué)生的計(jì)算思維、算法設(shè)計(jì)分析、程序設(shè)計(jì)等能力具有舉足輕重的作用。國內(nèi)外各個(gè)高校都非常重視編譯原理的實(shí)驗(yàn)教學(xué)[4],如表1所示。顯然,以上這些實(shí)驗(yàn)內(nèi)容難度系數(shù)都較大,我們不能照搬這些大學(xué)的實(shí)驗(yàn)內(nèi)容,我們需要依據(jù)應(yīng)用型辦學(xué)的特點(diǎn),根據(jù)自己學(xué)生的掌握的情況對(duì)實(shí)驗(yàn)內(nèi)容進(jìn)行適當(dāng)?shù)牟眉?,主要目的是通過該課程的學(xué)習(xí),培養(yǎng)學(xué)生掌握編譯程序各個(gè)階段的任務(wù)及其實(shí)現(xiàn),熟悉編譯程序的構(gòu)造過程;同時(shí),可以把該門課程中所涉及到的理論和技術(shù)能夠靈活加以運(yùn)用,以解決實(shí)際中的應(yīng)用性問題。

      為此,我們根據(jù)其他高校的情況和本專業(yè)學(xué)生的特點(diǎn),設(shè)計(jì)了應(yīng)用型實(shí)驗(yàn)教學(xué)內(nèi)容,如表2所示。表2所示的5個(gè)實(shí)驗(yàn)中,第1-3個(gè)實(shí)驗(yàn)屬于基礎(chǔ)性的實(shí)驗(yàn),主要是為了讓學(xué)生掌握編譯程序構(gòu)造的各個(gè)階段及其實(shí)現(xiàn)。需要注意的是,我們并沒有設(shè)計(jì)語義分析實(shí)驗(yàn)內(nèi)容,因?yàn)長R分析表的構(gòu)造較為復(fù)雜,根據(jù)長期的教學(xué)經(jīng)驗(yàn),學(xué)生對(duì)語義分析實(shí)驗(yàn)完成的不夠理想,沒有收到預(yù)期的實(shí)驗(yàn)效果。然而,通過前面1-3個(gè)實(shí)驗(yàn),學(xué)生并不能從整體上很好地掌握編譯器的構(gòu)造。為此,我們又設(shè)計(jì)了第4個(gè)綜合實(shí)驗(yàn),這樣既可以解決前面所提到的缺陷,又能減少從頭構(gòu)造整個(gè)編譯器的所帶來的難度(當(dāng)然比第1-3個(gè)實(shí)驗(yàn)難度要大)。第1-4個(gè)實(shí)驗(yàn)主要是針對(duì)編譯程序本身的,那么如何在實(shí)際問題中應(yīng)用相關(guān)的編譯原理和技術(shù),這是學(xué)生的共性和典型問題,這也是第5個(gè)創(chuàng)新性實(shí)驗(yàn)所需要解決的。通過一個(gè)實(shí)際項(xiàng)目的開發(fā)鍛煉,可以讓學(xué)生積累編程和解決實(shí)際問題的經(jīng)驗(yàn),切實(shí)提高學(xué)生實(shí)踐動(dòng)手能力、解決問題的能力和項(xiàng)目開發(fā)能力,以培養(yǎng)出適應(yīng)社會(huì)需求的應(yīng)用型人才。

      表1 國內(nèi)外高校編譯原理實(shí)驗(yàn)安排情況

      表2 剪裁后的實(shí)驗(yàn)內(nèi)容安排情況

      3 教學(xué)內(nèi)容裁剪成效

      為了評(píng)價(jià)教學(xué)內(nèi)容裁剪后的成效,我們將裁剪后的學(xué)生網(wǎng)上質(zhì)量評(píng)價(jià)與裁剪前進(jìn)行了對(duì)比,并從興趣激發(fā)、課堂氣氛、聯(lián)系實(shí)際、能力培養(yǎng)、理解程度、重點(diǎn)突出、條理清晰、內(nèi)容充實(shí)、創(chuàng)新培養(yǎng)等方面進(jìn)行統(tǒng)計(jì)與對(duì)比,其結(jié)果如表3所示。通過表3可以看出,裁剪之后的教學(xué)效果明顯好于之前的,特別是在興趣激發(fā)、聯(lián)系實(shí)際和創(chuàng)新培養(yǎng)等方面表現(xiàn)尤為突出。裁剪之后的教學(xué)效果平均滿意程度為89.2%,而之前的僅為35.4%。

      當(dāng)然,在內(nèi)容裁剪之后仍然存在一些問題,主要表現(xiàn)在以下幾個(gè)方面:一是學(xué)生對(duì)屬性文法、語法制導(dǎo)翻譯和LR語義分析等內(nèi)容上理解的還不夠好,對(duì)此,我們還需要加強(qiáng)具體實(shí)例問題分析與講解,以便學(xué)生對(duì)這些內(nèi)容的消化理解。二是學(xué)生的中等以上規(guī)模的編程與調(diào)試能力還有所欠缺,在項(xiàng)目開發(fā)實(shí)踐方面表現(xiàn)的還不夠理想,對(duì)此,我們還需要聯(lián)合其他專業(yè)課程(如高級(jí)語言程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等),加強(qiáng)學(xué)生的編程與項(xiàng)目開發(fā)實(shí)踐能力的培養(yǎng)。

      4 結(jié)語

      編譯原理課程在計(jì)算機(jī)類課程體系中占據(jù)著重要位置,對(duì)提升學(xué)生的邏輯思維能力以及計(jì)算機(jī)問題的求解水平具有不可或缺的作用。然而,對(duì)于應(yīng)用型普通本科院校,應(yīng)依據(jù)應(yīng)用型辦學(xué)特點(diǎn)和學(xué)生的素質(zhì)水平,對(duì)編譯原理的教學(xué)內(nèi)容進(jìn)行適當(dāng)?shù)牟眉?,而不能照搬其他重點(diǎn)大學(xué)的做法。根據(jù)長期的教學(xué)經(jīng)驗(yàn)和所取得的教學(xué)效果,對(duì)編譯原理的教學(xué)內(nèi)容分別從理論教學(xué)和實(shí)驗(yàn)教學(xué)部分進(jìn)行適當(dāng)?shù)牟眉?,力求將抽象的原理轉(zhuǎn)化具體的實(shí)現(xiàn)和應(yīng)用,讓學(xué)生充滿學(xué)習(xí)興趣,努力學(xué)好這門課程。

      表3 教學(xué)內(nèi)容裁剪成效對(duì)比

      [1]Alfred V.Aho,Monica S.Lam,Ravi Sethi,Jeffrey D.Ullman.Compilers:principle,techniques and tools (2nd Edition)[M].America:Addison Wesley,2007.

      [2]侯麗敏.《編譯原理》課程教學(xué)改革探索[J].電腦知識(shí)與技術(shù),2013,(7):1586-1590.

      [3]何炎祥,伍春香.計(jì)算機(jī)專業(yè)不需要開設(shè)編譯原理課程嗎?[J].計(jì)算機(jī)教育,2009,(4):61-63.

      [4]田玲,余盛季,王曉斌,等.《編譯原理》實(shí)驗(yàn)教學(xué)改革及探索[J].實(shí)驗(yàn)科學(xué)與技術(shù),2013,(6):297-300.

      [5]王曉娟,譚建龍,劉金剛,等.基于自動(dòng)機(jī)理論的 PDF 文本內(nèi)容抽取[J].計(jì)算機(jī)應(yīng)用,2012,(9):2491-2495.

      猜你喜歡
      分析程序C語言原理
      管控經(jīng)營風(fēng)險(xiǎn),以分析程序提升企業(yè)財(cái)務(wù)報(bào)表審計(jì)效能
      中國商人(2022年9期)2022-09-02 08:30:42
      了解咳嗽祛痰原理,有效維護(hù)健康
      基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
      平均場(chǎng)正倒向隨機(jī)控制系統(tǒng)的最大值原理
      基于C語言的計(jì)算機(jī)軟件編程
      電子制作(2018年16期)2018-09-26 03:27:08
      化學(xué)反應(yīng)原理全解讀
      高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
      通信原理教學(xué)改革探索
      基于小波包變換的樂音時(shí)—頻綜合分析程序的開發(fā)
      音樂探索(2015年1期)2015-04-27 01:01:52
      論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
      米林县| 奈曼旗| 乳山市| 甘洛县| 蓬溪县| 阳信县| 轮台县| 婺源县| 邢台市| 开化县| 西乌| 潮安县| 新巴尔虎左旗| 嵩明县| 博乐市| 永康市| 东兰县| 武山县| 曲周县| 仙游县| 榕江县| 紫阳县| 晋城| 上高县| 泸州市| 肇庆市| 会理县| 白山市| 东台市| 丰宁| 邵阳市| 廊坊市| 西昌市| 蓝山县| 四会市| 桃江县| 思南县| 辛集市| 阿图什市| 轮台县| 桐城市|