• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      編譯原理教學(xué)改革的探討與實踐

      2016-01-19 21:51:39付立平趙彩虹
      黑龍江教育·理論與實踐 2015年1期
      關(guān)鍵詞:代碼生成詞法編譯器

      付立平,趙彩虹

      (黑龍江大學(xué) 計算機科學(xué)技術(shù)學(xué)院,黑龍江哈爾濱 150080)

      編譯原理課程是計算機專業(yè)中一門重要的專業(yè)理論課,是一門理論性和實踐性都很強的課程。編譯原理課程是專門介紹如何將高級語言翻譯成低級語言的編譯程序的工作原理與方法的課程。編譯原理作為一門比較難理解的課程,一直作為計算機科學(xué)與技術(shù)專業(yè)的必修課程,因為作為承接計算機硬件與軟件的關(guān)鍵技術(shù),對編譯原理課程的學(xué)習(xí)可以使學(xué)生加深對計算機的理解。因此,進一步深入探討編譯原理課程教學(xué)改革和實踐方法是非常有意義的。

      一、編譯原理教學(xué)中存在的問題

      (一)教學(xué)內(nèi)容理論性太強

      課程中涉及許多理論知識,如形式語言與自動機、文法、語法制導(dǎo)等理論,這些理論抽象不好理解,學(xué)生學(xué)習(xí)過程中有很大的難度。編譯原理課程的重點是詞法分析和語法分析,這兩個部分的學(xué)習(xí)主要以理論為主。在教學(xué)過程中,對大量編譯理論進行教學(xué),會使學(xué)生產(chǎn)生錯覺,認為編譯是一門理論課的學(xué)習(xí),會做題就能學(xué)好編譯。這個錯誤的認識往往使很多學(xué)生忽略了編譯實踐性的重要性,這對課程的學(xué)習(xí)是非常不利的。課程中涉及到的LL(1),LR(1)等算法思想復(fù)雜,學(xué)生雖然學(xué)習(xí)過數(shù)據(jù)結(jié)構(gòu)的一些算法,但對于編譯課程中的算法還是感到難理解、難實現(xiàn),這種情況給后續(xù)實驗帶來一定的困擾。

      (二)實驗內(nèi)容抽象

      大部分編譯原理教材中,對小型編譯器這個實踐環(huán)節(jié)都是用PL/0語言進行描述的。PL/0語言具有結(jié)構(gòu)清晰、功能簡單、可讀性強的特點,是計算機高級語言的模擬語言。學(xué)生沒有實際接觸過PL/0語言,對用其描述的編譯原理實驗內(nèi)容雖然容易理解,但和實驗內(nèi)容所選的編程語言是脫節(jié)的,不利于學(xué)生上機實現(xiàn)。

      (三)實驗內(nèi)容缺乏實踐性

      許多編譯原理課程的實驗內(nèi)容是對現(xiàn)有編譯器進行改進,這樣的實驗內(nèi)容不能使學(xué)生充分理解編譯器的原理,使學(xué)生對編譯原理的學(xué)習(xí)停留在表面理論上,無法理解其精髓和內(nèi)核理論。

      二、教學(xué)改革措施

      (一)因材施教,注重實驗教學(xué)

      在實際教學(xué)過程中,對不同專業(yè)、不同水平的學(xué)生可以采用不同的難易度教學(xué)。軟件工程專業(yè)和計算機科學(xué)技術(shù)專業(yè)的學(xué)生相比,就可以降低難度,注重實驗過程。這樣,就達到了因材施教,使學(xué)生在實驗過程中加深對理論的理解。

      為解決上述教學(xué)內(nèi)容中的問題,本著本科教育以培養(yǎng)實用技術(shù)人才為主的主導(dǎo)思想,堅持理論與實踐緊密結(jié)合的原則,將編譯原理的實驗教學(xué)與課堂教學(xué)內(nèi)容、教學(xué)模式、教學(xué)方法等多方面進行結(jié)合,創(chuàng)新性地提出了以課程設(shè)計為依托的教學(xué)改革措施。

      在充分研究制定編譯原理課程教學(xué)大綱及實驗大綱的基礎(chǔ)上,制定了大型綜合實驗的考核方案和實驗講義。提出了在計算機上做作業(yè)的理念,讓學(xué)生在學(xué)習(xí)理論的同時,親自上機將理論付諸實踐。從而有力地改善了高等教育理論與實踐嚴重脫節(jié)的情況,全面提高學(xué)生利用所學(xué)理論解決實際問題的能力、實際動手能力以及創(chuàng)新精神。使得學(xué)生將所學(xué)理論知識和實際應(yīng)用相結(jié)合,讓理論、應(yīng)用與實踐能夠相輔相承。編譯原理課程設(shè)計的開展,是教學(xué)改革的迫切需要,是全面提高學(xué)生素質(zhì)和培養(yǎng)創(chuàng)新人才的需要。

      (二)課程設(shè)計的主要內(nèi)容

      為配合編譯原理課程的教學(xué),培養(yǎng)學(xué)生的實際工作能力,加深對課堂教學(xué)內(nèi)容的理解,通過設(shè)計一個小型編譯器,使學(xué)生更深刻地領(lǐng)會其基本概念、基本工作原理和實現(xiàn)方法,從而具有初步開發(fā)系統(tǒng)軟件和應(yīng)用軟件的實際能力。

      編譯器是將一種語言翻譯為另一種語言的計算機程序。一個現(xiàn)代編譯器的主要工作流程:源代碼(source code)→預(yù)處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標代碼(object code)→鏈接器(Linker)→可執(zhí)行程序(executables)。編譯器的設(shè)計,深入地探討了編譯器設(shè)計方面的重要主題,包括詞法分析、語法分析、語法制導(dǎo)定義和語法制導(dǎo)翻譯、運行時刻環(huán)境、目標代碼生成、代碼優(yōu)化技術(shù)、并行性檢測以及過程間分析技術(shù),并強調(diào)編譯技術(shù)在軟件設(shè)計和開發(fā)中的廣泛應(yīng)用。主要由語言基礎(chǔ)知識、詞法分析、語法分析、中間代碼生成、代碼優(yōu)化、目標代碼生成、符號表的構(gòu)造和運行時存儲空間的組織等部分組成。

      具體內(nèi)容和要求如下:

      1.掌握某種語言源程序的結(jié)構(gòu)及構(gòu)成規(guī)則。

      2.掌握形式語言與自動機的概念,能構(gòu)造識別相應(yīng)符號串的自動機。

      3.掌握編譯程序的詞法分析程序的構(gòu)造。

      4.掌握語法分析技術(shù),構(gòu)造相應(yīng)的語法分析程序。

      5.掌握語法制導(dǎo)生成中間語言的算法。

      6.掌握編譯程序的代碼生成程序。

      學(xué)生在對PL/0語言某一掃描的分析程序或主程序進行修改或擴充時,保存完整的源程序正本,只須在相應(yīng)源文件副本上進行修改。然后再重新對修改的程序進行編譯,得到新的源文件和新的可執(zhí)行文件,并用來編譯用戶編制的含有增加或修改成分的新源程序。學(xué)生在詞法分析階段、語法分析階段、語義分析及代碼生成階段均要進行上機實踐,達到學(xué)以致用的目的。

      (三)實驗考核標準

      編譯原理課程設(shè)計共有8個實驗教學(xué)項目,學(xué)生完成所有實驗項目,就設(shè)計并實現(xiàn)了一個小型編譯器系統(tǒng)。

      實驗一:PL/O源程序結(jié)構(gòu)及構(gòu)成規(guī)則,要求學(xué)生用高級語言編寫程序建立和訪問正文文件,并用PL/O語言編寫程序,擴充規(guī)則。

      實驗二:構(gòu)造識別符號串的自動機,要求學(xué)生用高級語言實現(xiàn),分別編寫識別各類單詞的程序。

      實驗三:詞法分析程序的構(gòu)造,要求以PL/O編譯程序為樣本,改編其總控程序和詞法分析程序,使其能對擴充后的PL/O語言進行詞法分析。

      實驗四:語法分析程序的構(gòu)造,用高級語言編寫程序,使其能對算術(shù)表達式進行LL(1)、算符優(yōu)先的語法分析。

      實驗五:掌握語法制導(dǎo)生成中間語言的算法,用高級語言編寫程序,使其能將任意表達式翻譯成逆波蘭式,并用語法制導(dǎo)的方法生成表達式的四元式序列。

      實驗六:目標代碼生成,以PL/O編譯程序為樣本,改編總控制程序及代碼生成程序。

      實驗七:綜合設(shè)計,通過結(jié)構(gòu)化設(shè)計方法將上述各種程序綜合為一個完整的軟件系統(tǒng),以窗口、菜單做界面進入各個子系統(tǒng),最終實現(xiàn)編譯器的實現(xiàn)。

      (四)創(chuàng)新性的考核標準

      根據(jù)近10年的編譯原理課程設(shè)計的考核經(jīng)驗,在考核學(xué)生實驗時,創(chuàng)新性的將7個實驗項目分3次考核。第一次考核包括實驗一、二、三,占總分的30%。第二次考核包括實驗四、五,占總分的30%。第三次考核包括實驗六、七,占總分的30%,另外可以增加學(xué)生出勤和報告的考察,占總分的10%。具體的評分原則與優(yōu)勢有以下三點:

      1.要求學(xué)生選取一個PL/0小程序進行詞法分析,并且程序從文件中讀入,詞法分析結(jié)果存入到文件中,可以使學(xué)生練習(xí)編程中文件讀寫的操作。程序中每個單詞進行分類,可以使學(xué)生更好地理解和掌握自動機的思想,實現(xiàn)標識符自動機的構(gòu)造和無符號數(shù)自動機的構(gòu)造。符號表進行擴展,可以使學(xué)生更好地理解詞法分析的過程和原理。

      2.要求學(xué)生對簡單的算術(shù)表達式進行語法分析,可以更好地理解LL1語法分析過程。學(xué)生對PL/0程序進行語法分析,可以更好地掌握語法分析器的構(gòu)造原理。

      3.要求學(xué)生生成中間代碼和目標代碼,最終連接成一個完整的編譯器,使學(xué)生對編譯原理課程有了系統(tǒng)化的認識,將復(fù)雜的實驗項目概括為整體,更容易進行程序設(shè)計和實現(xiàn)。

      針對目前編譯原理課程教學(xué)中存在的問題,提出了因材施教,注重實驗教學(xué)的改革舉措。根據(jù)編譯原理課程設(shè)計的主要內(nèi)容和具體要求,設(shè)置合理的實驗考核標準以及經(jīng)過多年實踐摸索總結(jié)出的具體評分標準。

      [1]黃劍鋒.“編譯原理”教學(xué)內(nèi)容探討[J].電腦知識與技術(shù),2006.

      [2]黃賢英等.“編譯原理”課程的地位及教改思路[J].重慶科技學(xué)院學(xué)報(社會科學(xué)版),2005.

      [3]陳意云等.編譯原理(第2 版)[M].高等教育出版社,2008.

      猜你喜歡
      代碼生成詞法編譯器
      詞法 名詞、代詞和冠詞
      Lustre語言可信代碼生成器研究進展
      基于相異編譯器的安全計算機平臺交叉編譯環(huán)境設(shè)計
      應(yīng)用于詞法分析器的算法分析優(yōu)化
      談對外漢語“詞法詞”教學(xué)
      代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
      電子世界(2016年15期)2016-08-29 02:14:28
      基于XML的代碼自動生成工具
      電子科技(2015年2期)2015-12-20 01:09:20
      通用NC代碼編譯器的設(shè)計與實現(xiàn)
      2010年高考英語“相似”考題例析
      基于關(guān)系數(shù)據(jù)模型代碼生成器的設(shè)計與實現(xiàn)
      红安县| 阜南县| 乌拉特前旗| 神池县| 嵊州市| 余江县| 绥芬河市| 惠州市| 探索| 高碑店市| 宁南县| 裕民县| 郓城县| 贵南县| 天津市| 万山特区| 都匀市| 云梦县| 开鲁县| 自贡市| 邢台市| 梅州市| 明水县| 鸡泽县| 峨眉山市| 靖安县| 吐鲁番市| 岳西县| 固镇县| 正安县| 灯塔市| 靖边县| 清水河县| 高州市| 沙湾县| 镶黄旗| 孝昌县| 贺兰县| 商丘市| 苍溪县| 南康市|