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

語義分析和中間代碼產(chǎn)生教學(xué)過程研究

2008-12-31 00:00:00袁彩虹張連堂
計(jì)算機(jī)教育 2008年9期

文章編號(hào):1672-5913(2008)09-0059-02

摘要:本文針對(duì)“編譯原理”中語義分析和中間代碼產(chǎn)生部分的理論教學(xué),從教學(xué)手段、教學(xué)方法和教學(xué)過程等方面進(jìn)行了有益的探討和研究。

關(guān)鍵詞:編譯原理;語義分析和中間代碼產(chǎn)生;屬性文法

中圖分類號(hào):G642

文獻(xiàn)標(biāo)識(shí)碼:B

“編譯原理”是目前高等院校計(jì)算機(jī)各相關(guān)專業(yè)的一門必修課,課程本身理論性、抽象性較強(qiáng),而編譯過程的第三個(gè)階段——語義分析和中間代碼產(chǎn)生中涉及到的理論則更是抽象,以至于學(xué)生對(duì)各類語法結(jié)構(gòu)的屬性文法和翻譯過程無法正確理解和靈活掌握,更無法建立起編譯程序的整體概念。在這部分內(nèi)容的教學(xué)過程中,傳統(tǒng)的“滿堂灌”等教學(xué)方法會(huì)讓學(xué)生感覺一頭霧水,因此必須采用啟發(fā)式教學(xué),在教師的引導(dǎo)下,充分發(fā)揮學(xué)生的積極主動(dòng)性,讓他們積極參與到教學(xué)活動(dòng)中,使得教師對(duì)理論的教學(xué)更多地變成學(xué)生自身的感悟和體會(huì)。

1教學(xué)內(nèi)容總體設(shè)計(jì)

為了達(dá)到更好的教學(xué)效果,教師必須根據(jù)需要對(duì)教材中的信息加以整理和取舍,使教學(xué)內(nèi)容更集中,使學(xué)生關(guān)注于理論的核心,在課堂上掌握理論重點(diǎn),而不至于讓一些細(xì)枝末節(jié)的內(nèi)容分散注意力。我院采用的教材是陳火旺院士等編著的《程序設(shè)計(jì)語言編譯原理》,其中第六章是屬性文法和語法制導(dǎo)翻譯,第七章是語義分析和中間代碼產(chǎn)生。第六章作為第七章的理論基礎(chǔ),內(nèi)容較多,學(xué)生全部掌握有一定難度,因此作者在教學(xué)過程中只把和第七章密切相關(guān)的知識(shí)點(diǎn)作為課堂教學(xué)內(nèi)容,并講清講透。其中包括屬性文法的概念、如何區(qū)分綜合屬性和繼承屬性、什么是S-屬性文法以及如何進(jìn)行自下而上分析、什么是L-屬性文法以及如何進(jìn)行自上而下分析、翻譯模式的概念以及翻譯模式形式下的屬性文法如何進(jìn)行分析。第七章的課堂教學(xué)內(nèi)容包括中間代碼的形式、說明語句的翻譯、賦值語句和算術(shù)表達(dá)式的翻譯、布爾表達(dá)式的翻譯、控制流語句的翻譯,其他內(nèi)容留給有興趣的同學(xué)自學(xué)。

2屬性文法相關(guān)概念的教學(xué)過程

屬性文法對(duì)初學(xué)者來說不易理解,在講授時(shí),首先給學(xué)生看幾個(gè)屬性文法的例子,以便建立起直觀印象,然后再根據(jù)一個(gè)具體例子解釋語義規(guī)則和產(chǎn)生式的關(guān)聯(lián)性,進(jìn)而解釋屬性是什么,以及綜合屬性、繼承屬性是如何區(qū)分的,這樣學(xué)生更易理解和接受。在理解綜合屬性和繼承屬性區(qū)分的基礎(chǔ)上,掌握S-屬性文法和L-屬性文法的概念很容易,關(guān)鍵是自下而上分析和自上而下分析方法,教師在講授時(shí)可先通過一個(gè)例子進(jìn)行示范,然后再給學(xué)生時(shí)間完成相關(guān)的練習(xí),通過動(dòng)手動(dòng)腦,才能達(dá)到熟練掌握和靈活運(yùn)用的目的。

3語義分析和中間代碼產(chǎn)生的教學(xué)過程

