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

?

軟件教育新形勢(shì)下的編譯原理課程體系改革

2011-12-31 00:00:00
計(jì)算機(jī)教育 2011年11期


  摘要:現(xiàn)在編譯課程的教學(xué)對(duì)象已經(jīng)從面向編譯器設(shè)計(jì)者轉(zhuǎn)變?yōu)槊嫦蜍浖夹g(shù)人員,對(duì)編譯技術(shù)相關(guān)課程的目標(biāo)和教學(xué)內(nèi)容提出了新的要求。為此,文章提出一種面向高水平軟件人才培養(yǎng)的新的編譯技術(shù)教學(xué)體系,內(nèi)容涵蓋軟件系統(tǒng)核心機(jī)制、軟件基礎(chǔ)理論、語(yǔ)言及其分析技能等多個(gè)層面和階段的培養(yǎng)內(nèi)容。
  關(guān)鍵詞:編譯器;課程體系;培養(yǎng)目標(biāo)
  
  作為ACM規(guī)定的計(jì)算機(jī)科學(xué)主干課程之一[1],編譯原理在計(jì)算機(jī)學(xué)科的教學(xué)體系中占有重要地位。然而,目前國(guó)內(nèi)外編譯原理課程的主要內(nèi)容來(lái)自于20世紀(jì)70、80年代編譯技術(shù)發(fā)展階段的研究成果。其經(jīng)典教材的內(nèi)容與教學(xué)框架在今天幾乎所有編譯器教材中都可找到顯著痕跡。對(duì)于今天的絕大多數(shù)學(xué)生來(lái)說(shuō),也許在未來(lái)的工作中都沒(méi)有機(jī)會(huì)從事編譯器本身的設(shè)計(jì)與研究。因此,編譯原理這門難學(xué)、難講的“理論型”課程的學(xué)習(xí)究竟有什么現(xiàn)實(shí)意義,直接決定了編譯原理教學(xué)的未來(lái)發(fā)展方向。這一問(wèn)題的實(shí)質(zhì),實(shí)際上是對(duì)課程目標(biāo)的準(zhǔn)確定位。以加州Berkeley大學(xué)為代表的國(guó)內(nèi)外計(jì)算機(jī)領(lǐng)域教育機(jī)構(gòu)與專家對(duì)這一問(wèn)題進(jìn)行了深入思考,并提出了一系列的教學(xué)改革方案。其研究點(diǎn)主要集中在以下幾個(gè)方面[2-9]:
  第一,明確了編譯課程教學(xué)對(duì)象的變化,即從面向編譯器設(shè)計(jì)專家轉(zhuǎn)變?yōu)槊嫦蛞话阈缘能浖<摇erkeley大學(xué)的Rastislav Bodik在文獻(xiàn)[2]中明確表示,其教學(xué)內(nèi)容已經(jīng)從主要集中于后端優(yōu)化等最新技術(shù),向更加重視前端分析器設(shè)計(jì)的方向轉(zhuǎn)變。
  第二,設(shè)計(jì)新型的實(shí)驗(yàn)型編譯器和小型語(yǔ)言,以盡量滿足不同領(lǐng)域教學(xué)對(duì)象的要求。如采用DSL語(yǔ)言等專用語(yǔ)言,以提高學(xué)生對(duì)編譯技術(shù)實(shí)際應(yīng)用的理解與操作能力。
  第三,采用輔助工具和方法,盡可能提高教學(xué)質(zhì)量,使學(xué)生可以更方便、快捷地掌握編譯技術(shù)的內(nèi)容。
  以上三點(diǎn)是目前國(guó)內(nèi)外對(duì)于編譯技術(shù)教學(xué)所采用的主要思想和方法。然而,僅根據(jù)編譯課程教學(xué)對(duì)象的變化,并不足以從軟件技術(shù)發(fā)展和人才教育新需求中宏觀把握編譯課程發(fā)展的趨勢(shì)。要真正理清編譯課程在現(xiàn)代軟件學(xué)科教學(xué)中的位置和需要進(jìn)行的改革,必須尋找高水平軟件人才培養(yǎng)的客觀規(guī)律,并據(jù)此對(duì)現(xiàn)有的編譯器設(shè)計(jì)課程的目標(biāo)、內(nèi)容和方法進(jìn)行創(chuàng)新和完善。下面以此為線索,對(duì)編譯課程的創(chuàng)新體系進(jìn)行探討和思考。
  1編譯課程的歷史地位與角色變化趨勢(shì)
  在編譯技術(shù)飛速發(fā)展的時(shí)期,編譯原理的教學(xué)內(nèi)容屬于前沿技術(shù)領(lǐng)域。學(xué)習(xí)這門課程的學(xué)生有很多機(jī)會(huì)成為新型編譯器的設(shè)計(jì)者或完善者。但這種情況在21世紀(jì)開始時(shí)就已經(jīng)發(fā)生了根本性的改變。
  盡管編譯技術(shù)本身仍有很大發(fā)展,但其發(fā)展點(diǎn)已經(jīng)與目前編譯課程教學(xué)的重點(diǎn)有了很大偏離。新環(huán)境下的教學(xué)對(duì)象不再是編譯軟件本身的設(shè)計(jì)者,而是編譯軟件和編譯技術(shù)的使用者。換而言之,絕大多數(shù)學(xué)生學(xué)習(xí)本課程的目的和效果,已經(jīng)從本源性的創(chuàng)新向應(yīng)用型創(chuàng)新轉(zhuǎn)變。
  實(shí)際上,編譯技術(shù)本身的應(yīng)用與發(fā)展也正體現(xiàn)了這一發(fā)展趨勢(shì)。在編譯器前端技術(shù)中,分析算法和分析器設(shè)計(jì)占了絕大多數(shù)。這些技術(shù)除了在編譯器本體中發(fā)揮作用外,在網(wǎng)絡(luò)管理、中間件設(shè)計(jì)、軟件工具設(shè)計(jì)和各種格式化文件描述等領(lǐng)域都得到了廣泛應(yīng)用。例如,在CORBA等中間件中出現(xiàn)的各種IDL語(yǔ)言編譯器,即是一個(gè)典型的例子。
  另一方面,對(duì)編譯技術(shù)的深入理解有利于提高學(xué)生對(duì)計(jì)算機(jī)軟件系統(tǒng)的認(rèn)知層次。如果只能看到應(yīng)用軟件的表層現(xiàn)象,而不能從本質(zhì)上抓住軟件系統(tǒng)的核心要點(diǎn),就很難造就具有堅(jiān)實(shí)理論基礎(chǔ)和實(shí)踐能力的高水平軟件人才。編譯技術(shù)無(wú)論從理論體系還是實(shí)際應(yīng)用方面,都具有不可替代的優(yōu)勢(shì)。但目前的教學(xué)方式?jīng)]有將編譯課程與軟件系統(tǒng)的核心技術(shù)真正關(guān)聯(lián)起來(lái)(這里所說(shuō)的核心,并不是說(shuō)編譯器屬于核心軟件,而是說(shuō)對(duì)于理解軟件系統(tǒng)的本質(zhì)來(lái)講是核心的),沒(méi)有真正做到各個(gè)層面的軟、硬件知識(shí)融會(huì)貫通。
  2課程的定位與目標(biāo)設(shè)定
  為明確課程定位,必須首先對(duì)所培養(yǎng)對(duì)象的目標(biāo)與未來(lái)發(fā)展進(jìn)行準(zhǔn)確分析。未來(lái)培養(yǎng)的學(xué)生應(yīng)當(dāng)具有以下基本特征:
  第一,具有堅(jiān)實(shí)的軟件理論功底,能夠熟練運(yùn)用各種抽象工具對(duì)事物及其關(guān)系進(jìn)行建模與分析。
  第二,具備一定的研究素養(yǎng),能夠做到知其然知其所以然,真正掌握各項(xiàng)技術(shù)的原因與本質(zhì)。
  第三,對(duì)軟、硬件系統(tǒng)運(yùn)行機(jī)理有著深刻的認(rèn)識(shí),能夠迅速抓住復(fù)雜軟件的核心,并利用所建立的知識(shí)體系和技能分析實(shí)際的軟件問(wèn)題。
  第四,掌握基本的工具、方法,能夠解決實(shí)際應(yīng)用中的問(wèn)題。
  對(duì)于編譯課程來(lái)說(shuō),可以對(duì)以上目標(biāo)進(jìn)行更為明確的定義。
  第一,通過(guò)學(xué)習(xí)編譯技術(shù),建立自動(dòng)機(jī)理論的基礎(chǔ),并使學(xué)生掌握自動(dòng)機(jī)理論在編譯技術(shù)中的應(yīng)用方法。同時(shí),通過(guò)對(duì)編譯器架構(gòu)設(shè)計(jì)、算法設(shè)計(jì)等進(jìn)行具體講解,使學(xué)生從語(yǔ)言分析器的角度,看到如何將一個(gè)具體語(yǔ)言編寫的程序表示為一個(gè)抽象模型,以及如何在編譯器設(shè)計(jì)中實(shí)現(xiàn)這一模型,進(jìn)而提高其抽象設(shè)計(jì)與實(shí)現(xiàn)的能力。
  第二,通過(guò)介紹編譯器技術(shù)中的各項(xiàng)技術(shù)及其原理,為學(xué)生展示一個(gè)完整的理論體系與技術(shù)。具體來(lái)說(shuō)就是利用理論建立模型,并以此為基礎(chǔ)提出針對(duì)性的優(yōu)化方法。
  第三,通過(guò)對(duì)軟、硬件系統(tǒng)本質(zhì)的對(duì)比與分析,明確指出編譯技術(shù)的本質(zhì)是解決軟、硬件機(jī)理上的差異,并通過(guò)具體的案例向?qū)W生展示編譯器設(shè)計(jì)者解決這一問(wèn)題的思路和方法。由此為學(xué)生建立一條深入理解軟、硬件系統(tǒng)核心運(yùn)行機(jī)理的途徑奠定基礎(chǔ)。
  第四,使學(xué)生掌握語(yǔ)言建模、分析算法設(shè)計(jì)、代碼優(yōu)化等多種工具,為學(xué)生運(yùn)用這些技術(shù)解決實(shí)際問(wèn)題奠定基礎(chǔ)。
  根據(jù)上述分析,應(yīng)當(dāng)對(duì)新形勢(shì)下編譯課程的定位進(jìn)行調(diào)整,具體思路如下。
  1) 培養(yǎng)軟件基礎(chǔ)理論的功底,具備建立抽象模型和編程實(shí)現(xiàn)的能力;
  2) 培養(yǎng)對(duì)符號(hào)流處理的基本程序設(shè)計(jì)技巧和算法基礎(chǔ);
  3) 利用來(lái)自實(shí)際應(yīng)用的例子提高學(xué)生在實(shí)戰(zhàn)中運(yùn)用技術(shù)解決問(wèn)題的能力;
  4) 通過(guò)實(shí)際軟件的例子,深入講解系統(tǒng)如何實(shí)現(xiàn)各種高級(jí)語(yǔ)言抽象元素的方法,為建立完整的軟、硬件運(yùn)行機(jī)理和提高實(shí)際軟件研發(fā)能力提供保證。
  3課程目標(biāo)的實(shí)現(xiàn)與課程改革的思路
  3.1應(yīng)用領(lǐng)域的擴(kuò)展
  如前所述,編譯技術(shù)在軟件學(xué)科中的作用早已不再局限于培養(yǎng)編譯器設(shè)計(jì)者這個(gè)單一的目標(biāo)。實(shí)際上,編譯技術(shù)是諸多相關(guān)技術(shù)的基礎(chǔ)。例如:在虛擬機(jī)技術(shù)中,各種代碼優(yōu)化和程序解釋執(zhí)行的思想都與編譯后端的優(yōu)化密切相關(guān)。而符號(hào)調(diào)試相關(guān)的技術(shù)則與反匯編、類型理論與實(shí)現(xiàn)方法、控制流分析等技術(shù)密切相關(guān)。在程序分析技術(shù)中,各種程序切片、數(shù)據(jù)流/控制流分析技術(shù)得到廣泛應(yīng)用。在軟件測(cè)試領(lǐng)域,這些技術(shù)也被用于進(jìn)行代碼覆蓋和優(yōu)化測(cè)試用例設(shè)計(jì)等多個(gè)方面。除此之外,在諸如數(shù)據(jù)檢索、知識(shí)建模與推理、網(wǎng)絡(luò)協(xié)議、面向方面的編程等方面,各種編譯器前端與后端技術(shù)都得到廣泛應(yīng)用。在各種腳本語(yǔ)言和文檔格式語(yǔ)言中,編譯器前端技術(shù)也同樣得到廣泛應(yīng)用。
  根據(jù)上述分析不難看出,在現(xiàn)代軟件開發(fā)中,編譯技術(shù)的應(yīng)用范圍已經(jīng)遠(yuǎn)遠(yuǎn)超出傳統(tǒng)意義上的編譯器設(shè)計(jì)。實(shí)際上,除了編譯器優(yōu)化、代碼生成等后端技術(shù)仍非?;钴S外,各種新型應(yīng)用對(duì)前端分析器或分析技術(shù)也同樣有著巨大的需求。
  在這種情況下,編譯課程的教學(xué)對(duì)象和內(nèi)容也必然發(fā)生變化,其所需要具有技能的側(cè)重點(diǎn)也與傳統(tǒng)編譯課程有了很大變化。
  3.2編譯課程教學(xué)目標(biāo)的改進(jìn)
  為適應(yīng)新形勢(shì)下的教學(xué)要求,編譯課程的教學(xué)目標(biāo)應(yīng)當(dāng)定位在以下幾個(gè)方面:
  第一,將對(duì)軟件系統(tǒng)核心機(jī)制的深入理解作為教學(xué)的關(guān)鍵點(diǎn),以此為基礎(chǔ),實(shí)現(xiàn)硬件、操作系統(tǒng)和編譯課程之間的知識(shí)關(guān)聯(lián)體系,為學(xué)生建立完整的軟件系統(tǒng)概念,真正體現(xiàn)編譯技術(shù)在軟件系統(tǒng)中的核心地位。
  
  第二,在濃縮理論教學(xué)的基礎(chǔ)上,將相關(guān)理論與技術(shù)點(diǎn)貫穿起來(lái),為學(xué)生深入理解各理論與技術(shù)點(diǎn)及其相關(guān)關(guān)系奠定基礎(chǔ)。對(duì)理論的濃縮并不意味著將編譯課程變?yōu)閷?duì)某種編譯技術(shù)應(yīng)用的教學(xué),而是更加強(qiáng)調(diào)理論的目的性和用途,使學(xué)生可以從更真實(shí)的例子中看到理論所發(fā)揮的作用。
  第三,結(jié)合軟件測(cè)試、數(shù)據(jù)檢索、數(shù)據(jù)格式語(yǔ)言(如HTML等)、虛擬機(jī)等技術(shù),進(jìn)行擴(kuò)展教學(xué),使學(xué)生真正了解編譯技術(shù)的用途。與對(duì)狹義上的編譯技術(shù)進(jìn)行介紹的目的不同,擴(kuò)展教學(xué)的目的不再局限于編譯技術(shù)本身和對(duì)軟件系統(tǒng)核心機(jī)制的理解,而是更強(qiáng)調(diào)學(xué)生能夠?qū)λ鶎W(xué)知識(shí)進(jìn)行活學(xué)活用。其目標(biāo)是設(shè)計(jì)新語(yǔ)言、新編譯器或分析器、新工具等方面。
  第四,設(shè)計(jì)完整的實(shí)驗(yàn)體系,使學(xué)生可以對(duì)每個(gè)學(xué)到的知識(shí)點(diǎn)進(jìn)行系統(tǒng)化的實(shí)驗(yàn),并根據(jù)自己的想法進(jìn)行分析和完善。
  第五,對(duì)編譯器后端技術(shù)和編譯技術(shù)的發(fā)展現(xiàn)狀進(jìn)行深入介紹,要求學(xué)生主動(dòng)對(duì)其未來(lái)應(yīng)用、技術(shù)現(xiàn)狀、技術(shù)特點(diǎn)、面臨困難等進(jìn)行研討和分析,在培養(yǎng)學(xué)生研究能力的同時(shí),使其真正接觸到編譯技術(shù)發(fā)展的前沿。
  4課程目標(biāo)的實(shí)現(xiàn)與課程改革的思路
  為實(shí)現(xiàn)上述目標(biāo),應(yīng)當(dāng)對(duì)教學(xué)內(nèi)容、方式進(jìn)行適當(dāng)調(diào)整,建立以深入理解軟件系統(tǒng)核心機(jī)制為目標(biāo)的編譯課程教學(xué)體系。具體包括以下幾個(gè)方面。
  第一,以軟、硬件協(xié)作層面為紐帶,匯編語(yǔ)言和CPU核心指令集、內(nèi)存管理機(jī)制為中心,首先建立基于抽象或具體CPU的實(shí)際軟件系統(tǒng)執(zhí)行模型?;谠撃P?,學(xué)生可以深入理解高級(jí)語(yǔ)言和低級(jí)語(yǔ)言之間本質(zhì)差別的具體內(nèi)容,而不是僅局限于文字上的描述。
  第二,在充分理解軟、硬件界面模型的基礎(chǔ)上,優(yōu)先培養(yǎng)學(xué)生對(duì)底層指令和系統(tǒng)的深入理解。通過(guò)設(shè)計(jì)相應(yīng)的實(shí)驗(yàn)環(huán)節(jié),使學(xué)生迅速掌握底層軟件設(shè)計(jì)的核心和要點(diǎn),并能夠理解各種優(yōu)化、代碼生成等后端技術(shù)的直觀含義。使學(xué)生掌握能夠運(yùn)用底層代碼進(jìn)行設(shè)計(jì)和優(yōu)化方法,并具有一定的實(shí)際優(yōu)化能力。
  第三,建立了底層系統(tǒng)基本概念的基礎(chǔ)上,講述高級(jí)語(yǔ)言翻譯為低級(jí)語(yǔ)言的核心方法與思路。其講解思路可采用先手工再自動(dòng)的方式展開。由于學(xué)生已經(jīng)初步掌握了手工翻譯的要點(diǎn),因此對(duì)自動(dòng)翻譯的過(guò)程將更加容易理解。
  第四,在學(xué)生掌握了主要編譯算法、模型的思想和技術(shù)后,設(shè)計(jì)相應(yīng)的實(shí)驗(yàn),使學(xué)生可以從兩個(gè)方面開展實(shí)驗(yàn)以加深理解——其一,自己動(dòng)手進(jìn)行翻譯;其二,對(duì)真實(shí)編譯器產(chǎn)生的中間表示、未經(jīng)優(yōu)化的中間代碼、優(yōu)化后的中間代碼等進(jìn)行分析和運(yùn)行調(diào)試。
  第五,通過(guò)對(duì)軟件測(cè)試、代碼覆蓋、程序分析等技術(shù)的介紹,使學(xué)生掌握數(shù)據(jù)流分析等代碼優(yōu)化技術(shù)的核心思想,并能夠靈活運(yùn)用。
  第六,在上述工作的基礎(chǔ)上,可開展以下幾個(gè)方面的擴(kuò)展教學(xué)工作:
  ① 結(jié)合實(shí)際編譯器、操作系統(tǒng)和硬件,深入介紹新型體系結(jié)構(gòu)、操作系統(tǒng)環(huán)境下,實(shí)際編譯器、鏈接器、匯編器、調(diào)試器的工作原理,并對(duì)其核心技術(shù)進(jìn)行深入講解。使學(xué)生可以更好地理解在新的軟、硬件體系結(jié)構(gòu)下,庫(kù)、動(dòng)態(tài)庫(kù)、內(nèi)存管理等技術(shù)與編譯器的本質(zhì)關(guān)系,并可深入理解調(diào)試器這一關(guān)鍵技術(shù)。由于符號(hào)調(diào)試與語(yǔ)法、語(yǔ)義分析都密切相關(guān),因此可以將此作為編譯器前端技術(shù)實(shí)際應(yīng)用的很好例子進(jìn)行講解。
 ?、?對(duì)各種腳本語(yǔ)言、虛擬機(jī)等進(jìn)行講解,使學(xué)生可以更加深入理解軟件系統(tǒng)底層運(yùn)行機(jī)制,并開展相應(yīng)的實(shí)驗(yàn)。由于虛擬機(jī)與指令集等底層概念之間相關(guān),可為開展各種優(yōu)化、代碼生成實(shí)驗(yàn)提供很好的運(yùn)行與調(diào)試環(huán)境。
 ?、?為學(xué)生實(shí)際講解一個(gè)格式語(yǔ)言或腳本語(yǔ)言的翻譯與解rgobtfj5Q0Q6PzQgumVLJNC2qi0UpPel0cSSpF31IC4=釋過(guò)程,并讓學(xué)生自己動(dòng)手設(shè)計(jì)其語(yǔ)法、語(yǔ)義和執(zhí)行引擎。在此階段之前,應(yīng)當(dāng)在前期教學(xué)中建立的堅(jiān)實(shí)的程序設(shè)計(jì)語(yǔ)言理論基礎(chǔ),并通過(guò)各章節(jié)的小實(shí)驗(yàn)與練習(xí)掌握了對(duì)實(shí)際語(yǔ)言進(jìn)行建模和改善的技術(shù)。
  5課程體系的建設(shè)
  要在一個(gè)學(xué)期的教學(xué)中完成上述所有教學(xué)內(nèi)容是非常困難的。僅依靠先修課程提供必備的知識(shí),而不將知識(shí)串聯(lián)起來(lái)也同樣不能滿足系統(tǒng)化教學(xué)的要求。編譯課程的改進(jìn)與調(diào)整,將對(duì)課程的教學(xué)體系產(chǎn)生重要影響。因此,我們提出需要建立分階段、分層次的多層面教學(xué)體系。
  第一層面,核心技術(shù)層面。在核心技術(shù)層面,只講解編譯器最核心部分的知識(shí),培養(yǎng)基本能力。此層面的教學(xué)內(nèi)容僅圍繞這基本指令集和高級(jí)語(yǔ)言主要特征開展。在內(nèi)容上與傳統(tǒng)編譯課程的教學(xué)基本類似。但在教學(xué)方法和角度上,對(duì)底層軟件核心機(jī)制的理解和進(jìn)行人工翻譯的能力進(jìn)行了專門要求(要求熟練掌握此項(xiàng)技能)。此層面同樣對(duì)基本的編譯器設(shè)計(jì)理論進(jìn)行介紹和訓(xùn)練,使學(xué)生掌握基本的設(shè)計(jì)與分析技能,能夠?qū)?shí)際語(yǔ)言中的場(chǎng)景進(jìn)行有效處理。
  第二層面,實(shí)際系統(tǒng)層面。本層面的教學(xué)將建立在對(duì)實(shí)際編譯器及其相關(guān)軟件的使用和分析的基礎(chǔ)上,目標(biāo)是使學(xué)生熟練掌握實(shí)際系統(tǒng),并能夠自行設(shè)計(jì)測(cè)試用例,以分析實(shí)際編譯器的工作方式(通過(guò)翻譯結(jié)果猜測(cè)系統(tǒng)采用的主要算法等)。此階段的工作除了原理性的分析外,同時(shí)側(cè)重于培養(yǎng)學(xué)生熟練掌握和深入理解復(fù)雜的大型軟件系統(tǒng)的能力,通過(guò)理論學(xué)習(xí)和實(shí)驗(yàn)分析培養(yǎng)透過(guò)表象理解軟件系統(tǒng)核心機(jī)制的能力。
  第三個(gè)層面,建立現(xiàn)代軟、硬件體系結(jié)構(gòu)下的編譯技術(shù)框架,使學(xué)生初步掌握庫(kù)、動(dòng)態(tài)庫(kù)、構(gòu)件庫(kù)、軟件框架、多任務(wù)環(huán)境下的編譯相關(guān)技術(shù)。并通過(guò)調(diào)試器的介紹和訓(xùn)練,使學(xué)生初步掌握對(duì)軟件結(jié)構(gòu)進(jìn)行動(dòng)態(tài)分析的技能,深入理解動(dòng)態(tài)環(huán)境對(duì)編譯和解釋執(zhí)行的影響。
  第四個(gè)層面,將知識(shí)體系擴(kuò)展到更廣闊的范圍,根據(jù)教學(xué)課時(shí)等對(duì)虛擬機(jī)、格式語(yǔ)言、解釋語(yǔ)言、信息檢索等領(lǐng)域中對(duì)編譯技術(shù)的應(yīng)用進(jìn)行介紹。
  上述技術(shù)內(nèi)容可根據(jù)情況安排在一門或幾門課程中。以下是一種可能的課程體系設(shè)計(jì)方案:
  1) 本科階段開設(shè)的基本編譯原理課程,講述第一層面的內(nèi)容。
  2) 本科階段開設(shè)的使用編譯器實(shí)用性課程。該課程要求學(xué)生學(xué)習(xí)過(guò)了基本編譯原理課程,講述第二層面的內(nèi)容,目標(biāo)是提高學(xué)生對(duì)實(shí)際編譯系統(tǒng)的理解,課程開設(shè)方式可以是教學(xué)或?qū)嶒?yàn)。建議著重根據(jù)一種編譯器進(jìn)行教學(xué),以提高學(xué)生深入學(xué)習(xí)的能力。
  3) 開設(shè)本科選修或研究生課程,內(nèi)容涵蓋第三層面的內(nèi)容。本階段的課程要求學(xué)生能夠熟練掌握系統(tǒng)軟件的核心機(jī)理,并綜合利用調(diào)試、鏈接、編譯等技術(shù),對(duì)軟件結(jié)構(gòu)能夠進(jìn)行動(dòng)態(tài)分析??筛鶕?jù)需要,開設(shè)符號(hào)調(diào)試器設(shè)計(jì)或鏈接器、程序加載器設(shè)計(jì)方面的實(shí)驗(yàn)內(nèi)容。
  4) 在上述課程中適當(dāng)增加編譯技術(shù)的應(yīng)用實(shí)例,或在獨(dú)立課程、實(shí)驗(yàn)教學(xué)中對(duì)某一種或幾種具體情況進(jìn)行介紹和分析。課程的內(nèi)容要涵蓋第四個(gè)層面的內(nèi)容。
  6課程發(fā)展面臨的困難和要解決的問(wèn)題
  編譯原理課程屬于理論性和實(shí)踐性較強(qiáng)的課程,對(duì)授課教師基礎(chǔ)有較高的要求。在新的人才培養(yǎng)形勢(shì)對(duì)課程改革的要求下,高水平教師短缺的問(wèn)題變得更為突出。因此,只有解決了教師隊(duì)伍培養(yǎng)和提高的問(wèn)題,才能從根本上解決編譯相關(guān)課程體系改革時(shí)所面臨的問(wèn)題。
  具體來(lái)說(shuō),可以采取以下措施:
  第一,從教材建設(shè)方面看,在已有教材體系的基礎(chǔ)上增加適應(yīng)新環(huán)境的新教材;或?qū)ΜF(xiàn)有教材進(jìn)行改版以滿足新的教學(xué)要求。
  第二,課程開設(shè)采取循序漸進(jìn)的方式開展。首先建立核心層面的課程體系,設(shè)計(jì)相應(yīng)的實(shí)驗(yàn)環(huán)境。通過(guò)一個(gè)階段的教學(xué),在教師熟練掌握基本教學(xué)內(nèi)容和方法后,再開展下一階段的教學(xué)擴(kuò)展。如果人員足夠,也可同時(shí)開展幾個(gè)層面課程的教學(xué)設(shè)計(jì)工作。
  第三,要求教師做到功夫在課外,對(duì)系統(tǒng)底層軟件運(yùn)行機(jī)制進(jìn)行深入學(xué)習(xí)和理解。要達(dá)到這一目標(biāo),需要有選擇和重點(diǎn)地設(shè)計(jì)相應(yīng)的配套教輔與實(shí)驗(yàn)體系。為了保證課程內(nèi)容的完整性,這些工作應(yīng)當(dāng)獨(dú)立于其他課程,盡量做到自成體系。
  
  7結(jié)語(yǔ)
  編譯原理作為計(jì)算機(jī)軟件專業(yè)的核心課程,已經(jīng)經(jīng)歷了30年左右的發(fā)展。然而,除了作為計(jì)算機(jī)基礎(chǔ)理論課程外,編譯原理課程同樣具有很強(qiáng)的實(shí)用價(jià)值,是培養(yǎng)高水平的現(xiàn)代化軟件人才必不可少的一個(gè)環(huán)節(jié)。為了實(shí)現(xiàn)這一目標(biāo),應(yīng)當(dāng)從教學(xué)目標(biāo)、教學(xué)內(nèi)容與方法和教師隊(duì)伍培養(yǎng)等多個(gè)方面對(duì)現(xiàn)有編譯課程的教學(xué)進(jìn)行改進(jìn)和創(chuàng)新。
  
  參考文獻(xiàn):
  [1] Computing Curricula 2008: An interim revision of cs 2001[EB/OL]. [2011-04-10]. http://www.acm.org/education/ curricula/ComputerScience2008.pdf.
  [2] Rastislav Bodik. Small Languages for Undergraduates[EB/OL]. [2011-04-10]. http://www.sigplan.org/pl-workshop/ contributions/30.doc
  [3] Marc L. Corl

利辛县| 信丰县| 定结县| 昌黎县| 长阳| 平遥县| 乌恰县| 长兴县| 苗栗市| 新建县| 昭觉县| 阳高县| 利津县| 田阳县| 旬邑县| 桃园市| 宁强县| 新竹县| 加查县| 张掖市| 丹巴县| 宾川县| 信阳市| 嘉兴市| 屏东市| 绥江县| 田林县| 福清市| 榆中县| 来安县| 府谷县| 江孜县| 溧水县| 渝中区| 安国市| 芦溪县| 思南县| 山丹县| 大理市| 雷波县| 高青县|