職業(yè)教育論文-《編譯原理》教學(xué)過程中的思考與探討.doc_第1頁
職業(yè)教育論文-《編譯原理》教學(xué)過程中的思考與探討.doc_第2頁
職業(yè)教育論文-《編譯原理》教學(xué)過程中的思考與探討.doc_第3頁
職業(yè)教育論文-《編譯原理》教學(xué)過程中的思考與探討.doc_第4頁
職業(yè)教育論文-《編譯原理》教學(xué)過程中的思考與探討.doc_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

職業(yè)教育論文-編譯原理教學(xué)過程中的思考與探討【摘要】本文對編譯原理教學(xué)過程中出現(xiàn)的一系列問題進行了分析,并根據(jù)實踐,對編譯原理課程的課堂教學(xué)和實驗教學(xué)進行了思考和探索?!娟P(guān)鍵詞】編譯原理教學(xué)過程課堂教學(xué)實驗教學(xué)一、前言編譯原理是高等院校本科教育計算機專業(yè)中一門非常有用的核心課程之一,它對培養(yǎng)學(xué)生的抽象思維能力、獨立解決復(fù)雜問題的能力以及增強編寫和調(diào)試程序的能力等方面起著很大作用。但是,接觸過編譯原理的學(xué)生和老師都知道編譯原理是一門難學(xué)難教的課程。這門課程的內(nèi)容比較抽象,理論性很強,不容易理解,而且對實踐也有較高的要求。學(xué)生普遍認為編譯原理不實用,因而也就缺乏了學(xué)習(xí)的熱情與積極性,存在畏難情緒。如何在教學(xué)過程中激發(fā)學(xué)生的興趣,并解決教學(xué)中出現(xiàn)的一些問題,我覺得可以從以下幾個方面去思考與探討。二、認清編譯原理,明確學(xué)習(xí)意義,激發(fā)學(xué)生的熱情1.幫助學(xué)生認清編譯原理的作用和地位在教學(xué)過程中,很多學(xué)生都有這樣的疑問:編譯原理學(xué)的是什么?學(xué)習(xí)它有什么作用?我們知道,目前的計算機能執(zhí)行的都是非常低級的機器語言,一個用高級語言編寫的源程序最終如何在計算機上執(zhí)行呢?這就是編譯原理要解決的問題。概括地說,編譯原理課程介紹編譯器構(gòu)造的一般原理、基本設(shè)計方法和主要實現(xiàn)技術(shù)。編譯原理課程通過編譯器的各個組成部分來解釋高級語言編寫的源程序如何翻譯成計算機能夠執(zhí)行的機器語言。這個翻譯的過程涉及程序設(shè)計語言、機器結(jié)構(gòu)、形式語言理論、類型論、算法和軟件工程等方面的知識。例如,對軟件工程來說,編譯程序是一個很好的實例(基本設(shè)計、模塊劃分、基于事件驅(qū)動的編程等),編譯原理課程所介紹的概念和技術(shù)可以用到一般的軟件設(shè)計中。事實上,通過編譯原理的學(xué)習(xí),有助于學(xué)生快速理解、定位和解決在程序編譯、測試與運行中出現(xiàn)的問題。另外,編譯原理的學(xué)習(xí)對熟悉編譯過程、掌握計算機高級語言的生成機制、理解具體程序的運行狀態(tài)起著關(guān)鍵作用。2.幫助學(xué)生克服畏難心理,提高學(xué)生的興趣在教學(xué)的過程中,很多學(xué)生認為他們今后的工作不會涉及到編譯原理的理論和技術(shù),編譯原理沒有實際的用處,學(xué)習(xí)起來就非常的枯燥無味。其實這是對編譯原理的一種錯誤認識。該課程中的原理除了可以用于分析編譯器以外,還對諸如人工智能、并行處理技術(shù)等課程的學(xué)習(xí)具有指導(dǎo)作用。例如,利用編譯原理的理論設(shè)計出“翻譯風”這樣的軟件。與此同時編譯原理課程可以幫助學(xué)生更進一步地理解和綜合應(yīng)用離散數(shù)學(xué)、高級語言、數(shù)據(jù)結(jié)構(gòu)、匯編語言等專業(yè)基礎(chǔ)課程的知識。例如,編譯程序應(yīng)用了多種數(shù)據(jù)結(jié)構(gòu),在詞法分析階段使用狀態(tài)轉(zhuǎn)換圖來識別各種單詞;在語法分析中使用語法樹等來進行語法分析;在存儲分配時使用棧式結(jié)構(gòu)和堆式結(jié)構(gòu)進行存儲空間的分配。本門課程學(xué)習(xí)對其它課程的學(xué)習(xí)和今后很多領(lǐng)域的理論研究具有深遠的意義,如計算機軟件技術(shù)領(lǐng)域、計算機系統(tǒng)結(jié)構(gòu)領(lǐng)域、人工智能系統(tǒng)的機器學(xué)習(xí)領(lǐng)域、并行處理技術(shù)等領(lǐng)域。鑒于“編譯原理”這門專業(yè)課程的特點,在教學(xué)過程中端正學(xué)生的認識,幫助學(xué)生克服畏難情緒,肯定學(xué)生所具有的能力,讓學(xué)生明白以他們掌握的計算機知識,有足夠的能力學(xué)好編譯原理這門課程。鼓勵他們同樣可以利用學(xué)到的理論技術(shù)設(shè)計出類似“翻譯風”這樣的軟件,幫助學(xué)生建立信心,發(fā)揮他們的才智,提高學(xué)習(xí)的熱情。三、把握課堂教學(xué)內(nèi)容1.整體把握一條主線,領(lǐng)會每個階段的精髓,各個擊破編譯器(編譯程序)可以分為詞法分析、語法分析、語義分析、中間代碼生成,代碼優(yōu)化和目標代碼生成這六個階段,每個階段還會伴有符號表管理和出錯管理。在第一章編譯器概述中就把編譯器化分成這六個階段,同時還簡要的描述了這六個階段各自的任務(wù),這是貫穿整個課程的一個主線,整個課程就是按這六個階段組織進行的。所以一開始讓學(xué)生把握這條主線,對課程有一個總體的把握,理解編譯的過程。當學(xué)生從整體上理解編譯器的結(jié)構(gòu)之后,然后分章節(jié)對各個部分進行細致地教學(xué)。按照編譯過程的劃分,把課程分為六章內(nèi)容,每章都有它的精髓所在,只要掌握了每章的精髓,就能掌握編譯的整個過程。詞法分析的精髓主要是詞法分析的構(gòu)造、有限自動機理論的應(yīng)用;語法分析的精髓主要是語法分析的兩種方法自上而下分析法和自下而上分析法;語義分析主要是屬性文法、語法制導(dǎo)定義以及翻譯方案;中間代碼主要描述了中間代碼常見的幾種表示形式、各種語法結(jié)構(gòu)如何進行語法制導(dǎo)翻譯形成中間代碼;代碼優(yōu)化主要圍繞如何從時間和空間上進行優(yōu)化,盡可能提高執(zhí)行的效率展開,分別講述了局部優(yōu)化和循環(huán)優(yōu)化;目標代碼生成主要是目標代碼生成算法的實現(xiàn)及寄存器的分配。這六個部分相輔相成,互有聯(lián)系,掌握每個階段的精髓,各個擊破,這樣學(xué)生比較容易理解和接受。2.課堂討論式在編譯原理的教學(xué)過程中,課堂上不能采取“灌輸式”教學(xué),上面老師講解的充滿激情,下面學(xué)生聽得昏昏欲睡,隨著時間的積累,學(xué)生不理解的知識越來越多,就會慢慢失去學(xué)習(xí)的興趣。所以,要注重與學(xué)生的交流,在課堂上可以采取集體討論和分析的方法,讓學(xué)生說出自己在學(xué)習(xí)的過程遇到的問題以及解決問題的方法。例如,數(shù)據(jù)對齊是由硬件特點造成的對存儲分配的一點約束,這個概念有的教材并沒有提到或者只是一帶而過。針對數(shù)據(jù)對齊問題,有一個C語言的例子:typedefstructacharcl;longi;charc2;doublef;a;typedefstruct_bcharcl;charc2;longi;doublef;)b;main()printf(“Sizeofdouble,long,char=%d,%d,%dn”,sizeof(double),sizeof(long),sizeof(char);printf(“Sizeofa,b=%d,%dn,sizeof(a),sizeof(b);在X86/Linux機器上,該程序的運行的結(jié)果是:Sizeofdouble,long,char=8,4,1Sizeofa,b=20,16在SPARC/Solaris工作站上,該程序的運行結(jié)果是:Sizeofdouble,long,char=8,4,1Sizeofa,b=24,16在這個例子中,結(jié)構(gòu)體類型a和b的域名及類型都一樣,僅次序不同,但是它們在同一機器上的存儲分配字節(jié)數(shù)不一樣,在不同機器上的情況也不一樣。有的學(xué)生就會問為什么會要考慮數(shù)據(jù)對齊的問題?這時候,老師可以指導(dǎo)學(xué)生課后搜集相關(guān)資料,然后進行課堂討論分析。其實,數(shù)據(jù)對齊對用C語言編程、對構(gòu)造編譯器、對C程序的移植來說都是重要的。利用這樣的例子考察實際編譯器存儲分配的對齊情況,讓學(xué)生明白存儲分配時要考慮到數(shù)據(jù)對齊以及數(shù)據(jù)對齊的作用。讓學(xué)生自己去探索,不僅明白了概念的重要性,增強了學(xué)生的理解和應(yīng)用能力,拓寬了知識面,而且培養(yǎng)了學(xué)生思考問題和解決問題的能力,培養(yǎng)了科學(xué)嚴謹?shù)乃季S能力。四、精心設(shè)計實驗教學(xué)內(nèi)容編譯原理對實踐的要求比較高,所以實驗課是培養(yǎng)學(xué)生實踐能力的重要環(huán)節(jié),是鞏固和驗證所學(xué)理論知識,培養(yǎng)學(xué)生分析問題、解決問題能力的重要環(huán)節(jié)。但是在教學(xué)的過程中,絕大部分學(xué)生無法完成編譯原理的實驗。即使告訴學(xué)生實驗的思路和算法,有的還是不知如何入手,整個實驗的效果很差。為了能達到好的實驗效果,極大地促進學(xué)生對原理的理解,可以從以下幾個方面思考:1.認真設(shè)計合適的實驗內(nèi)容編譯技術(shù)中有很多經(jīng)典的算法,由于課時有限,可以選擇具有代表性的典型算法來實現(xiàn)。根據(jù)課程的特點和大綱的要求,可以設(shè)置三個實驗內(nèi)容:詞法分析器的設(shè)計、遞歸下降分析器的設(shè)計、LR(0)分析器的設(shè)計。很多教材中都有相關(guān)的設(shè)計算法和程序代碼片斷,這樣降低了編譯原理實驗課的難度。另外,根據(jù)老師可以根據(jù)的實驗效果對實驗內(nèi)容再做適當調(diào)整。2.采用適當?shù)膶嶒炐问礁鶕?jù)課程的重難點和實驗覆蓋的知識點不同,將編譯原理的實驗內(nèi)容分為兩大部分:獨立實驗和分組實驗。在實驗的過程中,將詞法分析器的設(shè)計和遞歸下降分析器的設(shè)計作為獨立的實驗,由每一個學(xué)生自己獨立完成,而將LR(0)分析器的設(shè)計作為分組實驗。分組實驗以學(xué)生自由組合的小組形式為單位進行,一般一個小組由3至4名學(xué)生組成,并推薦一人作為組長,負責師生之間的聯(lián)系,采用分組實驗的形式鍛煉了團隊分工協(xié)作的能力,培養(yǎng)了團隊精神。3.教師的耐心指導(dǎo)教師在實驗過程中的指導(dǎo)也很重要。教師對學(xué)生的指導(dǎo)要細心認真,讓學(xué)生記錄下每次實驗的輸入和輸出形式,實現(xiàn)理論與實踐的結(jié)合,注意調(diào)動學(xué)生的積極性,引導(dǎo)他們獨立思考、獨立完成;另外,更要加強實驗結(jié)果的監(jiān)督,提高實驗教學(xué)質(zhì)量。五、結(jié)束語以上結(jié)合自己的教學(xué)實際,在編譯原理的課堂教學(xué)和實驗教學(xué)中的一些思考。事實上學(xué)好編譯原理課程需要老師和學(xué)生雙方的共同努力,需要我們共同不斷的思考、探索、實踐和積累。參考文獻:1張昱,陳意云,鄭啟龍.編譯原理課

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論