語義分析和中間代碼產(chǎn)生主要是各類語法結(jié)構(gòu)(說明語句、賦值語句和算術(shù)表達(dá)式、布爾表達(dá)式、控制流語句) 的翻譯,這部分的內(nèi)容實(shí)際是第六章理論的應(yīng)用,然而大部分學(xué)生卻認(rèn)為難以理解和掌握,原因可能有兩個(gè):一是第六章的基礎(chǔ)理論掌握不牢,二是不知道如何運(yùn)用這些理論進(jìn)行語義分析。針對(duì)這個(gè)問題,講授過程中要注意了解學(xué)生對(duì)基礎(chǔ)理論的掌握情況并根據(jù)情況及時(shí)補(bǔ)充,給出語義分析的清晰可操作的步驟,根據(jù)學(xué)生情況講授一到兩種語法結(jié)構(gòu)的翻譯后,剩下的語法結(jié)構(gòu)翻譯過程可讓學(xué)生自己練習(xí),同時(shí)找出掌握程度好的學(xué)生走上講臺(tái)和同學(xué)交流,充分發(fā)揮學(xué)生的積極性,并可在激烈的討論中及時(shí)發(fā)現(xiàn)并解決問題。

講授時(shí),首先在黑板上或屏幕上給出理解一個(gè)屬性文法的方法,并要求學(xué)生做筆記:

(1) 確定翻譯方法;

(2) 畫出一棵語法分析樹;

(3) 了解必要函數(shù)的意義;

(4) 按照確定的翻譯方法進(jìn)行翻譯;

(5) 分析翻譯結(jié)果,理解屬性文法的整體作用;

(6) 在理解整體作用的基礎(chǔ)上,反復(fù)回顧整個(gè)翻譯過程,直至理解每個(gè)屬性的含義,理解每條產(chǎn)生式所配備語義規(guī)則的含義。

然后,通過具體例子介紹每一個(gè)步驟如何進(jìn)行操作。例如,利用布爾表達(dá)式的如下屬性文法進(jìn)行介紹。

產(chǎn)生式語義規(guī)則

E→E1 or E2E1.true:=E.true

E1.1:=newlable

E2.true:=E.true

E2.1:=E.1

E.code:=E1.code || gen(E1.1’:’) || E2.code

E→E1 and E2E1.true:=newlable

E1.1:=E.1

E2.true:=E.true

E2.1:=E.1

E.code:=E1.code || gen(E1.true’:’) || E2.code

E→not E1E1.true:=E.1

E1.1:=E.true

E.code:=E1.code

E→( E1) E1.true:=E true.

E1.1:=E. 1

E.code:=E1.code

E→id1 relop id2

E.code:=gen ( ‘if’ id1.place relop.op id2.place

‘goto’ E.true) || gen(‘goto’E.1)

按照給出的方法,一步步進(jìn)行解釋和說明:

(1) 引導(dǎo)學(xué)生觀察每條產(chǎn)生式對(duì)應(yīng)語義規(guī)則中計(jì)算的屬性是產(chǎn)生式左部文法符號(hào)還是右部文法符號(hào)的屬性,若計(jì)算的是產(chǎn)生式左部文法符號(hào)的屬性,則該屬性是綜合屬性,否則是繼承屬性;若屬性文法中所有屬性都是綜合的,則采用自下而上的翻譯方法,否則采用自上而下的翻譯方法。本例中,通過觀察發(fā)現(xiàn)true和1是繼承的,確定采用自上而下的翻譯方法。

(2) 畫出一棵語法分析樹,該步驟的目的有兩個(gè),一是明確該文法定義的語法結(jié)構(gòu),二是做好后續(xù)步驟翻譯的基礎(chǔ)。為了理解每條產(chǎn)生式對(duì)應(yīng)語義規(guī)則的含義,畫語法分析樹時(shí)應(yīng)盡可能用上所有的產(chǎn)生式。此時(shí)可以讓學(xué)生自己畫,同時(shí)教師在黑板上畫出一棵語法樹,便于后面的演示。例如本例中,語法分析樹可以如圖1所示。

圖1 語法分析樹

(3) 有些屬性文法里用了一些自定義的函數(shù),先要了解這些函數(shù)的意義,例如該屬性文法中有兩個(gè)函數(shù):

newlable:每調(diào)用一次產(chǎn)生一個(gè)標(biāo)號(hào),依次是L1,L2,…...;

gen(…):把括號(hào)里面的內(nèi)容輸出。

