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

“編譯原理”課程的教學研究與探索

2008-12-31 00:00:00李冬梅施海虎
計算機教育 2008年8期

文章編號:1672-5913(2008)08-0103-03

摘要:“編譯原理”課程由于其理論難度及目前本科學生中普遍存在的各種思想誤區,教學效果不理想。本文針對這一現狀,從如何提高學生學習興趣,搞好課堂教學,加強實踐環節等方面入手,提出了相應的對策。

關鍵詞:編譯原理;課堂教學;實踐教學

中圖分類號:G642

文獻標識碼:B

1“編譯原理”課程教學現狀

編譯原理作為計算機專業的一門核心課程,在教學中占據十分重要的地位。但由于其內容具有較強的理論性和實踐性,學生在學習過程中感到內容抽象、算法復雜、難于理解,因此“編譯原理”被普遍看作是計算機本科教學中最難講解、最難學習的課程。總結起來理由如下。

(1) 本課程涉及不少理論知識,如形式語言和自動機理論、語法制導的理論等。這些理論的學習有一定的難度,特別是語法制導定義(或翻譯方案)的設計,因為它本質上是一種事件驅動的程序設計,這對于三、四年級的本科生來說還是較難掌握的。

(2) 本課程包含了很多算法,大的有LL(1)分析算法和各種LR(1)分析算法等,小的有DFA化簡算法、計算開始符號集合和后繼符號集合的算法、各種數據流方程的迭代求解算法。這些算法要比數據結構中接觸的算法復雜得多,學生在學習數據結構的時候,接觸過很多算法,對于不理解的算法可以跟蹤算法的執行過程,而跟蹤編譯程序中的算法則要麻煩得多,想深刻理解算法的思想很困難。

(3) 編譯程序規模大,不可能在一門課的時間內把所有的細節都講清楚,這使學生對編譯程序各邏輯部分之間的接口和一些算法的實現是模糊的。

針對這種情況,如何提高這門課程的教學效果,是一個值得探討的問題。筆者多年來一直從事“編譯原理”課程的教學,對如何改進教學方法和提高教學效果做了一些研究和探索,并取得了良好的效果。

2明確教學目標,提高學生學習興趣

很多學生認為“編譯原理”只能應用在寫程序語言的編譯器上,而他們以后可能不會在編譯器及其相關領域方面鉆研,所以學習興趣不高,其實這是一種誤解。編譯技術是計算機語言發展的支柱,也是計算機科學中發展最迅速、最成熟的一個分支。通過學習編譯程序的構造原理和技術,將有助于深刻理解和正確使用程序設計語言。編譯內容涉及到計算機的組織結構、指令系統以及操作系統,掌握編譯技術有助于加深對整個計算機系統的理解。另外,由于編譯程序作為系統軟件在性能上具有嚴格的要求,這使得它所使用的算法經典、高效,而這些算法、思想和實現技術也可廣泛地應用于一般軟件的設計實現。如正規式和有窮自動機在文本編輯器中的廣泛應用,有窮自動機在字符串查找中的運用,必經節點算法在網絡中的運用,由文法來定義網絡協議等。在教學中,可以鼓勵學生嘗試將編譯程序中的各種算法和技術應用到各個應用領域,從而激發學生的創造性思維,培養學生的創新能力,為今后的學習打下堅實的基礎。

3優化教學內容,搞好課堂教學

由于這門課程理論性強,內容豐富且抽象,具有嚴密的邏輯性,應用其他課程知識比較多,要在有限課時內很好地完成本課程的教學。教師首先必須吃透教學內容、把握課堂教學環節。這就要求教師對教材非常熟悉,掌握編譯原理的主要內容及基本框架,對教材及教學內容作一定的優化。

3.1選取合適的教材

某些“編譯原理”教材并不是完全面向學生的,可能是作為這門學科的大全來編寫的。例如由美國著名計算機科學家編著的“龍書”《Compilers Principles, Techniques and Tools》,中文譯名為《編譯原理》,由機械工業出版社出版,這本書是最經典權威的編譯教材,應該是教師教學的必備參考用書,但如果將其作為授課的教材,對大部分學生來說都不太適合,因為內容過多,難度過大。

筆者總結了多年的教學經驗,編寫了一本《編譯原理》教材,已由人民郵電出版社出版,我們在教學中采用這本教材。結合教材的特點,我們在教學中力求做到以下幾點。

