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

?

編譯原理課程的創(chuàng)新教學方式

2011-12-31 00:00:00王春
計算機教育 2011年11期


  摘要:編譯原理課程是高等院校培養(yǎng)計算機專業(yè)人才的核心課程,針對該課程在計算機本科教學中難講、難學的特點,從理論教學、實踐教學、教學手段等幾方面對編譯原理課程教學改革、創(chuàng)新進行研究、探索。
  關(guān)鍵詞:編譯原理;理論教學;實踐教學;多元化
  
  編譯原理是普通高等院校計算機科學與技術(shù)專業(yè)的一門專業(yè)核心課,主要內(nèi)容包括程序設(shè)計語言編譯程序的基本原理和實現(xiàn)方法。目標是通過本課程的學習,一方面使學生掌握和理解編譯器構(gòu)造的一般原理、基本設(shè)計方法和主要實現(xiàn)技術(shù);另一方面培養(yǎng)學生的抽象思維能力、獨立解決復雜問題的能力以及增強編寫和調(diào)試程序的能力。
  然而,編譯原理被普遍看做是計算機本科教學中最難講解、最難學習的課程。如何創(chuàng)新編譯原理課程的教學內(nèi)容、教學手段,從而提高教學效果,這是一個值得探討的問題,具有較高的研究價值。
  1優(yōu)化教學內(nèi)容
  由于編譯原理課程的理論教學內(nèi)容涉及很多理論知識,如形式語言理論、正規(guī)式、有限自動機、語法制導翻譯等,這些知識相對比較抽象,尤其是有限自動機理論,在今后學習人工智能時應用較多,這些內(nèi)容學生理解起來相對困難;此外,該課程還包含很多算法,例如詞法分析器和各種語法分析器的實現(xiàn),特別是LALR語法分析器的設(shè)計,學生在實現(xiàn)過程中經(jīng)常感到內(nèi)容抽象、算法復雜、難于理解,而且編譯程序規(guī)模較大,學生對編譯程序各邏輯部分之間的接口和一些算法的實現(xiàn)感覺很困惑[1]。另外,學生普遍認為編譯原理課程不實用,所以缺乏學習的熱情、主動性和積極性。
  1.1提高學習主觀能動性
  上第一次課時,我們首先給學生介紹編譯原理課程的地位和應用市場。編譯器的基本原理和技術(shù)適用于一般軟件的設(shè)計和實現(xiàn),而且在語言處理、軟件工程、軟件自動化、逆向軟件工程、再造軟件工程等諸多領(lǐng)域有著廣泛的應用。對于將來從事編譯系統(tǒng)設(shè)計工作的學生來說,編譯原理課程將為其打下堅實的能力和知識基礎(chǔ);對于從事其他工作的學生,它也能夠提高學生對計算機系統(tǒng)總體的認識[2]。此外,課程中介紹的經(jīng)典的語言分析方法和工具,對于設(shè)計一些實用的工具和軟件來說都是必備的基礎(chǔ)。
  其次,端正學生對本門課程的認識,肯定學生的能力,使其有信心學好這門課程。
  1.2抽象內(nèi)容形象化
  編譯系統(tǒng)中的一些概念很抽象,學生難于理解。在講解的過程中,我們可以選用學生最熟悉的一些實例,通過類比使抽象的概念更容易被理解。
  例如,從理論上來說,編譯過程一般包括詞法分析、語法分析、語義分析和中間代碼生成、代碼優(yōu)化、目標代碼生成這五個階段。學生記住這五個階段并不難,但理解階段劃分的依據(jù)有一定的難度。編譯程序的功能是將用高級語言編寫的源程序翻譯成等價的用機器語言或匯編語言表示的目標程序。既然編譯過程是一種語言的翻譯過程,那么,它的工作過程就類似于外文的翻譯過程,不同之處僅在于翻譯的對象不同,但其原理是類似的[3]。
  又如,自下而上的LR語法分析器的設(shè)計原理,在規(guī)范歸約過程中一方面記住移進和歸約出的整個符號串,即記住“歷史”,另一方面根據(jù)所用的產(chǎn)生式推測未來可能碰到的輸入符號,即對于未來進行“展望”。這個原理其實和每個人的成長過程很類似,只有記住歷史,把握現(xiàn)在,才能對未來進行很好的規(guī)劃和展望。
  1.3復雜問題實例化
  我們準備的實例是從實際程序編譯和運行遇到問題中抽象出來的,學生用所學的知識對這些問題進行分析、理解,并加以解決。這種方式可以使學生深入理解高級語言的工作原理,知其然更知其所以然,從而能夠更準確地運用各種高級程序設(shè)計語言,既能對前期課程起到復習鞏固的作用,又能讓學生切實體會到本課程的實際價值,從而激發(fā)學生學習編譯原理和技術(shù)的積極性[4]。
  2改革實踐教學
  實踐教學是培養(yǎng)學生動手實踐能力的重要環(huán)節(jié),也是鞏固和驗證所學理論知識,培養(yǎng)學生分析問題、解決問題能力的重要環(huán)節(jié),編譯原理課程對實踐的要求更高。
  目前,實驗環(huán)境不僅局限于Windows操作系統(tǒng),學生可以嘗試拓展到Linux、Unix等環(huán)境,實驗內(nèi)容除了以手工構(gòu)造的方式實現(xiàn),也可以使用現(xiàn)在較為流行的LEX、YACC等自動生成工具,體會軟件自動化的基本思路。
  1) 階段化實驗內(nèi)容。
  第一階段——驗證性實驗。
  驗證不同結(jié)構(gòu),如C、Java程序的分析過程及結(jié)果,從而體驗不同語言的編譯過程。
  第二階段——設(shè)計性實驗。
  通過設(shè)計、編寫并調(diào)試詞法分析器和語法分析器,加深對詞法、語法分析原理的理解。
  第三階段——分析性實驗。
  通過語義分析實驗,加深對語法制導翻譯原理的理解,掌握將語法分析所識別的語法成分變換為中間代碼的語義翻譯方法。
  第四階段——綜合性實驗。
  綜合性實驗將以編譯的原理、技術(shù)為基礎(chǔ),結(jié)合前期課程,加上實際需求和學生自己的設(shè)計才能完成。這些前期課程包括離散數(shù)學、數(shù)據(jù)結(jié)構(gòu)、高級程序設(shè)計語言、操作系統(tǒng)、匯編語言、數(shù)據(jù)庫原理等。通過綜合性實驗使學生設(shè)計制作出有一定水平的編譯程序,使學生更好地掌握編譯原理和基本技術(shù),充分發(fā)揮學生運用知識和編程技巧的能力。
  2) 基于多種操作系統(tǒng)。
  學生可以自由選擇基于windows、Unix或Linux等操作系統(tǒng),分析并實現(xiàn)相關(guān)實驗內(nèi)容。
  3) 使用自動生成工具。
  除了以手工構(gòu)造的方式實現(xiàn)詞法、語法分析器外,學生也可以使用詞法分析器自動生成工具LEX、語法分析器自動生成工具YACC或類似工具,掌握其基本原理與使用方法,從而學習如何編寫類似工具的源文件以解決詞法分析、語法分析等問題,體會軟件自動化的基本思路。
  4) 成果展示。
  實驗結(jié)束后,每班推選2至3位實驗結(jié)果較好的同學,講解展示自己的設(shè)計思路、源代碼以及運行結(jié)果。一方面,給本次實驗一個良好的示范,另一方面,刺激并鼓勵同學們更好地完成今后的實驗。
  3多元化教學手段
  1) 討論式、啟發(fā)式的課堂教學方法。
  以討論時、啟發(fā)式課堂教學法取代滿堂灌的教學方式,它可以活躍課堂氣氛,激發(fā)學生創(chuàng)新意識。對學生實驗的驗收采取演示、講解和答辯相結(jié)合方式,為學生提供綜合運用知識、培養(yǎng)科研素質(zhì)的機會,鍛煉學生的自主性,使學生的科研能力和人文素質(zhì)得到全方位的鍛煉。
  2) 數(shù)字化的教學資源。
  數(shù)字化的教學環(huán)境為課堂教學提供多種媒體的刺激,有利于學生知識的獲取和興趣的保持,有效激發(fā)學生學習興趣,使學生產(chǎn)生強烈的學習欲望,同時,它可以作為“知識的灌輸者”,也可以成為“學習的輔助者”,為提高學習效率,完成復雜研究任務提供幫助。
  建立課程網(wǎng)站,隨時更新、補充網(wǎng)上教學資源,供教師和學生使用。教學內(nèi)容不斷更新完善有助于實現(xiàn)分層次教學、個別化學習,為每個學生提供盡可能的選擇學習的空間,利于實現(xiàn)學生的協(xié)助式學習,實行合作和交流。教師還可以利用信息技術(shù)創(chuàng)設(shè)生動、逼真的教學情景,引導學生進入自主學習狀態(tài)。
  3) 多樣的考核手段。
  期中考試采用“一頁紙”半開卷形式;作業(yè)增加課外報告等內(nèi)容;實踐環(huán)節(jié)以老師考評和學生互評相結(jié)合的形式進行。
  4) 豐富的課外活動。
  鼓勵學生參加課外興趣小組,互相討論和學習相關(guān)技術(shù)。例如,興趣小組的同學,通過分析UCC編譯器源代碼并加寫注釋,使學生進一步加深編譯器的設(shè)計思路和實現(xiàn)方案。
  4教學與科研緊密結(jié)合
  加強教學和科研的結(jié)合,扎根于科研,以相關(guān)科研成果為背景和基礎(chǔ),緊密跟蹤國際學術(shù)前沿,不斷更新教學內(nèi)容,以保證教學內(nèi)容的先進性。將科研中遇到的問題作為教學的典型案例在課堂中進行講解,并且將科研項目進行必要的分解,組織部分優(yōu)秀的學生參與項目開發(fā),使學生切實體會到理論成果在技術(shù)實踐中的完美應用,深刻理解理論與實踐相結(jié)合的意義和具體途徑。
  
  例如,軟件測試中的測試用例自動生成技術(shù),其中涉及到的插樁、跟蹤等內(nèi)容就用到編譯中的詞法分析、語法分析、中間代碼等相關(guān)知識。
  5結(jié)語
  我們結(jié)合實際教學情況,提出創(chuàng)新編譯原理課程的一些方法和手段的探索,實踐證明,該教學方法在編譯原理教學中取得了一定的成績。然而,如何使該門課程取得更加高效的教學成果,還需要我們不斷的思考、探索、實踐和積累。
  
  參考文獻:
  [1] 編譯原理課程的教學研究與探索[J]. 教育

宜春市| 孟村| 桐庐县| 连平县| 阿拉善左旗| 阿城市| 六枝特区| 岳池县| 土默特左旗| 水富县| 达尔| 南开区| 东海县| 灵川县| 同心县| 台中市| 佛学| 西乌珠穆沁旗| 方城县| 永城市| 黄山市| 吉林市| 博客| 小金县| 上蔡县| 丹东市| 昭通市| 瓦房店市| 奎屯市| 双流县| 旌德县| 深水埗区| 正镶白旗| 临武县| 水富县| 沙田区| 静海县| 西乌| 麻阳| 甘德县| 延津县|