![職業(yè)教育論文-編譯原理課程的調(diào)態(tài)與轉(zhuǎn)型.doc_第1頁](http://file.renrendoc.com/FileRoot1/2013-12/16/e9460e2a-0991-42ea-b126-29fa82fbe3ee/e9460e2a-0991-42ea-b126-29fa82fbe3ee1.gif)
![職業(yè)教育論文-編譯原理課程的調(diào)態(tài)與轉(zhuǎn)型.doc_第2頁](http://file.renrendoc.com/FileRoot1/2013-12/16/e9460e2a-0991-42ea-b126-29fa82fbe3ee/e9460e2a-0991-42ea-b126-29fa82fbe3ee2.gif)
![職業(yè)教育論文-編譯原理課程的調(diào)態(tài)與轉(zhuǎn)型.doc_第3頁](http://file.renrendoc.com/FileRoot1/2013-12/16/e9460e2a-0991-42ea-b126-29fa82fbe3ee/e9460e2a-0991-42ea-b126-29fa82fbe3ee3.gif)
![職業(yè)教育論文-編譯原理課程的調(diào)態(tài)與轉(zhuǎn)型.doc_第4頁](http://file.renrendoc.com/FileRoot1/2013-12/16/e9460e2a-0991-42ea-b126-29fa82fbe3ee/e9460e2a-0991-42ea-b126-29fa82fbe3ee4.gif)
![職業(yè)教育論文-編譯原理課程的調(diào)態(tài)與轉(zhuǎn)型.doc_第5頁](http://file.renrendoc.com/FileRoot1/2013-12/16/e9460e2a-0991-42ea-b126-29fa82fbe3ee/e9460e2a-0991-42ea-b126-29fa82fbe3ee5.gif)
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
職業(yè)教育論文-編譯原理課程的調(diào)態(tài)與轉(zhuǎn)型摘要:本文探討了在計算機(jī)軟件技術(shù)快速發(fā)展的情況下,高校計算機(jī)類專業(yè)編譯原理課程的改革問題。提出了編譯原理課程教學(xué)模型從過程式向?qū)ο笫降霓D(zhuǎn)變、編譯程序的面向?qū)ο髽?gòu)造(包括編譯算法的描述)等問題,以及由此帶來的教學(xué)內(nèi)容的調(diào)整和課程實(shí)驗(yàn)的設(shè)計問題。關(guān)鍵詞:編譯程序;教學(xué)改革;對象式程序設(shè)計;Java1引言編譯原理課程是高校計算機(jī)類專業(yè)的重要基礎(chǔ)和骨干課程。編譯原理對計算機(jī)專業(yè)的學(xué)生的重要性與高等數(shù)學(xué)對理科學(xué)生的重要性幾乎可以相提并論。同時,由于這門課程涉及其他多門課程的知識,使得它成為大學(xué)階段中最難學(xué)的課程之一。從表面上看,編譯程序是將高級語言源程序翻譯成低級語言程序,但編譯程序構(gòu)造的基本原理和技術(shù)也廣泛應(yīng)用于一般軟件的設(shè)計和實(shí)現(xiàn),其中的設(shè)計思想、算法、思維方式和技術(shù)都可能會對學(xué)生今后的職業(yè)發(fā)展產(chǎn)生比較大的影響。當(dāng)今,程序設(shè)計已經(jīng)基本上從傳統(tǒng)的過程式轉(zhuǎn)向?qū)ο笫?并且正在從對象式轉(zhuǎn)向組件型。這其實(shí)是程序設(shè)計范型的變遷,是在計算機(jī)技術(shù)背景下認(rèn)識世界的觀點(diǎn)的變化:過程式將完成事務(wù)看成是一系列的步驟,而對象式卻將世界看成是由一系列對象組成的,這些對象之間交互合作完成特定的事務(wù)。從過程式到對象式,有著質(zhì)的變化,而非一般的修改和完善,由此帶來了語言(算法描述工具)的變化。編程語言影響思維,面向?qū)ο蟮乃季S方法又促進(jìn)了編程語言的發(fā)展。目前,程序設(shè)計的一些后繼課程,如數(shù)據(jù)結(jié)構(gòu)等都進(jìn)行了同步跟進(jìn),出現(xiàn)了諸如用C+或Java描述的數(shù)據(jù)結(jié)構(gòu)教材。但編譯原理課程卻沒有及時跟進(jìn),上述改變基本上沒有反映到編譯原理課程中。這門課程近20年來基本上沒有大的變化,教學(xué)內(nèi)容仍然是基于過程式語言展開的,編譯算法和模型描述是用PASCAL語言或者C語言。雖然個別教材加入了少量關(guān)于對象式語言編譯技術(shù)的內(nèi)容,那也是稍加點(diǎn)綴而已,作用不大。這就造成了一種奇怪的現(xiàn)象:對象式語言已經(jīng)成了高校計算機(jī)教學(xué)的主流語言,社會上大量使用的也是對象式語言,而我們的編譯原理教學(xué)仍然沿襲舊的一套。這種“狀態(tài)”嚴(yán)重地脫離了計算機(jī)技術(shù)的發(fā)展和社會的實(shí)際需要,因此需要進(jìn)行“調(diào)態(tài)”,其根本做法是“轉(zhuǎn)型”,即將本課程的討論對象從過程式語言轉(zhuǎn)到對象式語言。國外近年關(guān)于編譯原理方面的新教材已經(jīng)有了重要改變,不再連篇累牘地討論那些已經(jīng)過時的內(nèi)容,增加了許多新的內(nèi)容。其中一個重大改變是出現(xiàn)了用對象式語言描述編譯算法和教學(xué)模型的編譯原理教材,如:用Java語言描述的編譯原理教材,且其教學(xué)模型為MiniJava。這種改變也涉及到課程上機(jī)實(shí)踐。眾所周知,編譯原理課程的學(xué)術(shù)性和實(shí)踐性都很強(qiáng):學(xué)術(shù)性是這門課程的生命所在,實(shí)踐性是這門課程的活力所在。因而本課程的上機(jī)實(shí)踐也要作同步調(diào)整。2課程內(nèi)容圍繞對象式語言展開研究程序設(shè)計語言的語法描述需要有文法理論的支持,老教材中文法、詞法分析和語法分析部分內(nèi)容基本上不需要作什么變動。詞法分析主要依賴有窮狀態(tài)自動機(jī)理論,語法分析主要講述LL方法和LR方法,其他方法略做介紹即可,無需展開討論。LL方法和LR方法含蓋了許多分析技術(shù),理論性和應(yīng)用性都很強(qiáng),完全可以代表主流技術(shù)。重要的就是研究對象和教學(xué)模型的改變。首先,研究對象將從過程式程序設(shè)計語言轉(zhuǎn)到對象式程序設(shè)計語言(當(dāng)然還可以兼顧過程式),例如Java、C+等,圍繞實(shí)現(xiàn)這類語言的編譯實(shí)現(xiàn)技術(shù)展開討論。對象式程序設(shè)計語言的要素是封裝、繼承、多態(tài)性,在編譯實(shí)現(xiàn)時都必須仔細(xì)考慮。其次,涉及到對象式程序設(shè)計語言編譯程序教學(xué)的模型選擇問題。目前傳統(tǒng)的教材選擇的教學(xué)模型有PL/0、TiniC等。實(shí)踐證明,圍繞某個模型展開編譯設(shè)計技術(shù)的討論,效果是比較好的。課程研究對象和教學(xué)模型的改變涉及到調(diào)整的章節(jié)主要有語法分析、語義分析、代碼生成、符號表管理、存貯分配等方面。一旦我們討論的模型發(fā)生變化,這些章節(jié)的內(nèi)容就要作很大調(diào)整。如對象式語言的作用域規(guī)則、語言動態(tài)特性、模塊化封裝(類)、類的繼承、多態(tài)性的實(shí)現(xiàn)等,都需要具體的技術(shù)來實(shí)現(xiàn),這些都要反映在教材和教學(xué)中。就課程中關(guān)于代碼生成內(nèi)容來看,目前Java編譯程序生成Java虛擬機(jī)(JVM)代碼,C#生成MSIL虛擬機(jī)代碼。這兩個虛擬機(jī)作為教學(xué)模型來說可能比較復(fù)雜了一些,在教學(xué)中可以選定一個簡單的子集;或者在PL/0虛擬機(jī)上適當(dāng)增加一些指令代碼,以便于代碼生成、存貯分配等部分的講解。實(shí)踐證明,作為教學(xué)模型,在教材上提供一個小型語言的編譯程序供學(xué)生分析和研究,非常有利于加深對基本原理的理解和掌握。這個小型編譯程序可以比較小但應(yīng)該能夠說明一些基本問題,例如傳統(tǒng)的編譯原理課程中選擇PL/0編譯程序作為教學(xué)模型,就收到了比較好的教學(xué)效果。在對象式程序設(shè)計語言編譯原理課程中選擇Object-pl/0或者M(jìn)iniJava作為教學(xué)模型是比較恰當(dāng)?shù)?。前者是在傳統(tǒng)的PL/0語言上增加類,補(bǔ)充封裝、繼承、多態(tài)性之語言成分得到的;后者是對Java語言進(jìn)行適當(dāng)簡化得到的,其主要語法描述如圖1所示。圖1MiniJava語法編譯原理課程可以圍繞此模型展開討論。國外已經(jīng)有這類教材出現(xiàn),并且不少大學(xué)已經(jīng)開始使用。3用對象式語言描述編譯算法和教學(xué)模型本課程中各類編譯算法都應(yīng)該伴隨著教學(xué)模型的變化,改用對象式語言來描述,如用Java語言描述或者用C+語言描述。其中一個重大的變化是教學(xué)模型如MiniJava或Object-pl/0要用對象式語言實(shí)現(xiàn),也就是提出了教學(xué)模型的面向?qū)ο髽?gòu)造問題,這就比較好地將討論對象和描述討論對象的語言統(tǒng)一起來了。國外有的教材就選擇了用Java描述MiniJava編譯程序。編譯程序是一個重要的中大型軟件,傳統(tǒng)的編譯程序大都是用PASCAL、C等語言描述的(參見圖2)。像編譯程序這樣的中大型程序如何用類這個工具來進(jìn)行分解,其實(shí)是對學(xué)生的對象式程序設(shè)計能力的一個重要檢驗(yàn)。學(xué)習(xí)用對象式語言來描述編譯程序,學(xué)生可能會受到一次嚴(yán)格的對象式語言程序設(shè)計訓(xùn)練,編譯程序如何用類這個工具進(jìn)行分解,這些類(對象)如何合作完成編譯任務(wù),都需要較好的對象式程序設(shè)計基礎(chǔ)。圖3是一個程序設(shè)計語言文法的面向?qū)ο蟊硎?。傳統(tǒng)的編譯程序構(gòu)造主要存在如下一些問題:(1)傳統(tǒng)編譯程序試圖通過將編譯程序根據(jù)功能模塊分解,而使整個編譯程序的復(fù)雜性降低。這種方法雖然在一定程度上簡化了編譯過程。但為了處理大型、復(fù)雜且多變的編譯程序,僅僅將它按照功能分解成詞法分析、語法分析、語義處理和代碼生成幾個階段是遠(yuǎn)遠(yuǎn)不夠的。(2)傳統(tǒng)的編譯程序構(gòu)造中,編譯的每個階段依然是大型、復(fù)雜的,且每個階段內(nèi)部依然存在復(fù)雜的聯(lián)系,這對編譯程序的可維護(hù)性沒有實(shí)際上的改變,反而造成維護(hù)困難。(3)雖然傳統(tǒng)的編譯程序構(gòu)造有著豐富的理論基礎(chǔ),也有一些工具諸如Lex、Yacc等,但對一個具體的編譯程序的構(gòu)造仍然要從最基本的描述開始。傳統(tǒng)的編譯程序構(gòu)造的功能分解方法缺乏支持復(fù)用的良好機(jī)制。總之,過程式程序設(shè)計范式存在的問題在編譯程序設(shè)計中廣泛存在。而用對象式程序設(shè)計語言來描述編譯程序,則對象式程序設(shè)計范式帶來的好處基本上都能夠得到。具體主要表現(xiàn)在:(1)編譯程序效率高。由于面向?qū)ο蟮木幾g程序構(gòu)造采用的是語法樹構(gòu)造法,可以得到上下文相關(guān)信息,并根據(jù)上下文進(jìn)行語法樹的優(yōu)化,所以生成的代碼效率高。(2)復(fù)用方便。由于語法類和具體的語法結(jié)構(gòu)一一對應(yīng),所以在復(fù)用語法結(jié)構(gòu)時,可以直接得到能被復(fù)用的語法類,不需要經(jīng)過查找過程。(3)修改方便。由于面向?qū)ο蠓椒ㄖ械姆庋b和多態(tài)等技術(shù)的實(shí)現(xiàn),語義處理方法中所用到的數(shù)據(jù)都是局部數(shù)據(jù),因此要做語義修改時,只要繼承相應(yīng)的語法類,并且重載相應(yīng)的語義處理方法即可,需修改的內(nèi)容較之傳統(tǒng)方法要少。(4)有利于構(gòu)造編譯程序類庫,使得編譯程序的構(gòu)造能夠大量復(fù)用已有的類,這是更高層次上的復(fù)用。4課程實(shí)驗(yàn)的設(shè)計計算機(jī)學(xué)科是一門技術(shù)學(xué)科,它雖然有一定的科學(xué)的成分,但工程技術(shù)的成分更多一些,因此需要加強(qiáng)動手能力的培養(yǎng)。編譯原理課程除了注重它的原理性,還必須注重其實(shí)踐性。學(xué)習(xí)這門課程時,學(xué)生對編譯的理解往往只停留在書本的概念上,而不知道怎樣把編譯理論應(yīng)用到實(shí)際的編譯程序設(shè)計的實(shí)踐中。另外,有些學(xué)校只將教學(xué)內(nèi)容鎖定在文法、詞法分析(有窮狀態(tài)自動機(jī))、語法分析(LL、LR文法)上,以應(yīng)付學(xué)生考研的需要。這些做法使得學(xué)生很難掌握這門課程的精髓。圖2傳統(tǒng)的編譯程序功能分解圖3程序設(shè)計語言文法的面向?qū)ο蟊硎揪幾g系統(tǒng)可能是所有軟件系統(tǒng)中最復(fù)雜的系統(tǒng)之一,通過本課程實(shí)踐環(huán)節(jié)的教學(xué),還可以幫助學(xué)生掌握一些大、中型軟件設(shè)計的技術(shù)和技巧,提高學(xué)生面向?qū)ο筌浖_發(fā)的綜合能力。傳統(tǒng)的編譯原理課程往往要求學(xué)生自己實(shí)現(xiàn)一個詞法分析程序;實(shí)現(xiàn)一個基于遞歸子程序遞歸下降分析程序或基于預(yù)測分析表的語法分析程序;為某虛擬機(jī)(例如PL/0虛擬機(jī))生成代碼;對教學(xué)模型(例如PL/0)進(jìn)行擴(kuò)充,寫出完整的編譯程序等。且在此過程中學(xué)生可以借助詞法分析自動生成程序Lex和語法分析自動生成程序Yacc進(jìn)行有關(guān)實(shí)驗(yàn)。我們要求學(xué)生通過對教學(xué)模型的分析,能夠在機(jī)器上動手實(shí)現(xiàn)一個小的編譯系統(tǒng),以加深對編譯整個過程的一致性、連貫性、整體性的理解。一旦我們的討論對象改變?yōu)閷ο笫秸Z言,則其編譯程序語法和詞法分析的自動生成不能再采用Lex、Yacc這類工具了,需要改用JavaCC(JavaCompilerCompiler)或SableCC等,它們都能生成Java語言代碼;或者使用Jikespg(Jikespasergernerator),它生成C+代碼。我們初步制定了本課程的實(shí)踐環(huán)節(jié),它主要分四個層次:(1)借助JavaCC或SableCC等工具讓學(xué)生自動生成小語言的詞法分析和語法分析程序。這個實(shí)驗(yàn)的目的是教會學(xué)生關(guān)于詞法分析和語法分析的自動生成,同時弄清這些工具生成出來的代碼的程序結(jié)構(gòu),特別是面向?qū)ο蟮念惤Y(jié)構(gòu)。(2)為上面生成的語法樹添加語義動作,完成生成代碼的工作。這個實(shí)驗(yàn)的目的是讓學(xué)生理解如何在抽象語法樹上添加語義動作,理解為虛擬機(jī)生成代碼的知識。(3)擴(kuò)展教學(xué)模型,如MiniJava,為其增加一些語言成分,如有關(guān)語句等,然后為其構(gòu)造完整的編譯程序。這一實(shí)驗(yàn)讓學(xué)生把握編譯的總體,弄清各部分之間的關(guān)系。(4)逐步構(gòu)造面向?qū)ο蟮木幾g程序類庫,使得“編寫”編譯程序逐步走向“組裝”編譯程序。5結(jié)束語對計算機(jī)人才的層次結(jié)構(gòu)、知識、能力與素質(zhì)等方面的要求在很大程度上取決于計算機(jī)市場。我們需要與時俱進(jìn),適時考慮相應(yīng)教學(xué)體系和內(nèi)容的改變。依賴過程范性的編譯原理課程勢必要被依賴對象范性的編譯原理課程所取代,這是軟件技術(shù)發(fā)展和社會實(shí)際應(yīng)用的需要。但建立本課程新的課程信念、課程價值、課程技術(shù)等尚需時日,需要不斷探索和創(chuàng)新。編譯原理課程的改革不僅需要教師付出大量辛勤勞動,及時跟進(jìn)技術(shù)的發(fā)展,還需要好的教材、好的課程實(shí)驗(yàn)設(shè)計。對象式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫州市南浦小學(xué)2022年藝術(shù)節(jié)活動方案范文
- 環(huán)保教育培養(yǎng)下一代綠色生活意識
- 現(xiàn)代教育技術(shù)助力創(chuàng)新教學(xué)方法的推廣
- 現(xiàn)代辦公家具中的穩(wěn)固與美觀并存
- 國慶節(jié)成都漢服活動方案
- 現(xiàn)代遠(yuǎn)程教育在海外的發(fā)展趨勢分析
- 汽車行業(yè)的社交媒體廣告投放策略
- 國慶節(jié)旅游宣傳活動方案
- 溫控技術(shù)在綠色辦公樓宇的革新發(fā)展
- 現(xiàn)代建筑設(shè)計的情感化表達(dá)
- 2024年海南公務(wù)員考試申論試題(A卷)
- 中醫(yī)培訓(xùn)課件:《經(jīng)穴推拿術(shù)》
- 臨床藥師進(jìn)修匯報課件
- 北京市首都師大附中2025屆數(shù)學(xué)高三第一學(xué)期期末達(dá)標(biāo)測試試題含解析
- 專升本-英語高頻詞匯
- 《修辭立其誠》課件+2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修中冊
- excel培訓(xùn)課件教學(xué)
- 2024年貴州省高職(??疲┓诸惪荚囌惺罩新毊厴I(yè)生文化綜合考試語文試題
- 政治丨廣東省2025屆高中畢業(yè)班8月第一次調(diào)研考試廣東一調(diào)政治試卷及答案
- 項(xiàng)目三任務(wù)3:超聲波雷達(dá)的故障診斷與處理(課件)
- 派出所績效考核總結(jié)分析報告
評論
0/150
提交評論