(1) 考慮到學生對C語言較為熟悉,所講授的主要算法、例題和習題均以C語言為背景。

(2) 把編譯原理和編譯技術兩方面有機地結合起來。將“PL/0語言編譯程序”模型的實現過程貫穿于各個章節,這樣使學生在掌握相關的編譯原理之后,通過閱讀理解和擴充此編譯程序,加深對所學內容的理解,使所學內容融會貫通,能夠建立一個較為完整的編譯系統模型。

(3) 對常用分析器的自動生成工具(LEX和YACC)的功能和使用方法做了詳細的介紹,并給出了使用LEX和YACC實現的PL/0語言編譯器的源程序,從而使學生真正掌握如何借助LEX和YACC實現一個編譯器。

3.2抽象內容形象化

編譯系統中的一些概念很抽象,學生無法理解,就只會死記硬背,當然更無興趣可言。在講解的過程中,可以選用學生最熟悉的一些實例,通過類比使抽象的概念更容易被理解。例如,從理論上來說,編譯過程一般包括詞法分析、語法分析、語義分析和中間代碼生成、代碼優化、目標代碼生成這五個階段。學生記住這五個階段并不難,但理解階段劃分的依據有一定的難度。編譯程序的功能是將用高級語言編寫的源程序翻譯成等價的用機器語言或匯編語言表示的目標程序。既然編譯過程是一種語言的翻譯過程,那么它的工作過程就類似于外文的翻譯過程,不同之處僅在于由哪種語言翻譯成另外哪種語言,但其原理是類似的。兩者的翻譯過程對比如表1所示。

例如,我們要將英文句子“I wish you success”翻譯成中文,首先進行詞法分析,根據英語的詞法規則,識別出四個英語單詞,并檢查是否有單詞的拼寫錯誤。其次是語法分析,根據英語的語法規則,對詞法分析后的單詞串進行分析、識別,并做出語法正確性檢查,看其是否能組成一個符合英語語法的句子。再次進行語義分析,即對語法正確的英文句子分析其含義,并用漢語表示出來。然后對譯文進行修飾,根據上下文的關系及漢語語法的相關規則進行綜合考慮,對初步翻譯后的句子進行必要的修飾。最后翻譯成中文,“祝你成功”。學生經常做這種翻譯,對翻譯過程非常熟悉。將它與編譯過程進行類比,既加深了學生的印象,又有助于理解為什么將編譯過程劃分成這幾個階段。

3.3運用實例教學

以課堂討論的方式,結合某種高級語言(如C語言),從其難以掌握、容易出錯的語法難點入手,用編譯原理的理論加以分析。培養學生靈活運用所學理論知識分析問題、解決問題的能力,提高他們思維的活躍性。我們在課堂上和習題中,準備了很多從實際程序的編譯和運行時碰到的問題中抽象出來的例子,供學生用所學的知識去分析、理解,并加以解決。采用這種實例教學方式,使學生明白通過“編譯原理”課程的學習,可以深入理解高級語言的工作原理,做到知其然更知其所以然,從而能夠更準確地運用各種高級程序設計語言。這樣,既能夠對前期課程起到復習鞏固的作用,又能讓學生切實體會到本課程的實際價值,從而有力地激發了學生學習編譯原理和技術的積極性。

例如,在講解詞法分析器掃描源程序時,對源程序采取局部處理的觀點,并不會瞻前顧后。為了讓學生體會這一點,我們可以運用以下實例進行說明。

一個C語言編譯器編譯下面的函數時,報告parse error before ‘else’,這是因為else的前面少了一個分號。

long gcd(p,q)

long p,q;

{

if (p%q == 0)

/* then part */

return q

else

/* else part */

return gcd(q, p%q);

}

但是如果第一個注釋

/* then part */

誤寫成

/* then part

那么該編譯器發現不了遺漏分號的錯誤。這是為什么?

因為此時編譯器認為

/* then part

return q

else

/* else part */

是程序的注釋,因此它不可能再發現else 前面的語法錯誤。

3.4靈活運用多種形象化的教學手段

