




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中國地質大學(北京) 期末考試論文專用課程名稱:世界文化與自然遺產概論 班號: 學號: 姓名: 成績: 任課教師: 孫克勤 日期: 2014 年 10 月 18 日中國地質大學(北京)課程期末考查論文(讀書報告)課程名稱:世界文化與自然遺產概論任課教師:孫克勤課程屬性:校公選課學 時:32開課院系:地球科學與資源學院開課時間:2010年9月12月摘 要:本文通過分析莫高窟和蘇州古典園林兩個典型案例,展示了中國的世界文化遺產風采的同時揭示了遺產保護工作的重要和緊迫。我們應該把保護放到第一位,利用放在第二位,在充分保護的前提下進行適度的開發(fā)利用,不斷地改進和完善保護工作,以促使人和自然、文化和環(huán)境
2、的和諧發(fā)展。關鍵詞:世界文化與自然遺產 現狀 可持續(xù)發(fā)展 莫高窟 蘇州古典園林緒論世界遺產是指被聯合國教科文組織和世界遺產委員會確認的人類罕見的、目前無法替代的財富,是全人類公認的具有突出意義和普遍價值的文物古跡及自然景觀。狹義的世界遺產包括“世界文化遺產”、“世界自然遺產”、“世界文化與自然遺產”和“文化景觀”四類。廣義概念,根據形態(tài)和性質,世界遺產分為文化遺產、自然遺產、文化和自然雙重遺產、記憶遺產、人類口述和非物質遺產(簡稱非物質文化遺產)、文化景觀遺產。為了保護世界文化和自然遺產,聯合國教科文組織于1972年11月16日在第十七次大會上正式通過了保護世界文化和自然遺產公約(以下簡稱公約
3、)。1976年,世界遺產委員會成立,并建立了世界遺產名錄。隨著“世界遺產”一詞逐漸走入人們的生活,一些因世界遺產地開發(fā)不當導致的環(huán)境問題也引發(fā)了人們的關注。世界文化與自然遺產的開發(fā)與保護的問題的重要性不容置疑,我們應該重視世界文化與自然遺產的管理和可持續(xù)發(fā)展。莫高窟2.1特征介紹莫高窟,俗稱千佛洞,坐落在河西走廊西端的敦煌。它始建于十六國的前秦時期,歷經十六國、北朝、隋、唐、五代、西夏、元等歷代的興建,形成巨大的規(guī)模,有洞窟735個,壁畫4.5萬平方米、泥質彩塑2415尊,是世界上現存規(guī)模最大、內容最豐富的佛教藝術地。 1961年,莫高窟被中華人民共和國國務院公布為第一批全國重點文物保護單位之
4、一。1987年,莫高窟被列為世界文化遺產。 莫高窟與山西大同云崗石窟、河南洛陽龍門石窟、甘肅天水麥積山石窟并稱為中國四大石窟。敦煌石窟存有500多個洞窟中保存有繪畫、彩塑492個,還有一些佛塔??咝妥畲笳吒?0余米、寬30米見方最小者高不足盈尺。從早期石窟所保留下來的中心塔柱式這一外來形式的窟型,反映了古代藝術家在接受外來藝術的同時,加以消化、吸收,使它成為中國民族形式 其中不少是現存古建筑的杰作。在多個洞窟外存有較為完整的唐代、宋代木質結構窟檐,是不可多得的木結構古建筑實物資料,具有極高的研究價值。彩塑為敦煌藝術的主體有佛像、菩薩像、弟子像以及天王、金剛、力士、神等。彩塑形式豐富多彩,有圓塑
5、、浮塑、影塑、善業(yè)塑等。石窟壁畫富麗多彩,各種各樣的佛經故事,山川景物,亭臺樓閣等建筑畫、山水畫、花卉圖案、飛天佛像以及當時勞動人民進行生產的各種場面等是中國古代美術史的光輝篇章,為中國古代史研究提供珍貴的形象史料。 敦煌莫高窟彩塑 敦煌莫高窟壁畫 敦煌莫高窟壁畫 敦煌莫高窟彩塑 敦煌莫高窟壁畫 敦煌莫高窟壁畫圖1. 敦煌莫高窟彩塑及壁畫2.2莫高窟現狀敦煌莫高窟被譽為20世紀最有價值的文化發(fā)現,坐落在河西走廊西端的敦煌,以精美的壁畫和塑像聞名于世。不過,近幾十年來,敦煌生態(tài)環(huán)境不斷惡化,致使境內大量歷史文化遺存遭到破壞,莫高窟塑像和壁畫因風沙侵襲病害日趨嚴重。半數壁畫存在病害洞窟石壁局部分離
6、,它是莫高窟壁畫最危險、損害最大的疾患。經歷 了1000多年的歲月,目前敦煌壁畫中約1/3至1/2存在著不同程度的病害。 游客過多不堪重負。敦煌莫高窟正式對外開放始于1979年。20多年來,先后有80多個 國家和地區(qū)的近400萬人次游客來此參觀。2004年“五一”期間,敦煌研究院對游客參觀藏經洞過程中的行為進行了監(jiān)測,發(fā)現了在18212人的總參觀人數中,共有708人觸摸了壁畫,占參觀總人數的3.9%。 而它們在人文環(huán)境面前所表現出來的脆弱性更是顯而易見的。怎么樣深刻認識文物環(huán)境的脆弱性,并對它加倍保護,就是文物保護的核心問題。2.3實現莫高窟可持續(xù)發(fā)展的可能辦法2.3.1制定好游客管理對策通過
7、各種渠道匯總游客信息。了解全年游客來敦煌參觀的基本動向,做出接待計劃。制訂講解員工作流程圖,規(guī)范講解員全程為游客服務的程序與標準。對外賓散客實行預約制。通過網上發(fā)布外賓散客的參觀時間表及接待辦法。嚴格執(zhí)行編排游線,有效調節(jié)窟區(qū)內參觀次序。2.3.2保護觀念的樹立 鑒于其在人文環(huán)境面前所表現出來的脆弱性是顯而易見的,怎么樣深刻認識文物環(huán)境的脆弱性,并對它加倍保護,遠比被動的保護遺產地重要。應該加強游客的文明參觀宣傳教育,讓游客主動參與到文物環(huán)境的保護工作中。喚起全社會樹立保護環(huán)境、保護人類珍貴遺產的意識。2.3.3預防性保護預防性保護是國際文物保護的發(fā)展方向,是延長文物壽命所必須,是更主動、更積
8、極的保護。如將日新月異的計算機技術和數字技術應用到敦煌石窟文物保護工作中來,開展壁畫圖像數字化存貯與再現技術的科技攻關,制作虛擬洞窟供游客參觀欣賞,這樣可以緩解石窟開放的壓力,為保護壁畫提供了技術保障。此外,多開展科普教育,通過這些項目把認識文物賦存環(huán)境對文物保護的重要性提升到一個新的高度。蘇州古典園林3.1特征介紹蘇州園林是對中國江蘇省蘇州山水園林建筑的統(tǒng)稱。在漢族建筑中獨樹一幟,有重大成就的是古典園林建筑。蘇州園林又稱“蘇州古典園林”, 以私家園林為主。起始于春秋時期吳國建都姑蘇時(吳王闔閭時期,公元前514年),形成于五代,成熟于宋代,興旺鼎盛于明清。到清末蘇州已有各色園林一百七十多處,
9、現保存完整的有六十多處,對外開放的園林有十九處。1997年,蘇州古典園林作為中國園林的代表被列入世界遺產名錄,被勝譽為“咫尺之內再造乾坤”,是中華園林文化的翹楚和驕傲。蘇州園林主要有滄浪亭、獅子林、拙政園、留園、網師園、怡園等 蘇州古典園林春景 蘇州古典園林夏景 蘇州古典園林春景 蘇州古典園林夏景 圖2.蘇州古典園林3.2蘇州古典園林保護的必要性分析19531959年間南京工學院劉敦楨教授領導調查了蘇州古典園林。和1982年的統(tǒng)計數據對比可以看出短短23年間全廢的古典園林增加了33處,另有17處古典園林處于殘存狀態(tài)岌岌可危。(見表1)表1. 1959年和1982年古典園林存廢統(tǒng)計表存廢類型完整
10、半廢殘存較完整全廢小計19591982195919821982198219591982大型781-3311中型8214952121634小型3053110125164577合計4515461917731641223.3蘇州古典園林的可持續(xù)發(fā)展之路作為列入世界遺產名錄的蘇州古典園林,是蘇州社會發(fā)展極其珍貴的資源。任何一個城市的發(fā)展要與自然、文化和人類生存環(huán)境成為一個和諧的整體,要求以不破壞其賴以生存的自然、文化及其他資源為前提,并能對自然、文化環(huán)境保護給予政策、資金等多方位的支持,使其能基本滿足當代人和后代人公平享用資源權利的需要,能滿足本地區(qū)長期發(fā)展和繁榮的需要。這也是蘇州對待古典園林的基本要
11、求和科學態(tài)度。另外,蘇州古典園林不管是過去、現在還是將來,都已經成為蘇州的一張名片,其對蘇州經濟和社會發(fā)展的作用是長期的和強有力的。這些都決定了作為世界文化遺產的蘇州古典園林走可持續(xù)發(fā)展之路既是歷史的自然選擇,又是客觀的要求。依法做到對蘇州古典園林的恢復性保護。蘇州市結合古城的保護,有計劃、有步驟地恢復園林歷史舊貌。做到對蘇州古典園林的挖掘性保護。根據世界遺產公約有關精神,遺產所在地有義務向公眾廣泛宣傳世界遺產,即要利用一切合適的方式,開展公眾教育,不斷提高遺產管理者和人民群眾對歷史文化遺產的尊重和熱愛,以保證人類的優(yōu)秀遺產世代流傳。做到對蘇州古典園林的建設性保護。蘇州市有重點地加強了園林周邊
12、環(huán)境建設性保護工作,通過加強規(guī)劃,逐步解決了歷史遺留下來的許多問題,從而不僅擴大了園林可對外開放的面積,還在最大程度上改善了對社會服務設施,服務質量。做到對蘇州古典園林的接軌性保護。蘇州市園林局逐步運用國際標準來對蘇州古典園林的保護、管理加以規(guī)范,建立起了現代化的管理體制。結論:第一,世界文化遺產是全人類的共同財富。其突出的普遍價值不僅屬于其所在的主權國家,也屬于其他國家,既屬于當代人,也屬于未來的人類,是全人類共同的財富。我們在利用這些遺產時,就要考慮到如何把它完好地傳承給下一代的問題。第二,文化遺產是不可再生的。文化遺產的價值是依附于遺產本身而存在的,遺產一旦遭到破壞,其價值也就隨之喪失。
13、在利用與保護之間,保護永遠應該擺在第一位,在保護的前提下加以利用。這樣,才能保證其價值不致喪失,我們也才能繼續(xù)加以開發(fā)利用,并使之傳承給后代。保護世界遺產是實現可持續(xù)發(fā)展的一項重要的戰(zhàn)略措施,關系到人類的命運問題,決不可等閑視之。我們必須切實地肩負起這個義不容辭的歷史使命,更新觀念,提高國民素質,嚴格遵循真實性和完整性原則,把保護放到第一位,利用放在第二位,在充分保護的前提下進行適度的開發(fā)利用,不斷地改進和完善保護工作,以促使人和自然、文化和環(huán)境的和諧發(fā)展。參考文獻:喻學才,王建民世界文化遺產定義的新界定J 建筑與文化2007顏麗麗,蕭磊世界遺產地的旅游開發(fā)與可持續(xù)發(fā)展J 黑河學刊2011沙漠
14、每年逼近1-4米 古城敦煌千年莫高窟危在旦夕中新網敦煌莫高窟:“穿越”八千年談古論今新浪網游雪晴.數字技術讓莫高窟延年益壽J.中華建設.54-55韓立波蘇州古典園林保護及發(fā)展對策研究J 山西建筑2007高中歷史選修6人民教育出版社附錄資料:不需要的可以自行刪除C語言編譯器的設計與實現 我們設計的編譯程序涉及到編譯五個階段中的三個,即詞法分析器、語法分析器和中間代碼生成器。編譯程序的輸出結果包括詞法分析后的二元式序列、變量名表、狀態(tài)棧分析過程顯示及四元式序列程序,整個編譯程序分為三部分:(1) 詞法分析部分(2) 語法分析處理及四元式生成部分 (3) 輸出顯示部分一詞法分析器設計 由于我們規(guī)定的
15、程序語句中涉及單詞較少,故在詞法分析階段忽略了單詞輸入錯誤的檢查,而將編譯程序的重點放在中間代碼生成階段。詞法分析器的功能是輸入源程序,輸出單詞符號。我們規(guī)定輸出的單詞符號格式為如下的二元式: (單詞種別,單詞自身的值)#define ACC -2#define syl_if 0#define syl_else 1#define syl_while 2#define syl_begin 3#define syl_end 4#define a 5#define semicolon 6#define e 7#define jinghao 8#define s 9#define L 10#defin
16、e tempsy 11#define EA 12#define EO 13#define plus 14#define times 15#define becomes 16#define op_and 17#define op_or 18#define op_not 19#define rop 20#define lparent 21#define rparent 22#define ident 23#define intconst 24函數說明 讀取函數 readline( )、readch( )詞法分析包含從源文件讀取字符的操作,但頻繁的讀文件操作會影響程序執(zhí)行效率,故實際上是從源程序文件
17、” source.dat ”中讀取一行到輸入緩沖區(qū),而詞法分析過程中每次讀取一個字符時則是通過執(zhí)行 readch( )從輸入緩沖區(qū)獲得的;若緩沖區(qū)已被讀空,則再執(zhí)行readline( )從 source.dat 中讀取下一行至輸入緩沖區(qū)。掃描函數 scan( ) 掃描函數 scan( )的功能是濾除多余空格并對主要單詞進行分析處理,將分析得到的二元式存入二元式結果緩沖區(qū)。變量處理 find( )變量處理中首先把以字母開頭的字母數字串存到 spelling 數組中,然后進行識別。識別過程是先讓它與保留關鍵字表中的所有關鍵字進行匹配,若獲得成功則說明它為保留關鍵字,即將其內碼值寫入二元式結果緩沖區(qū)
18、;否則說明其為變量,這時讓它與變量名表中的變量進行匹配( 變量匹配函數 find( ) ),如果成功,則說明該變量已存在并在二元式結果緩沖區(qū)中標記為此變量( 值填為該變量在變量名表中的位置),否則將該變量登記到變量名表中,再將這個新變量存入二元式緩存數組中。數字識別 number( ) 數字識別將識別出的數字填入二元式結果緩存數組。顯示函數 顯示函數的功能在屏幕上輸出詞法分析的結果( 即二元式序列程序),同時給出二元式個數及源程序行數統(tǒng)計。二語法分析器設計 語法分析器的核心是三張 SLR 分析表以及針對這三張 SLR 分析表進行語義加工的語義動作。編譯程序中語法分析處理及四元式生成部分主要是以
19、二元式作為輸入,并通過 SLR 分析表對語法分析處理過程進行控制,使四元式翻譯的工作有條不紊的進行,同時識別語法分析中的語法錯誤。在處理 if 和 while 語句時,需要進行真值或假值的拉鏈和返填工作,以便轉移目標的正確填入。1. 控制語句的 SLR 分析表1 設計過程如下: 將擴展文法GS S1)S if e S else S2)S while e S3)S L 4)S a;5)L S6)L SL用_CLOSURE方法構造LR(0)項目規(guī)范簇為:I0: S SS if e S else SS while e S S L S a ;I1: S SI2: S ife S else SI3: S
20、 while e SI4: S L L S L SL S if e S else SS while e S S L S a ; I5: S a; I6: S if e S else S S if e S else SS while e S S L S a ; I7: S while e S S if e S else SS while e S S L S a ; I8: S L I9: L S L SL L SL L S S if e S else SS while e S S L S a ; I10: S a ; I11: S if e S else SI12: S while e S I1
21、3: S L I14: S SL I15: S if e S else S S if e S else SS while e S S L S a ; I16: S if e S else S 構造文法G中非終結符的FOLLOW集如下:FOLLOW(S) = # S if e S else S得FOLLOW(S) = else S L 得FOLLOW(L) = 3) S S 得FOLLOW(S) = else , # L S 因為FIRST(S) = ,所以FOLLOW(S) = else , #, 在()項目規(guī)范簇中,只有9有“移進歸約”沖突,L SL SL因為FOLLOW(L) FIRST(
22、L) = 所以可以用方法解決以上沖突,最后我們得到的分析表如下:ACTIONGOTO ifElsewhilea;e#SL0S2S3S4S511ACC2S63S74S2S3S4S5985S106S2S3S4S5117S2S3S4S5128S139S2S3S4R5S591410R4R4R4111512R2R2R213R3R3R314R615S2S3S4S51616R1R1R1static int action2011=/* 0 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 1, -1,/* 1 */ -1, -1, -1, -1, -1, -1, -1, -1,ACC, -
23、1, -1,/* 2 */ -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1,/* 3 */ -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1,/* 4 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 9, 8,/* 5 */ -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1,/* 6 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 11, -1,/* 7 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 12, -1,/* 8
24、 */ -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1,/* 9 */ 2, -1, 3, 4,105, 5, -1, -1, -1, 9, 14,/* 10*/ -1,104, -1, -1,104, -1, -1, -1,104, -1, -1,/* 11*/ -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,/* 12*/ -1,102, -1, -1,102, -1, -1, -1,102, -1, -1,/* 13*/ -1,103, -1, -1,103, -1, -1, -1,103, -1, -1,/*
25、14*/ -1, -1, -1, -1,106, -1, -1, -1, -1, -1, -1,/* 15*/ 2, -1, 3, 4, -1, 5, -1, -1, -1, 16, -1,/* 16*/ -1,101, -1, -1,101, -1, -1, -1,101, -1, -1;其中,前 9 列為 action 值,后 2 列為 goto 值;016 表示 17 個移進狀態(tài)( 即 Si);-1表示出錯;ACC 表示分析成功;而 100106 對應 7 個歸約產生式:S SS if e S else SS while e SS L S a;L SL SL2. 算術表達式的 LR 分析
26、表 2 設計如下:S EE E+EE E*EE (E)E i (過程略)ACTIONGOTOI+*()#E0S3S211S4S5ACC2S3S263R4R4R4R44S3S275S3S286S4S5S97R1R5R1R18R2R2R2R29R3R3R3R3static int action1107=/* 0 */ 3, -1, -1, 2, -1, -1, 1,/* 1 */ -1, 4, 5, -1, -1,ACC, -1,/* 2 */ 3, -1, -1, 2, -1, -1, 6,/* 3 */ -1,104,104, -1,104,104, -1,/* 4 */ 3, -1, -1,
27、 2, -1, -1, 7,/* 5 */ 3, -1, -1, 2, -1, -1, 8,/* 6 */ -1, 4, 5, -1, 9, -1, -1,/* 7 */ -1,101, 5, -1,101,101, -1,/* 8 */ -1,102,102, -1,102,102, -1,/* 9 */ -1,103,103, -1,103,103, -1;3.布爾表達式的 SLR 分析表3 設計如下:(過程略)S BB iB i rop iB ( B )B ! BA B &B ABO B |B OBACTIONGOTOiRop()!&|#BAO0S1S4S513781S2R1R1R1R1
28、2S33R2R2R2R24S1S4S511785S1S4S56786R4S9S10R47S1S4S514788S1S4S515789R5R5R510R7R7R711S12S9S1012R3R3R3R313S9S10ACC14R6S9S10R615R8S9S10R8static int action21611=/* 0 */ 1, -1, 4, -1, 5, -1, -1, -1, 13, 7, 8,/* 1 */ 1, 2, -1,101, -1,101,101,101, -1, -1, -1,/* 2 */ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
29、/* 3 */ -1, -1, -1,102, -1,102,102,102, -1, -1, -1,/* 4 */ 1, -1, 4, -1, 5, -1, -1, -1, 11, 7, 8,/* 5 */ 1, -1, 4, -1, 5, -1, -1, -1, 6, 7, 8,/* 6 */ -1, -1, -1,104, -1, 9, 10,104, -1, -1, -1,/* 7 */ 1, -1, 4, -1, 5, -1, -1, -1, 14, 7, 8,/* 8 */ 1, -1, 4, -1, 5, -1, -1, -1, 15, 7, 8,/* 9 */ 105, -1,
30、105, -1,105, -1, -1, -1, -1, -1, -1,/*10 */ 107, -1,107, -1,107, -1, -1, -1, -1, -1, -1,/*11 */ -1, -1, -1, 12, -1, 9, 10, -1, -1, -1, -1,/*12 */ -1, -1, -1,103, -1,103,103,103, -1, -1, -1,/*13 */ -1, -1, -1, -1, -1, 9, 10,ACC, -1, -1, -1,/*14 */ -1, -1, -1,106, -1, 9, 10,106, -1, -1, -1,/*15 */ -1,
31、 -1, -1,108, -1, 9, 10,108, -1, -1, -1;LR 分析表控制語義加工的實現:當掃描 LR 分析表的當前狀態(tài)為歸約狀態(tài)時,則在調用與該狀態(tài)對應的產生式進行歸約的同時,調用相應的語義子程序進行有關的翻譯工作?,F在對 LR 分析器的分析棧加以擴充,使得每個文法符號之后都跟著它的語義值。為了清晰起見,我們把這個棧的每一項看成由三部分組成:狀態(tài) state ,文法符號 syl 和語義值 val。編譯程序實現算術表達式、布爾表達式及程序語句的語義加工時,都是按這種狀態(tài)棧加工方式進行的。例如:( 5 + 3 ) * 6的分析過程序號STATEValsylinput10-#(
32、 5 + 3 ) * 6 #202-#(5 + 3 ) * 6 #3023-#(5+ 3 ) * 6 #4026-5#(E+ 3 ) * 6 #50264-5-#(E+3 ) * 6 #602643-5-#(E+3 ) * 6 #702647-5-3#(E+E) * 6 #8026-8#(E) * 6 #90269-8-#(E)* 6 #1001-8#E* 6 #11015-8-#E* 6 #120153-8-#E*6#130158-8-6#E*E#1401-48#E#15ACC在分析過程中,第(3)步操作后的狀態(tài)棧為 023,根據棧頂狀態(tài)“ 3”和現行輸入符號“ +”( input 欄字符串
33、的第一個字符)查分析表 ACTION3,+=R4,即按第(4)個產生式 En 來進行歸約;由于產生式右部僅含一項,故去掉狀態(tài)棧棧頂“3”;此時 2 變?yōu)樾碌臈m敔顟B(tài),再查( 2,E)的下一狀態(tài) s:GOTO2,E=6,即將狀態(tài) 6 和文法符號 E 壓棧,最后得到第( 4)步的狀態(tài)。第( 7)步操作后也是如此,當前狀態(tài)棧為 02647,根據棧頂狀態(tài) 7 和現行輸入符號“ )”查分析表 ACTION7,)=R1,即按第(1)個產生式 EE1+E2進行歸約;由于產生式右部有三項,故去掉狀態(tài)棧棧頂的 647 三項;此時 2 變?yōu)樾碌臈m敔顟B(tài),再查( 2,E)的下一狀態(tài) s:GOTO2,E=6,即將狀態(tài)
34、 6 和文法符號 E 壓棧,最后得到第(8)步的狀態(tài)。三中間代碼生成器設計:布爾表達式 布爾表達式在程序語言中有兩個基本作用:一是用作控制語句( 如 if -else 或 while語句)的條件式;二是用于邏輯演算,計算邏輯值。布爾表達式是由布爾算符( &、| 、?。┳饔糜诓紶栕兞浚?或常數)或關系表達式而形成的。關系表達式的形式是 E1 rop E2,其中 rop 是關系符( 如或),E1和 E2是算術式。在這里,我們只考慮前面給定文法所產生的布爾表達式:BB &B | B | B | ! B | (B) | i rop i | i遵照我們的約定,布爾算符的優(yōu)先順序( 從高到低)為:!、&、
35、|,并假定&和|都服從左結合規(guī)則。所有關系符的優(yōu)先級都是相同的,而且高于任何布爾算符,低于任何算術算符,關系算符不得結合。表達式的真、假出口的確定:考慮表達式 B1 | B2 ,若 B1為真,則立即知道 B 也為真;因此,B1的真出口也就是整個 B 的真出口。若 B1?為假,則 B2必須被計值,B2的第一個四元式就是 B1的假出口。當然,B2的真、假出口也就是整個 B的真、假出口。類似的考慮適用于對 B1 & B2的翻譯,我們將 B1 | B2和 B1 & B2 的翻譯用下圖表示,在自下而上的分析過程中,一個布爾式的真假出口往往不能在產生四元式的同時就填上。我們只好把這種未完成的四元式的地址(
36、 編號)作為 B 的語義值暫存起來,待到整個表達式的四元式產生完畢之后再來回填這個未填入的轉移目標。條件語句對條件語句 if e S1 else S2 中的布爾表達式 e,其作用僅在于控制對 S1和 S2的選擇。因此,作為轉移條件的布爾式e,我們可以賦予它兩種“ 出口”:一是“ 真”出T口,出向 S1;一是“ 假”出口,出向 S2。于是,e的代碼F條件語句可以翻譯成如圖的一般形式。非終結符 e 具有兩項語義值 e _TC 和e_FC,它們分別指出了尚待回填真、S2的代碼假出口的四元式串。e 的“ 真”出口只有在往回掃描到if時才能知道,而它圖 3-2 條件語句的代碼結構 的“ 假”出口則需到處
37、理過 S1并且到達 else 才能明確。這就是說,必須把 e_FC 的值傳下去,以便到達相應的 else時才進行回填。另外,當 S1語句執(zhí)行完時意味著整個 if-else 語句也已執(zhí)行完畢;因此,在 S1的編碼之后應產生一條無條件轉移指令。這條轉移指令將導致程序控制離開整個 if-else 語句。但是,在完成 S2的翻譯之前,這條無條件轉移指令的轉移目標是不知道的。甚至,在翻譯完 S2之后,這條轉移指令的轉移目標仍無法確定。這種情形是由于語句的嵌套性所引起的。例如下面的語句:if e1 if e2 S1 else S2 else S3 在 S1的代碼之后的那條無條件轉移指令不僅應跨越 S2而且
38、應跨越 S3。這也就是說,轉移目標的確定和語句所處的環(huán)境密切相關。條件循環(huán)語句條件循環(huán)語句 while e S 通常被翻譯成圖的代碼結構。布爾式 e 的“ 真”出口出向 S 代碼段的第一個四元式。緊接 S 代碼段之后應產生一條轉向測試 e 的無條件轉移指令。e 的“ 假”出口將導致程序控制離開整個 while 語句。e 的“ 假”出口目標即使在整個 while 語句翻譯完之后也未必明確。例如: if e1 while e2 S1 else S2這種情況仍是由于語句的嵌套性引起的。所以,我們只好把它作為語句的語義值 SCHAIN 暫留下來,以便在處理外層語句時再伺機回填。語法翻譯實現方法 將上述
39、語法翻譯付諸實現過程中,我們僅保留了算術表達式和布爾表達式翻譯的文法和語義動作;面對程序語句的翻譯,由于改造后含有較多的非終結符且語義動作又相對簡單,故仍恢復為改造之前的程序語句文法。由于總體上構造一個 SLR 分析表來實現語法分析及語義加工將使得所構造的 SLR 分析表過大,所以將其分為下面三部分處理:對算術表達式單獨處理,即為算術表達式構造一個 SLR 分析表,并將賦值語句A=E 與算術表達式歸為一類處理,處理之后的賦值語句僅看作為程序語句文法中的一個終結符 a。對布爾表達式也單獨處理,并為其構造一個 SLR 分析表,經 SLR 分析表處理后的布爾表達式看作為程序語句文法中的一個終結符 e
40、。程序語句文法此時變?yōu)椋篠 if e S else S | while e S | L | a;L SL | S此時為程序語句構造相應的 SLR 分析表就簡單多了。前面的程序語句文法中所添加的非終結符是為了能及時回填有關四元式轉移目標而引入的,在取消了這些非終結符后又如何解決及時回填轉移目標的問題呢?我們采取的解決方法是增加兩個數組 labelmark 和 labeltemp 來分別記錄語句嵌套中每一層布爾表達式( 如果有的話)e 的首地址以及每一層else( 如果有的話)之前的四元式地址( 即無條件轉出此層 if 語句的四元式)。也即,對程序語句的翻譯來說:在處理完布爾表達式 e 后,回填
41、if 或 while 語句的真值鏈;在歸約完每一個語句 S 之后檢查符號棧,看在 S 之前的文法符號是否 if 或 while,若是則回填假值鏈( 假值入口為語句 S 所對應的四元式序列之后;對 if 語句,此時已在該序列之后加入了一條無條件轉移的四元式);在 if 語句中,else 前面要加入一個無條件轉移的四元式轉向 if 語句末尾;在 while語句尾要有一個無條件轉移四元式轉向 while 語句開頭。四數據結構說明 編譯程序中涉及到的數據結構說明如下:char ch=0; /*從字符緩沖區(qū)中讀取當前字符*/int count=0; /*詞法分析結果緩沖區(qū)計數器*/static char spelling10= ; /*存放識別的字*/static char line81= ; /*一行字符緩沖區(qū)( 最多 80 個字符)*/char *pline; /*字符緩沖區(qū)指針*/static char ntab110010; /*變量名表:共100項,每項長度為10*/struct ntab int tc; /*真值*/ int fc; /*假值*/ ntab2200; /*在布爾表達式 ) 中保存有關布爾變量的真、假值*/int label=0; /*指向 ntab2 的指針*/st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 經紀人合同二零二五年
- 小學排球社團競賽準備活動計劃
- 抹灰施工合同
- 二零二五版機關保潔員聘用合同范文1份
- 二零二五版幼兒園門衛(wèi)安全工作責任書
- 外貿部經理工作職責與績效考核
- 文化產業(yè)中的四個意識反思與應對范文
- 非營利組織項目試運行管理措施
- 在線教學與學生互動心得體會
- 土地勘測定界合同協(xié)議書的簽署流程
- 小學美術課評分標準
- 全設備保養(yǎng)維修:設備點檢、保養(yǎng)、自修、外修制度、事故處理規(guī)定
- (完整版)兒童孤獨癥評定量表(CARS)
- 物業(yè)公司電梯故障維修登記表
- 【基于STM32智能門鎖系統(tǒng)的設計10000字(論文)】
- 全國鐵路工程工程量清單計價
- 農產品中常見重金屬的危害
- 中國商幫江右商幫內容提要
- 養(yǎng)老護理員職業(yè)技能等級認定三級(高級工)理論知識考核試卷
- 上海交大科技成果轉移轉化實踐簡版
- 簡單的設計合同(3篇)2023年
評論
0/150
提交評論