中文字幕高清在线,中文字幕在线电影观看,中文字幕在线看,免费国产一区二区三区,男攻调教双性男总裁,热热涩热热狠狠色香蕉综合,亚洲精品网站在线观看不卡无广告

《編譯原理》教學(xué)過程中的思考與探討論文

時(shí)間:2021-07-05 08:36:55 論文 我要投稿

《編譯原理》教學(xué)過程中的思考與探討論文

  【摘 要】本文對(duì)《編譯原理》教學(xué)過程中出現(xiàn)的一系列問題進(jìn)行了分析,并根據(jù)實(shí)踐,對(duì)編譯原理課程的課堂教學(xué)和實(shí)驗(yàn)教學(xué)進(jìn)行了思考和探索。

《編譯原理》教學(xué)過程中的思考與探討論文

  【關(guān)鍵詞】編譯原理 教學(xué)過程 課堂教學(xué) 實(shí)驗(yàn)教學(xué)

  一、前言

  《編譯原理》是高等院校本科教育計(jì)算機(jī)專業(yè)中一門非常有用的核心課程之一,它對(duì)培養(yǎng)學(xué)生的抽象思維能力、獨(dú)立解決復(fù)雜問題的能力以及增強(qiáng)編寫和調(diào)試程序的能力等方面起著很大作用。但是,接觸過編譯原理的學(xué)生和老師都知道《編譯原理》是一門難學(xué)難教的課程。這門課程的內(nèi)容比較抽象,理論性很強(qiáng),不容易理解,而且對(duì)實(shí)踐也有較高的要求。學(xué)生普遍認(rèn)為編譯原理不實(shí)用,因而也就缺乏了學(xué)習(xí)的熱情與積極性,存在畏難情緒。如何在教學(xué)過程中激發(fā)學(xué)生的興趣,并解決教學(xué)中出現(xiàn)的一些問題,我覺得可以從以下幾個(gè)方面去思考與探討。

  二、認(rèn)清編譯原理,明確學(xué)習(xí)意義,激發(fā)學(xué)生的熱情

  1.幫助學(xué)生認(rèn)清編譯原理的作用和地位

  在教學(xué)過程中,很多學(xué)生都有這樣的疑問:編譯原理學(xué)的是什么?學(xué)習(xí)它有什么作用?

  我們知道,目前的計(jì)算機(jī)能執(zhí)行的都是非常低級(jí)的機(jī)器語言,一個(gè)用高級(jí)語言編寫的源程序最終如何在計(jì)算機(jī)上執(zhí)行呢?這就是編譯原理要解決的問題。概括地說,編譯原理課程介紹編譯器構(gòu)造的一般原理、基本設(shè)計(jì)方法和主要實(shí)現(xiàn)技術(shù)。編譯原理課程通過編譯器的各個(gè)組成部分來解釋高級(jí)語言編寫的源程序如何翻譯成計(jì)算機(jī)能夠執(zhí)行的機(jī)器語言。這個(gè)翻譯的過程涉及程序設(shè)計(jì)語言、機(jī)器結(jié)構(gòu)、形式語言理論、類型論、算法和軟件工程等方面的知識(shí)。例如,對(duì)軟件工程來說,編譯程序是一個(gè)很好的實(shí)例(基本設(shè)計(jì)、模塊劃分、基于事件驅(qū)動(dòng)的編程等),編譯原理課程所介紹的概念和技術(shù)可以用到一般的軟件設(shè)計(jì)中。

  事實(shí)上,通過編譯原理的學(xué)習(xí),有助于學(xué)生快速理解、定位和解決在程序編譯、測(cè)試與運(yùn)行中出現(xiàn)的問題。另外,編譯原理的學(xué)習(xí)對(duì)熟悉編譯過程、掌握計(jì)算機(jī)高級(jí)語言的生成機(jī)制、理解具體程序的運(yùn)行狀態(tài)起著關(guān)鍵作用。

  2.幫助學(xué)生克服畏難心理,提高學(xué)生的興趣

  在教學(xué)的過程中,很多學(xué)生認(rèn)為他們今后的工作不會(huì)涉及到編譯原理的理論和技術(shù),編譯原理沒有實(shí)際的用處,學(xué)習(xí)起來就非常的枯燥無味。其實(shí)這是對(duì)編譯原理的一種錯(cuò)誤認(rèn)識(shí)。該課程中的原理除了可以用于分析編譯器以外,還對(duì)諸如人工智能、并行處理技術(shù)等課程的`學(xué)習(xí)具有指導(dǎo)作用。例如,利用編譯原理的理論設(shè)計(jì)出“翻譯風(fēng)”這樣的軟件。與此同時(shí)編譯原理課程可以幫助學(xué)生更進(jìn)一步地理解和綜合應(yīng)用離散數(shù)學(xué)、高級(jí)語言、數(shù)據(jù)結(jié)構(gòu)、匯編語言等專業(yè)基礎(chǔ)課程的知識(shí)。例如,編譯程序應(yīng)用了多種數(shù)據(jù)結(jié)構(gòu),在詞法分析階段使用狀態(tài)轉(zhuǎn)換圖來識(shí)別各種單詞;在語法分析中使用語法樹等來進(jìn)行語法分析;在存儲(chǔ)分配時(shí)使用棧式結(jié)構(gòu)和堆式結(jié)構(gòu)進(jìn)行存儲(chǔ)空間的分配。本門課程學(xué)習(xí)對(duì)其它課程的學(xué)習(xí)和今后很多領(lǐng)域的理論研究具有深遠(yuǎn)的意義,如計(jì)算機(jī)軟件技術(shù)領(lǐng)域、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)領(lǐng)域、人工智能系統(tǒng)的機(jī)器學(xué)習(xí)領(lǐng)域、并行處理技術(shù)等領(lǐng)域。

  鑒于“編譯原理”這門專業(yè)課程的特點(diǎn),在教學(xué)過程中端正學(xué)生的認(rèn)識(shí),幫助學(xué)生克服畏難情緒,肯定學(xué)生所具有的能力,讓學(xué)生明白以他們掌握的計(jì)算機(jī)知識(shí),有足夠的能力學(xué)好《編譯原理》這門課程。鼓勵(lì)他們同樣可以利用學(xué)到的理論技術(shù)設(shè)計(jì)出類似“翻譯風(fēng)”這樣的軟件,幫助學(xué)生建立信心,發(fā)揮他們的才智,提高學(xué)習(xí)的熱情。

  三、把握課堂教學(xué)內(nèi)容

  1.整體把握一條主線,領(lǐng)會(huì)每個(gè)階段的精髓,各個(gè)擊破

  編譯器(編譯程序)可以分為詞法分析、語法分析、語義分析、中間代碼生成,代碼優(yōu)化和目標(biāo)代碼生成這六個(gè)階段,每個(gè)階段還會(huì)伴有符號(hào)表管理和出錯(cuò)管理。在第一章編譯器概述中就把編譯器化分成這六個(gè)階段,同時(shí)還簡(jiǎn)要的描述了這六個(gè)階段各自的任務(wù),這是貫穿整個(gè)課程的一個(gè)主線,整個(gè)課程就是按這六個(gè)階段組織進(jìn)行的。所以一開始讓學(xué)生把握這條主線,對(duì)課程有一個(gè)總體的把握,理解編譯的過程。

  當(dāng)學(xué)生從整體上理解編譯器的結(jié)構(gòu)之后,然后分章節(jié)對(duì)各個(gè)部分進(jìn)行細(xì)致地教學(xué)。按照編譯過程的劃分,把課程分為六章內(nèi)容,每章都有它的精髓所在,只要掌握了每章的精髓,就能掌握編譯的整個(gè)過程。詞法分析的精髓主要是詞法分析的構(gòu)造、有限自動(dòng)機(jī)理論的應(yīng)用;語法分析的精髓主要是語法分析的兩種方法——自上而下分析法和自下而上分析法;語義分析主要是屬性文法、語法制導(dǎo)定義以及翻譯方案;中間代碼主要描述了中間代碼常見的幾種表示形式、各種語法結(jié)構(gòu)如何進(jìn)行語法制導(dǎo)翻譯形成中間代碼;代碼優(yōu)化主要圍繞如何從時(shí)間和空間上進(jìn)行優(yōu)化,盡可能提高執(zhí)行的效率展開,分別講述了局部?jī)?yōu)化和循環(huán)優(yōu)化;目標(biāo)代碼生成主要是目標(biāo)代碼生成算法的實(shí)現(xiàn)及寄存器的分配。這六個(gè)部分相輔相成,互有聯(lián)系,掌握每個(gè)階段的精髓,各個(gè)擊破,這樣學(xué)生比較容易理解和接受。

  2.課堂討論式

  在《編譯原理》的教學(xué)過程中,課堂上不能采取“灌輸式”教學(xué),上面老師講解的充滿激情,下面學(xué)生聽得昏昏欲睡,隨著時(shí)間的積累,學(xué)生不理解的知識(shí)越來越多,就會(huì)慢慢失去學(xué)習(xí)的興趣。所以,要注重與學(xué)生的交流,在課堂上可以采取集體討論和分析的方法,讓學(xué)生說出自己在學(xué)習(xí)的過程遇到的問題以及解決問題的方法。例如,數(shù)據(jù)對(duì)齊是由硬件特點(diǎn)造成的對(duì)存儲(chǔ)分配的一點(diǎn)約束,這個(gè)概念有的教材并沒有提到或者只是一帶而過。針對(duì)數(shù)據(jù)對(duì)齊問題,有一個(gè)C語言的例子:

  typedef struct a

  { char cl ;

  long i;

  char c2;

  double f;

  }a ;

  typedef struct_b

  { char cl;

  char c2;

  long i;

  double f;

  )b ;

  main ( )

  { printf( “Sizeof double,long,char= %d, %d , %d ”,sizeof(double) , siz eof( long),sizeof(char));

  printf (“ Sizeof a ,b =%d, %d ,sizeof(a), sizeof(b)) ;

  }

  在X86/Linux機(jī)器上,該程序的運(yùn)行的結(jié)果是:

  Size of double,long,char= 8,4,1

  Size of a, b = 20,16

  在SPARC/Solaris工作站上,該程序的運(yùn)行結(jié)果是:

  Sizeof double,long,char=8,4 ,1

  Sizeof a,b = 24,16

  在這個(gè)例子中,結(jié)構(gòu)體類型a和b的域名及類型都一樣,僅次序不同,但是它們?cè)谕粰C(jī)器上的存儲(chǔ)分配字節(jié)數(shù)不一樣,在不同機(jī)器上的情況也不一樣。有的學(xué)生就會(huì)問為什么會(huì)要考慮數(shù)據(jù)對(duì)齊的問題?這時(shí)候,老師可以指導(dǎo)學(xué)生課后搜集相關(guān)資料,然后進(jìn)行課堂討論分析。

  其實(shí),數(shù)據(jù)對(duì)齊對(duì)用C語言編程、對(duì)構(gòu)造編譯器、對(duì)C程序的移植來說都是重要的。利用這樣的例子考察實(shí)際編譯器存儲(chǔ)分配的對(duì)齊情況,讓學(xué)生明白存儲(chǔ)分配時(shí)要考慮到數(shù)據(jù)對(duì)齊以及數(shù)據(jù)對(duì)齊的作用。讓學(xué)生自己去探索,不僅明白了概念的重要性,增強(qiáng)了學(xué)生的理解和應(yīng)用能力,拓寬了知識(shí)面,而且培養(yǎng)了學(xué)生思考問題和解決問題的能力,培養(yǎng)了科學(xué)嚴(yán)謹(jǐn)?shù)乃季S能力。

  四、精心設(shè)計(jì)實(shí)驗(yàn)教學(xué)內(nèi)容

  《編譯原理》對(duì)實(shí)踐的要求比較高,所以實(shí)驗(yàn)課是培養(yǎng)學(xué)生實(shí)踐能力的重要環(huán)節(jié),是鞏固和驗(yàn)證所學(xué)理論知識(shí),培養(yǎng)學(xué)生分析問題、解決問題能力的重要環(huán)節(jié)。但是在教學(xué)的過程中,絕大部分學(xué)生無法完成編譯原理的實(shí)驗(yàn)。即使告訴學(xué)生實(shí)驗(yàn)的思路和算法,有的還是不知如何入手,整個(gè)實(shí)驗(yàn)的效果很差。為了能達(dá)到好的實(shí)驗(yàn)效果,極大地促進(jìn)學(xué)生對(duì)原理的理解,可以從以下幾個(gè)方面思考:

  1.認(rèn)真設(shè)計(jì)合適的實(shí)驗(yàn)內(nèi)容

  編譯技術(shù)中有很多經(jīng)典的算法,由于課時(shí)有限,可以選擇具有代表性的典型算法來實(shí)現(xiàn)。根據(jù)課程的特點(diǎn)和大綱的要求,可以設(shè)置三個(gè)實(shí)驗(yàn)內(nèi)容:詞法分析器的設(shè)計(jì)、遞歸下降分析器的設(shè)計(jì)、LR(0)分析器的設(shè)計(jì)。很多教材中都有相關(guān)的設(shè)計(jì)算法和程序代碼片斷,這樣降低了《編譯原理》實(shí)驗(yàn)課的難度。另外,根據(jù)老師可以根據(jù)的實(shí)驗(yàn)效果對(duì)實(shí)驗(yàn)內(nèi)容再做適當(dāng)調(diào)整。

  2.采用適當(dāng)?shù)膶?shí)驗(yàn)形式

  根據(jù)課程的重難點(diǎn)和實(shí)驗(yàn)覆蓋的知識(shí)點(diǎn)不同,將《編譯原理》的實(shí)驗(yàn)內(nèi)容分為兩大部分:獨(dú)立實(shí)驗(yàn)和分組實(shí)驗(yàn)。

  在實(shí)驗(yàn)的過程中,將詞法分析器的設(shè)計(jì)和遞歸下降分析器的設(shè)計(jì)作為獨(dú)立的實(shí)驗(yàn),由每一個(gè)學(xué)生自己獨(dú)立完成,而將LR(0)分析器的設(shè)計(jì)作為分組實(shí)驗(yàn)。分組實(shí)驗(yàn)以學(xué)生自由組合的小組形式為單位進(jìn)行,一般一個(gè)小組由3至4名學(xué)生組成,并推薦一人作為組長,負(fù)責(zé)師生之間的聯(lián)系,采用分組實(shí)驗(yàn)的形式鍛煉了團(tuán)隊(duì)分工協(xié)作的能力,培養(yǎng)了團(tuán)隊(duì)精神。

  3.教師的耐心指導(dǎo)

  教師在實(shí)驗(yàn)過程中的指導(dǎo)也很重要。教師對(duì)學(xué)生的指導(dǎo)要細(xì)心認(rèn)真,讓學(xué)生記錄下每次實(shí)驗(yàn)的輸入和輸出形式,實(shí)現(xiàn)理論與實(shí)踐的結(jié)合,注意調(diào)動(dòng)學(xué)生的積極性,引導(dǎo)他們獨(dú)立思考、獨(dú)立完成;另外,更要加強(qiáng)實(shí)驗(yàn)結(jié)果的監(jiān)督,提高實(shí)驗(yàn)教學(xué)質(zhì)量。

  五、結(jié)束語

  以上結(jié)合自己的教學(xué)實(shí)際,在編譯原理的課堂教學(xué)和實(shí)驗(yàn)教學(xué)中的一些思考。事實(shí)上學(xué)好編譯原理課程需要老師和學(xué)生雙方的共同努力,需要我們共同不斷的思考、探索、實(shí)踐和積累。

  參考文獻(xiàn):

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

  [2]余瑪俐,張海.《編譯原理》教學(xué)方法探析[J].九江學(xué)院學(xué)報(bào)(自然科學(xué)版),2005,(4):114-118.

  [3]陳意云,張昱.編譯原理[M].高等教育出版社,2003.

  [4]陳意云,張昱.編譯原理習(xí)題精選[M].中國科學(xué)技術(shù)大學(xué)出版社,2002.

  [5]侯惠芳.《編譯原理》課程教改探討[J].科技信息,2007,(17):152.193.

【《編譯原理》教學(xué)過程中的思考與探討論文】相關(guān)文章:

編譯原理小論文03-30

編譯原理實(shí)驗(yàn)課程教學(xué)設(shè)計(jì)的改進(jìn)論文07-03

編譯原理期末總結(jié)復(fù)習(xí)05-24

編譯原理知識(shí)點(diǎn)總結(jié)03-30

歌唱中的發(fā)聲原理探討論文05-12

DSP原理及應(yīng)用實(shí)驗(yàn)教學(xué)的研究與探討論文07-02

航空雷達(dá)和通信原理課程教學(xué)設(shè)計(jì)的幾點(diǎn)思考論文09-09

編譯原理的學(xué)習(xí)心得體會(huì)03-19

對(duì)統(tǒng)計(jì)專業(yè)投資學(xué)原理教學(xué)改革的幾點(diǎn)思考論文11-12