“編譯原理”課程具有很多概念和定理,再加上大量復雜的算法,抽象程度很高,因此要想獲得良好的教學效果,必須借助形象化教學手段,使抽象的理論具體化。為此我們編制了一些多媒體課件,把抽象概念和算法生動形象地演示出來。同時向學生推薦網上優秀的“編譯原理”課程教學網站、電子書、算法等資源,拓寬學生視野。

4加強實踐教學環節,激發學生主體意識

“編譯原理”是一門對實踐要求較高的課程。本課程的課程設計,要充分考慮編譯理論與實際應用的結合,突出開創性和實用性。如:完整編譯器的分析設計,利用有窮自動機設計字符串查找程序,與軟件工程、數據庫的結合等。在這樣一些小型系統的開發中,可以引入軟件工程理論,注入結構化程序設計思想,將整個系統模塊化,合理組織不同能力層次的學生分組開發各個功能模塊,讓所有學生共同參與,協作完成。鼓勵學生間相互探討,共同提高。對學生的設計,要特別要求嚴格控制系統開發各環節的實現,以培養良好的嚴謹的軟件開發風格。這樣既使學生鞏固了所學的理論知識,并融會貫通,又培養了學生理論聯系實際和綜合運用各門課程理論的能力,為以后的實際工作打下堅實的基礎。

參考文獻

[1] 李冬梅,施海虎. 編譯原理[M]. 北京:人民郵電出版社,2006.

[2] 陳意云,張昱,鄭啟龍. “編譯原理”的教學與實際相結合的探討[J]. 教育與現代化,2005,(12):32-36.

[3] 張昱,陳意云,鄭啟龍. 編譯原理課程的教學方法和教材建設[J]. 中國大學教學,2005,(7):61-62.

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

[5] 胡作進,胡林生. “編譯原理”課程教學改革芻議[J]. 安徽廣播電視大學學報,2006,(4):55-57.

主站蜘蛛池模板: 国产精品制服| 欧美在线视频不卡| 91香蕉视频下载网站| 亚洲第一视频区| 波多野结衣一二三| 日韩专区第一页| 波多野结衣一区二区三区四区视频 | 國產尤物AV尤物在線觀看| 免费激情网址| 精品视频一区二区三区在线播| 日韩在线中文| 91精品免费久久久| 欧美自拍另类欧美综合图区| 久久网欧美| 欧美97欧美综合色伦图| 青青久视频| 都市激情亚洲综合久久| 免费毛片在线| 99热国产这里只有精品无卡顿"| 国产精品一区在线麻豆| 国产理论一区| 色窝窝免费一区二区三区| 精品剧情v国产在线观看| 91人妻在线视频| 国产一区在线观看无码| 亚洲性日韩精品一区二区| 亚洲精品在线影院| 伊人丁香五月天久久综合| 欧美 国产 人人视频| 国产91av在线| 欧美一级夜夜爽| 亚洲国产精品日韩av专区| lhav亚洲精品| av尤物免费在线观看| 五月激情综合网| 国产精品19p| 国产人人射| 亚洲最大情网站在线观看| 9cao视频精品| 国产精品一线天| 亚洲精品动漫| 国产欧美日韩视频一区二区三区| 国产精品女主播| 九九九精品成人免费视频7| 伊人成人在线| 午夜在线不卡| 美女毛片在线| 亚洲国产综合精品中文第一| 免费看av在线网站网址| 国产欧美成人不卡视频| 国产玖玖视频| 伊人天堂网| 2021亚洲精品不卡a| 欧美不卡视频在线观看| 91精品网站| 亚洲精品天堂自在久久77| 色综合久久综合网| 日韩小视频在线播放| 香蕉久久国产精品免| 精品国产中文一级毛片在线看| 日本五区在线不卡精品| 久久国产精品嫖妓| 午夜丁香婷婷| 久久久波多野结衣av一区二区| 99国产精品免费观看视频| 久久99国产综合精品女同| 亚洲 欧美 中文 AⅤ在线视频| 亚洲三级片在线看| 99精品久久精品| 亚洲国产精品日韩专区AV| 亚洲有码在线播放| 国产专区综合另类日韩一区| 国产亚洲视频免费播放| a级毛片免费在线观看| 国产在线无码av完整版在线观看| 欧美日韩一区二区在线播放 | 国产精品高清国产三级囯产AV| 99热这里都是国产精品| 亚洲天堂视频网站| 久久精品人人做人人爽电影蜜月| 99久视频| 四虎永久免费在线|