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

編譯原理GCC實例化教學(xué)研究

2011-12-31 00:00:00衷璐
計算機教育 2011年11期


  摘要:對現(xiàn)有編譯教學(xué)存在的問題進行分析,提出新的編譯課程教學(xué)方案,引入真實的業(yè)界編譯器實例GCC,以引導(dǎo)式、實例化的模式開展教學(xué),最后,給出新教學(xué)模式的參考評價方法。
  關(guān)鍵詞:編譯技術(shù);GCC;引導(dǎo)式;實例化
  
  編譯技術(shù)是計算機專業(yè)一門重要的專業(yè)核心課程。該課程主要介紹程序設(shè)計語言編譯程序的基本原理、技術(shù)和實現(xiàn)方法,使學(xué)生更好地了解、掌握開發(fā)大型軟件系統(tǒng)和軟件工具的思想和方法,提高學(xué)生程序設(shè)計能力。但是,由于種種原因,不少大專院校削減課時,只重理論知識的講解,使編譯課程的預(yù)期教學(xué)目的和效果大打折扣。當(dāng)前,編譯技術(shù)迅猛發(fā)展,調(diào)整編譯課程教學(xué)內(nèi)容和方法,以使其適應(yīng)時代需求已迫在眉睫。因此,以業(yè)界真實編譯器為主線索的引導(dǎo)式實例化教學(xué)模式研究的提出,無疑給本科編譯教學(xué)帶來新的機遇和挑戰(zhàn)。
  1本科編譯教學(xué)存在的問題
  首先,相對于許多本專業(yè)其他課程而言,本科編譯課程的教學(xué)內(nèi)容沒有做到適時同步跟進,教學(xué)內(nèi)容相對陳舊。以數(shù)據(jù)結(jié)構(gòu)課程為例,除傳統(tǒng)的C語言描述版本外,面向?qū)ο蟮腃++/JAVA語言版本已廣泛應(yīng)用。而編譯技術(shù)近年來的發(fā)展非常迅猛,例如并行編譯技術(shù)的研究、多核技術(shù)的推廣,等等,都沒能很好地體現(xiàn)到現(xiàn)行主流教材中。此外,編譯技術(shù)發(fā)展的主流是優(yōu)化技術(shù),而目前大學(xué)課程的講授內(nèi)容卻往往止步于優(yōu)化,只是有限地提及或根本不講,嚴重脫離學(xué)科發(fā)展的需要。第二,本科編譯教學(xué)難點較多。這主要體現(xiàn)在編譯技術(shù)所涉及知識內(nèi)容廣泛:從一般的編譯理論學(xué)習(xí)到種類繁多的優(yōu)化技術(shù),再到臨近硬件層的具體實現(xiàn),一個學(xué)期有限的課時囊括全部內(nèi)容非常困難。另外,編譯課程的理論知識部分包含大量抽象的概念和種類繁多的分析算法,僅通過課堂講授的方式不易為學(xué)生所掌握。第三,該課程缺乏實用特征。很多學(xué)生在學(xué)習(xí)編譯課程時都會提出這樣的問題:學(xué)習(xí)編譯有什么用?任課教師對于該問題的回答往往不到位。學(xué)生學(xué)到的大部分內(nèi)容只是枯燥和抽象的理論知識,這種學(xué)習(xí)方式很難體現(xiàn)編譯程序?qū)崿F(xiàn)過程中所隱含的技巧和魅力。第四,實驗環(huán)節(jié)薄弱。目前絕大多數(shù)院校編譯課程沒有實驗環(huán)節(jié),而這種設(shè)置對于工科性質(zhì)濃郁的編譯課程而言恰恰是非常不合理的。編譯系統(tǒng)是一個非常復(fù)雜的綜合系統(tǒng),學(xué)生只有通過不斷地參與和實踐才能更好地理解和掌握其中的概念和奧妙。
  2編譯課程引導(dǎo)式實例化方案的提出
  編譯課程的教學(xué)亟需實用性的教學(xué)設(shè)計方案。就目前教學(xué)實際來看,一蹴而就的方式是不理智的,任何事物的變革都需要一個漸進的過程,因此,在現(xiàn)有教學(xué)方案的基礎(chǔ)之上,逐步引入并強化實例化教學(xué)才是明智之舉。本文提出針對本科編譯課程教學(xué)特點的引導(dǎo)式實例化教學(xué)方案,它基于實例化教學(xué)法的基礎(chǔ),同時加入引導(dǎo)式元素。本文所提出的引導(dǎo)式的方法基于實例化和探究式兩種方法。眾所周之,實例化教學(xué)法起源于哈佛大學(xué)的案例教學(xué)法,其含義是采用與傳統(tǒng)教學(xué)的“概念-理論-應(yīng)用”模式完全相反的教學(xué)模式,即“案例-理論-概念”的模式。這種教學(xué)模式從形象、生動活潑的案例著手,自頂向下逐層深入透徹地展開案例相關(guān)的理論和概念的學(xué)習(xí)。此背景下的計算機類課程實例化教學(xué)法的研究早已開展[1]。而探究式教學(xué)則強調(diào)教師按照一定的教學(xué)方法和學(xué)生的認知規(guī)律,教會學(xué)生怎樣去學(xué)習(xí),讓學(xué)生像科學(xué)家一樣,去探索、研究、發(fā)現(xiàn)和掌握知識[2]。我們所提出的引導(dǎo)式的方法正是應(yīng)用令學(xué)生感興趣的綜合實例去引導(dǎo)學(xué)生對已有知識和新知識領(lǐng)域的學(xué)習(xí)和探索,綜合提升學(xué)生的理論實踐綜合應(yīng)用能力。
  3GCC引導(dǎo)式實例化教學(xué)方案的設(shè)計
  3.1綜合實例背景
  我們選擇GCC編譯器作為編譯課程教學(xué)的全程線索式綜合實例。GCC編譯器是用于GNU/Linux的標準系統(tǒng)編譯器,對于許多其他的系統(tǒng)也是可選的編譯器之一,它具備工業(yè)實力,符合標準,具有好的代碼實現(xiàn)[3],是國際上流行的開放源碼的編譯系統(tǒng)。以GCC為例進行分析和實驗,不僅可以讓學(xué)生更深刻地理解編譯器整體框架和編譯的一般流程和主要活動,還能鍛煉學(xué)生獨立分析和改進編譯系統(tǒng)軟件的水平,開拓學(xué)生獨立承擔(dān)科研任務(wù)的能力。GCC編譯系統(tǒng)具有與生俱來的科學(xué)性和實用性,非常符合實例化教學(xué)中實例設(shè)計的重要原則。
  1) 實例應(yīng)當(dāng)盡可能包含多的知識點,給學(xué)生充分展示其綜合應(yīng)用:GCC是一個綜合的真實編譯器,它的設(shè)計與實現(xiàn)囊括編譯的各個階段和過程。
  2) 一個好的實例,不僅可以引導(dǎo)學(xué)生由表及里、由此及彼地進行深入的思索,還應(yīng)當(dāng)將知識體系內(nèi)容各部分的聯(lián)系表露無遺:GCC各個模塊的設(shè)計充分體現(xiàn)了編譯過程各個環(huán)節(jié)的靈活應(yīng)用。
  3) 實例設(shè)計一般采用自頂向下的設(shè)計方法,實例規(guī)模由大到小,上下連貫統(tǒng)一,旨在給學(xué)生提供一個整體的觀念,以便于總體領(lǐng)會與把握:GCC不僅是一個大型的綜合編譯器,其整體規(guī)模大到可以覆蓋編譯器設(shè)計與實現(xiàn)的各個方面,而另一方面,GCC的各個子模塊又相對獨立,分別對應(yīng)不同的具體子階段,既能給學(xué)生提供整體概念,又能通過具體的實現(xiàn)為學(xué)生的領(lǐng)會和把握提供了橋梁。
  4) 最后,實例設(shè)計應(yīng)體現(xiàn)創(chuàng)造性,從而激發(fā)其自覺靈活應(yīng)用知識的能力:GCC是一個開放源碼的編譯器,任何人都可以為其添磚加瓦,這無疑為學(xué)生的靈活應(yīng)用提供了好的發(fā)展平臺。
  3.2實例結(jié)合點分析
  在課堂教學(xué)中堅持采取討論式、啟發(fā)式教學(xué)方法,改變滿堂灌的教學(xué)方式,活躍課堂氣氛,激發(fā)學(xué)生的創(chuàng)新意識,提高教學(xué)效果;通過設(shè)計綜合實驗,為學(xué)生提供綜合運用知識、培養(yǎng)科研素質(zhì)的機會,鍛煉學(xué)生的自主性;綜合實驗的驗收采取演示、講解和答辯相結(jié)合的方式,使學(xué)生的科研能力和人文素質(zhì)得到全方位的鍛煉。
  3.2.1從總體結(jié)構(gòu)的角度
  一般而言,編譯器由詞法分析器、語法分析器、語義分析和中間代碼產(chǎn)生器、優(yōu)化器和目標代碼生成器幾個部分組成。將源程序送至詞法分析器,首先開始詞法和語法的分析,最后有代碼生成器產(chǎn)生目標代碼[4],如圖1所示。
  而在GCC的具體實現(xiàn)中,雖然各個組件發(fā)生了一些變化,但仍遵循一般編譯器的基本工作流程。例如,解析器扮演了詞法分析器和語法分析器的角色;中間代碼產(chǎn)生部分則采用了自己的GIMPLE語言表示;為了更好地進行優(yōu)化,在GCC中實現(xiàn)了Tree SSA的優(yōu)化,如圖2所示。
  為此,在案例設(shè)計上,建議采用類比的方式進行案例的挖掘,以使學(xué)生在一般的編譯器結(jié)構(gòu)與工業(yè)實用編譯器的具體實現(xiàn)間建立聯(lián)系,從而打破抽象而被動的傳統(tǒng)理論知識學(xué)習(xí)的局限。
  3.2.2從中間表示語言的角度
  在一般的編譯器中,中間表示常采用抽象語法樹AST、后綴式、四元式、三元式等表示方法。而在GCC中設(shè)計了自己獨特的中間表示(IR),Gimple IR。Gimplifier對GENERIC代碼進行分析,之后的優(yōu)化工作作用于樹形表示,并且將其翻譯為下一級的中間表示IR,例如RTL,這個過程包括先深度優(yōu)先遍歷Gimple表示,之后生成RTL表示的一個線性表。GCC更低一級的中間表示是RTL IR,數(shù)據(jù)和過程的低級化可以更接近典型的硬件。
  3.3GCC引導(dǎo)式知識點映射
  目前編譯教材中所講授內(nèi)容主要涉及編譯的前端,包括詞法分析、語法分析、語義分析和中間代碼產(chǎn)生幾個環(huán)節(jié)。在設(shè)計GCC引導(dǎo)式知識點映射方案時,對于前端部分,我們綜合考慮了GNU 編譯器集合內(nèi)幕專業(yè)文檔和當(dāng)前主流編譯教材的知識體系,給出了相應(yīng)的映射方案,如表1所示。
  
  4新教學(xué)方案的適用性分析
  本文提出的GCC引導(dǎo)式實例化教學(xué)方案是在現(xiàn)有傳統(tǒng)知識體系講授的同時融入實際編譯器GCC的具體實現(xiàn)環(huán)節(jié)引導(dǎo)。在知識體系上不僅與已有教材主流知識點緊密結(jié)合,而且根據(jù)編譯技術(shù)發(fā)展的特點進行有效的補充,這種設(shè)計理念易于授課教師和學(xué)生接受。此外,GCC是一種非常成熟且有魅力的開源編譯系統(tǒng),是非常適合的綜合實例代表,受到了學(xué)生的歡迎。通過我們已有的一些實踐,學(xué)生在學(xué)習(xí)傳統(tǒng)編譯理論知識的同時,應(yīng)用和掌握實際編譯器GCC的理論與實踐相結(jié)合的模式,鍛煉了實際動手能力,理論結(jié)合實際的能力已逐步顯露出了其有效性。對于學(xué)生而言,在對開源編譯器GCC有一定程度把握的基礎(chǔ)上,還可以創(chuàng)造性地對GCC編譯器進行改良和進一步的優(yōu)化,它不僅激發(fā)了學(xué)生的探索興趣,還鍛煉了他們的創(chuàng)造力、動手能力和綜合應(yīng)用能力。
  5GCC引導(dǎo)式實例化教學(xué)評價
  關(guān)于GCC引導(dǎo)式實例化教學(xué)的評價,我們提出基于泰勒模式[5]的評價方案,即在相同的條件下分別考察。
  1) 引導(dǎo)式實例化方案是否比傳統(tǒng)方案實現(xiàn)了更多的目標;
  2) 引導(dǎo)式實例化方案是否比傳統(tǒng)方案更有效的實現(xiàn)了目標;
  3) 引導(dǎo)式實例化方案是否比傳統(tǒng)方案的目標價值更好;
  4) 引導(dǎo)式實例化方案是否在總體效果上優(yōu)于傳統(tǒng)方案。
  
  此外,我們還會進行教學(xué)過程統(tǒng)計數(shù)據(jù)的收集和分析工作,例如,開展開放式考核測試(如增加GCC知識的期末考試)、在教學(xué)過程中進行階段性的問卷調(diào)查、在教學(xué)過程中設(shè)置相應(yīng)的GCC輔助任務(wù)并對學(xué)生完成這些任務(wù)的情況進行分析等等來論證是否達到了預(yù)期的教學(xué)目標設(shè)想。
  6結(jié)語
  融入了GCC引導(dǎo)式的教學(xué)方案必然給傳統(tǒng)的本科編譯教學(xué)帶來新的生機,當(dāng)然,GCC是非常龐大的編譯器系統(tǒng),限于篇幅的原因,本文提及的內(nèi)容僅是眾多研究案例中的一部分。對于與學(xué)生互動環(huán)節(jié)的設(shè)計,我們的建議是讓學(xué)生更自主、更充分地融入到GCC的編譯世界中去,在探索中學(xué)習(xí),在學(xué)習(xí)中探索。除了傳統(tǒng)的課堂教學(xué),我們還建議開展GCC興趣小組,以進行更多的GCC優(yōu)化等相關(guān)研究,這也是非常有意義的一個嘗試。
  
  參考文獻:
  [1] 錢雪忠. 實例化教學(xué)法在計算機類課程中的應(yīng)用[J]. 中國電