(4) 按照確定的方法進(jìn)行翻譯。采用自下而上翻譯時(shí),找到句柄歸約時(shí)求非終結(jié)符號(hào)對(duì)應(yīng)的綜合屬性值;若采用自上而下翻譯時(shí),表現(xiàn)在語法分析樹上是進(jìn)行一次深度優(yōu)先遍歷。本例的遍歷路線圖如圖2所示,第一次經(jīng)過某文法符號(hào)時(shí)計(jì)算繼承屬性,第二次經(jīng)過時(shí)計(jì)算綜合屬性,教師引導(dǎo)學(xué)生互動(dòng),共同完成教師畫出的語法分析樹上得翻譯,假設(shè)開始符號(hào)的兩個(gè)繼承屬性true和1的值分別為Ltrue和L1,得到生成的代碼如下:

if a>b goto L1

goto L1

L1: if c>d goto Ltrue

goto L2

L2: if e>f goto L1

goto Ltrue

之后,留給學(xué)生適量時(shí)間在自己畫出的語法樹上進(jìn)行翻譯并要求寫出翻譯結(jié)果。

圖2 自上而下分析線路圖

(5) 分析翻譯結(jié)果,理解屬性文法的整體作用。從輸入串a(chǎn)>b and c>d or e>f 和輸出結(jié)果分析,可以看出該屬性文法是布爾表達(dá)式作為條件控制時(shí)的情況,翻譯后是確定布爾式的真假出口,而不是得到布爾式的真假值。

(6) 知道了該屬性文法的整體作用后,將產(chǎn)生式和語義規(guī)則結(jié)合起來理解每條語義規(guī)則的含義。例如本例中,結(jié)合語法分析樹,一步步引導(dǎo)學(xué)生掌握將語法結(jié)構(gòu)和語義規(guī)則進(jìn)行結(jié)合的方法。

參考文獻(xiàn)

[1] 薛維明等. 中學(xué)計(jì)算機(jī)教學(xué)法[M].北京:清華大學(xué)出版社,1999.

[2] 陳火旺,劉春林,譚慶平等. 編譯原理(第3版)[M]. 北京:國防工業(yè)出版社,2000.

[3] 陳意云. 編譯原理和技術(shù)[M]. 合肥:中國科學(xué)技術(shù)大學(xué)出版社,1997.

主站蜘蛛池模板: 欧美特黄一免在线观看| 国产精品不卡片视频免费观看| 国产欧美性爱网| 国产免费人成视频网| 国产精品亚洲一区二区三区z| 亚洲男人的天堂在线| 亚洲精品图区| a毛片在线| 制服丝袜亚洲| 狠狠综合久久| 免费jjzz在在线播放国产| 国产区精品高清在线观看| 国产jizz| 亚洲无码91视频| 91精品国产无线乱码在线| 18禁黄无遮挡免费动漫网站| 波多野结衣国产精品| 99视频精品全国免费品| 99er精品视频| 女人18一级毛片免费观看| 热久久国产| www中文字幕在线观看| 国产白浆视频| 欧美色视频日本| 国产福利一区视频| 又爽又大又光又色的午夜视频| 国产精品亚洲精品爽爽| 国产无码网站在线观看| 91精品视频播放| 国产H片无码不卡在线视频| 人妻出轨无码中文一区二区| 婷婷色狠狠干| 国产成人乱码一区二区三区在线| 亚洲黄色网站视频| 国产鲁鲁视频在线观看| 18禁黄无遮挡网站| 日本欧美中文字幕精品亚洲| 直接黄91麻豆网站| 亚洲成人黄色在线观看| 欧美一级大片在线观看| 国产成人你懂的在线观看| 成人在线亚洲| 久久伊伊香蕉综合精品| 国产精品极品美女自在线| 久久精品亚洲专区| 婷婷丁香色| 免费一级毛片在线观看| 久久中文字幕2021精品| 欧美国产在线看| 亚洲天堂网在线播放| 喷潮白浆直流在线播放| 欧美日韩国产成人高清视频| 免费视频在线2021入口| 亚洲三级视频在线观看| 成人永久免费A∨一级在线播放| 五月激情婷婷综合| 玖玖精品视频在线观看| 精品人妻系列无码专区久久| 久久久精品久久久久三级| 58av国产精品| 一级福利视频| 国产成人1024精品| 欧美午夜性视频| 香蕉视频在线观看www| 男女精品视频| av一区二区三区高清久久| 欧美三级日韩三级| 婷婷午夜天| 午夜老司机永久免费看片| 在线免费观看AV| 国产精品第三页在线看| 在线观看国产黄色| 国产精品欧美日本韩免费一区二区三区不卡| 亚洲精品国偷自产在线91正片| 国产性爱网站| 91久草视频| 国产在线精品香蕉麻豆| 看av免费毛片手机播放| 一区二区偷拍美女撒尿视频| 毛片久久网站小视频| 国产午夜福利片在线观看| 操操操综合网|