主站蜘蛛池模板: 熟妇丰满人妻av无码区| 伊人欧美在线| 日韩欧美成人高清在线观看| 91系列在线观看| 特级做a爰片毛片免费69| 99er精品视频| 亚洲欧美成人网| 婷婷综合亚洲| 国产久操视频| 都市激情亚洲综合久久| 亚洲首页在线观看| 91小视频在线观看免费版高清| 欧美精品高清| 国产SUV精品一区二区| 都市激情亚洲综合久久 | 成人午夜网址| 热思思久久免费视频| 午夜视频免费试看| 成人久久精品一区二区三区| 久久国产高清视频| 亚洲日韩精品伊甸| 久久a毛片| 日韩高清中文字幕| 人人爽人人爽人人片| 国产大全韩国亚洲一区二区三区| 久久99精品久久久久久不卡| 九九久久精品免费观看| 日本91在线| 国产成人综合日韩精品无码不卡| 无码日韩视频| 亚洲三级视频在线观看| 日韩免费毛片| 97在线碰| 亚洲国产欧美国产综合久久 | 国产成人综合久久精品下载| 亚洲日本中文字幕乱码中文| 国内99精品激情视频精品| 亚洲欧美激情小说另类| 老司机午夜精品网站在线观看| 2021亚洲精品不卡a| 超碰91免费人妻| 国产精品视频第一专区| 日韩av在线直播| 亚洲国产中文在线二区三区免| 蜜芽一区二区国产精品| 亚洲视频无码| 蜜芽国产尤物av尤物在线看| 青青操国产| 日韩欧美色综合| 99久久国产综合精品2023| 国产精品九九视频| 性视频久久| 国产日韩丝袜一二三区| 欧美区国产区| 国产精品毛片一区视频播| 一级一级一片免费| 91成人试看福利体验区| 无码一区二区三区视频在线播放| 久久国产香蕉| 精品国产aⅴ一区二区三区| 欧美日韩亚洲国产| 亚洲天堂网站在线| 欧美成人综合视频| 免费无码AV片在线观看中文| 91青青视频| 欧美天堂久久| 国产精品视频系列专区| 国产自在线拍| 国产视频一二三区| 国产成人综合久久精品尤物| 国产欧美日韩va| 爽爽影院十八禁在线观看| 精品国产91爱| 色悠久久久| 99热免费在线| 国产成人AV男人的天堂| 国产无码精品在线播放| 国产96在线 | 青青草原国产免费av观看| 亚洲美女AV免费一区| 国模视频一区二区| 欧美一级视频免费|