版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、編譯原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:實(shí)驗(yàn)類型:9指導(dǎo)教師:專業(yè)班級(jí):姓 名:學(xué) 號(hào):實(shí)驗(yàn)地點(diǎn):實(shí)驗(yàn)成績(jī):日期:2016年 6月 3日實(shí)驗(yàn)三 分析調(diào)試語(yǔ)義分析程序一、實(shí)驗(yàn)?zāi)康耐ㄟ^分析調(diào)試 TEST 語(yǔ)言的語(yǔ)義分析和中間代碼生成程序, 加深對(duì)語(yǔ)法制導(dǎo)翻譯思想的 理解,掌握將語(yǔ)法分析所識(shí)別的語(yǔ)法范疇變換為中間代碼的語(yǔ)義翻譯方法。二、實(shí)驗(yàn)知識(shí)1. 語(yǔ)法制導(dǎo)基本思想語(yǔ)法制導(dǎo)就是對(duì)文法中的每個(gè)產(chǎn)生式都附加一個(gè)語(yǔ)義動(dòng)作或語(yǔ)義子程序, 且在語(yǔ)法分析 過程中, 每當(dāng)需要使用一個(gè)產(chǎn)生式進(jìn)行推導(dǎo)或歸約時(shí), 語(yǔ)法分析程序除執(zhí)行相應(yīng)的語(yǔ)法分析 動(dòng)作外,還要執(zhí)行相應(yīng)的語(yǔ)義動(dòng)作或調(diào)用相應(yīng)的語(yǔ)義子程序?;舅枷胧?,根據(jù)翻譯的需要設(shè)置文
2、法符號(hào)的屬性,以描述語(yǔ)法結(jié)構(gòu)的語(yǔ)義。例如,一 個(gè)變量的屬性有類型,層次,存儲(chǔ)地址等。表達(dá)式的屬性有類型,值等。屬性值的計(jì)算和產(chǎn) 生式相聯(lián)系。隨著語(yǔ)法分析的進(jìn)行,執(zhí)行屬性值的計(jì)算,完成語(yǔ)義分析和翻譯的任務(wù)。2. 翻譯方案設(shè)計(jì)1)設(shè)計(jì)原理:在實(shí)驗(yàn)二的基礎(chǔ)上為文法符號(hào)引進(jìn)一組屬性及相應(yīng)求值規(guī)則和動(dòng)作,得 到屬性翻譯文法,并引進(jìn)一個(gè)符號(hào)表(包括變量名,變量數(shù)據(jù)是否有效,變量地址,變量的 具體數(shù)據(jù),數(shù)據(jù)類型等) ,在進(jìn)行語(yǔ)法分析的同時(shí),結(jié)合符號(hào)表完成語(yǔ)義分析與檢測(cè),同時(shí) 根據(jù)屬性翻譯文法的屬性及相關(guān)動(dòng)作得到中間代碼(抽象機(jī)式匯編指令) ,最后通過模擬的 抽象機(jī)運(yùn)行出結(jié)果。2)設(shè)計(jì)方法:(為動(dòng)作標(biāo)志,J為
3、繼承屬性,f為綜合屬性) 結(jié)合課本語(yǔ)法制導(dǎo)相關(guān)內(nèi)容對(duì)文法增加屬性和動(dòng)作如下: 以下列出有修改的屬性翻譯文法: J vartablep,datap,codep int ID f nname-def J n,t;其中動(dòng)作符號(hào)的含義如下name-def J n,t:插入符號(hào)表; t if ()BRF f label1BR f label2 SETIabel J label1| if () BRF f label1BR f label2 SETlabel J label1else SETlabel J label2其中動(dòng)作符號(hào)的含義如下BRFf label1 :輸出 BRF label1;BR f l
4、abel2 :輸出 BR label2 ;SETlabel J label1 :設(shè)置標(biāo)號(hào) label1 ;SETlabel J label2 :設(shè)置標(biāo)號(hào) label2 ; t whileSETlabel f label1() BRF f label2BR J label1 SETlabel J label2其中動(dòng)作符號(hào)的含義如下SETIabel f labell :設(shè)置標(biāo)號(hào) labell ;BRF f label2 :輸出 BRF label2 ;BR J labell :輸出 BR labell ;SETlabel J label2 :設(shè)置標(biāo)號(hào) label2 ; t for (POP;SET
5、Iabel f label1BRF f label2BR f label3;SETlabel f label4 POPBR J label1) SETlabel J label3 BR J label4SETlabel J label2其中動(dòng)作符號(hào)的含義如下SETlabel J label1 :設(shè)置標(biāo)號(hào) label1 ; BRFf label2 :輸出 BRF label2; BR f Iabel3 :輸出 BR label3 ;SETlabel J label4 :設(shè)置標(biāo)號(hào) label4 ;BR f label1 :輸出 BR label1 ;SETlabel J label3 :設(shè)置標(biāo)號(hào)
6、label3 ;BR f label4 :輸出 BR label4 ;SETlabel J label2 :設(shè)置標(biāo)號(hào) label2 ; t write OUT;其中動(dòng)作符號(hào)的含義如下 OUT :輸出 OUT t read IDf n LOOKJ nf d INSTO J dPOP;其中動(dòng)作符號(hào)的含義如下LOOK J n f d:查符號(hào)表n,給出變量地址 d;沒有,變量沒定義; IN :輸出 IN ;STO J d:輸出指令代碼 STO d;POP:將棧頂元素出棧 t ID f nLOOK J nf dASSIGN=STO J dPOP |其中動(dòng)作符號(hào)的含義如下LOOK J n f d:查符號(hào)表
7、n,給出變量地址 d;沒有,變量沒定義;ASSIGN :記住當(dāng)前文件位置;STO J d:輸出指令代碼 STO d; t |GT|LES|=GE|=LE|=EQ|!=NOTEQ其中動(dòng)作符號(hào)的含義如下GT:次棧頂與棧頂作大于比較;LES :次棧頂與棧頂作小于比較;GE :次棧頂與棧頂作大于等于比較;LE :次棧頂與棧頂作小于等于比較;EQ:次棧頂與棧頂作等于比較;NOTEQ :次棧頂與棧頂作不等于比較;B t +BADD 卜BSUB |& t + vadditive_A ADD | - SUB | & 其中動(dòng)作符號(hào)的含義如下ADD :操作數(shù)相加;SUB :操作數(shù)相減;Ct *CMULT | /C
8、DIV |& t *MULT | /DIV |&其中動(dòng)作符號(hào)的含義如下MULT :操作數(shù)相乘;DIV :操作數(shù)相除;?t ()| ID f nLOOK J n f dLOAD J d |NUM fiLOADI J i其中動(dòng)作符號(hào)的含義如下LOOK J n f d:查符號(hào)表n,給出變量地址d;沒有,變量沒定義;LOAD J d :將地址d的變量入棧;LOADI J i:將常量i入棧;3) 設(shè)計(jì)結(jié)果:1) t2) t vdeclaration_stat |&3) J vartablep,datap,codep tint ID f nname-defJ n,t;4) t vstateme nt|&5
9、) t | |6) tif ()BRF f label1BR f label2 SETlabelJ label1| if () BRF f label1BR f label2 SETlabel J label1else SETlabel J label27) t whileSETlabellabel1()BRF f label2 BR J label1 SETlabel J label28) t for (;SETlabel f label1BRF f label2BR f label3;SETlabel f label4 BR J label1) SETlabel J label3 BR J
10、 label29) twrite OUT;10) tread IDf n LOOK J nf d INSTO J dPOP;11) t 12) t POP;|;13) t ID f nLOOK J n f dASSIGN=STO J dPOP |14) t 15) tGT|LES|=GE|=LE|=EQ|!=NOTEQ |&16) t17) t +ADD | -SUB |&18) 19) *MULT | /DIV |&20) ()| ID f nLOOK J n f dLOAD J d |NUM f iLOADI J i三、實(shí)驗(yàn)過程首先,理解書上的代碼和觀看相關(guān)的知識(shí)的據(jù)此在我之前實(shí)驗(yàn)寫好的語(yǔ)
11、法分析基礎(chǔ)上進(jìn)行修改,PPT,深入理解屬性反應(yīng)文法的作用,寫出語(yǔ)義分析代碼。 在語(yǔ)義分析里增加“不可引用未賦初值變量”的規(guī)則,在init()中增加了相關(guān)操作。、showVarTable()、checkInitValue()然后,結(jié)合棧式抽象機(jī)及其匯編指令相關(guān)命令的操作含義,模擬寫出TEST語(yǔ)言的抽象機(jī)模型用以運(yùn)行文法生成的中間代碼。最后,寫出執(zhí)行中間代碼的虛擬機(jī)程序。最后,編寫TEST語(yǔ)言程序進(jìn)行代碼實(shí)例測(cè)試,調(diào)試觀察運(yùn)行過程及結(jié)果,并調(diào)試修改程序BUG。代碼完成后,測(cè)試、完善。/定義符號(hào)表結(jié)構(gòu),添加未賦初值記錄structchar n ame8;int address;int notInit
12、;/ 未賦初值vartablemaxvartablep; / 改符號(hào)表最多容纟內(nèi) maxvartablep 個(gè)記錄/在插入符號(hào)表動(dòng)作 name-defj n, t的程序中給notlnit賦值為0, vartablevartablep. no tI nit =0;/在該函數(shù)給中判斷notlnit的值是否為0和查詢表中是否有變量名,若查詢表中有該變量名,且 not In it為0時(shí),將該變量的n otl nit賦值為1,表示已經(jīng)判斷已經(jīng)賦值void in it(char *n ame)/ /在該函數(shù)中首先判定變量是否聲明,再判定n otl nit的值是否為0,若變量是聲明了且n ot In it為
13、0時(shí),則判定變量未賦初值。void check Ini tValue(char *n ame)四、實(shí)驗(yàn)結(jié)果1)測(cè)試數(shù)據(jù)及結(jié)果(初始程序)3圈文件錨迥惜式童看凹鶴助凹int sum;int product;int i;lint a;for ( i =1; i=10; i = i +1)read a:sum - sum +a;product - product+a;write sum;C:Windowssyssb a丈陣 彌惜式 M(v)seomiC:Windcwssysiinx sum; int product; int i :1一一 1 a 0( mum=or i s f+ 1= 1read
14、a,sum - sum +a; product - product*a;)_write sum;write product;)2)修改后的測(cè)試數(shù)據(jù):(給sum和product賦初值)運(yùn)行結(jié)果如下write product;文蟄H孺冨舊搭云型sfV)國(guó)旬囲int sum;int product:int i;int a;sum=0;product=l,for ( i =1; i=10, i = i +1)read a;sum = sum +a;product = product*a: _write sum;write product:|C:Windowssy&te3)中間代碼如下:LABEL2:L
15、OADI 0STO 0POPLOADI 1STO 1POPLOADI 1STO 2POPLABELO:LOAD 2LOADI 10 LEBRF LABEL1 BR LABELSLABEL3:LOAD 2LOADI 1ADDSTO 2POPBR LABELOIN3TOoplrmopOADOADULTTOopBR LABEL3LABEL1:LOAD 0OUTLOAD 1OUTSTOP五、討論與分析1通過實(shí)驗(yàn)對(duì)課程知識(shí)點(diǎn)的理解實(shí)驗(yàn)后知識(shí)梳理與總結(jié):通過TEST屬性文法的翻譯設(shè)計(jì), 了解了語(yǔ)法制導(dǎo)的基本過程及方法, 明白了屬性文法 的基本推導(dǎo)與構(gòu)造原理,了解了不同屬性之間的傳遞關(guān)系, 動(dòng)作的執(zhí)行流程,
16、也了解了棧式 抽象機(jī)及其匯編指令的執(zhí)行原理,了解了 TEST語(yǔ)言抽象機(jī)的原理。語(yǔ)法制導(dǎo):語(yǔ)法制導(dǎo)就是對(duì)文法中的每個(gè)產(chǎn)生式都附加一個(gè)語(yǔ)義動(dòng)作或語(yǔ)義子程序,且在語(yǔ)法分析過程中,每當(dāng)需要使用一個(gè)產(chǎn)生式進(jìn)行推導(dǎo)或歸約時(shí),語(yǔ)法分析程序除執(zhí)行相應(yīng)的語(yǔ)法分析動(dòng)作外,還要執(zhí)行相應(yīng)的語(yǔ)義動(dòng)作或調(diào)用相應(yīng)的語(yǔ)義子程序。每個(gè)語(yǔ)義子程序都指明了相應(yīng)產(chǎn)生式中各個(gè)符號(hào)的具體含義,并規(guī)定了使用該產(chǎn)生式進(jìn)行分析時(shí)所應(yīng)采取的語(yǔ)義動(dòng)作(如傳送或處理信息、查填符號(hào)表、計(jì)算值、產(chǎn)生中間代碼等等)。這種分析模式既把語(yǔ)法分析與語(yǔ)義處理分開, 又令其平行地進(jìn)行,從而在同一遍掃描中同時(shí)完成語(yǔ)法分析和 語(yǔ)義處理兩項(xiàng)工作。語(yǔ)法制導(dǎo)的屬性翻譯: 以
17、語(yǔ)法分析為基礎(chǔ), 伴隨語(yǔ)法分析的各步驟, 執(zhí)行相應(yīng)的語(yǔ)義動(dòng) 作;具體方法如下:1 將文法符號(hào)所代表的語(yǔ)言成分的意思,用屬于該文法符號(hào)的屬性表示;2 用語(yǔ)義規(guī)則(語(yǔ)義規(guī)則的執(zhí)行就是語(yǔ)義動(dòng)作 )規(guī)定產(chǎn)生式所代表的語(yǔ)言成分之間的關(guān) 系(即屬性之間的關(guān)系),即用語(yǔ)義規(guī)則實(shí)現(xiàn)屬性計(jì)算。3語(yǔ)義動(dòng)作(語(yǔ)義規(guī)則的執(zhí)行):在語(yǔ)法分析的適當(dāng)時(shí)刻(如推導(dǎo)或歸約)執(zhí)行附在對(duì)應(yīng)產(chǎn)生式上的語(yǔ)義規(guī)則,以實(shí)現(xiàn) 對(duì)語(yǔ)言結(jié)構(gòu)語(yǔ)義的處理,如計(jì)算、查填符號(hào)表、生成中間代碼、發(fā)布出錯(cuò)信息等。2、回答實(shí)驗(yàn)指導(dǎo)書的實(shí)驗(yàn)思考提出的問題。(1)語(yǔ)義及代碼生成程序中的符號(hào)表管理方案存在什么問題?提出改進(jìn)方案。 答:按照原來書上的代碼,符號(hào)表用的
18、是數(shù)組棧, 空間上容易造成浪費(fèi)或溢出,可以使 用 map 數(shù)組。但是我沒有實(shí)現(xiàn)使用map 數(shù)組。此外, 原來的代碼還沒有檢查是否賦初值, 對(duì)引用了未賦初值的變量也檢測(cè)不出來, 為 此我在符號(hào)表結(jié)構(gòu)中增加了一個(gè) int 類型的變量 notInit 來標(biāo)記變量是否賦初值。( 2)給出 產(chǎn)生式所添加的動(dòng)作含義。答: J vartablep,datap,codep int ID f nname-defj n,t;其中動(dòng)作符號(hào)的含義如下 :name-def J n,t:插入符號(hào)表;(3)給出 產(chǎn)生式中所添加的動(dòng)作含義。答: t()| ID f nLOOK J n f dLOAD J d |NUM f i
19、LOADI Ji其中動(dòng)作符號(hào)的含義如下LOOK J n f d:查符號(hào)表n,給出變量地址d;沒有,變量沒定義; LOAD J d :將地址d的變量入棧;LOADI J i:將常量i入棧;(4)在抽象機(jī)模擬程序中是如何統(tǒng)計(jì)指令總數(shù)的?畫出流程圖并做說明答:由于抽象機(jī)使用的是書上后面的代碼進(jìn)行修改的,使用的用while 循環(huán)來執(zhí)行每條指令,用 i 來統(tǒng)計(jì)指令總數(shù),將每一條指令與 code 進(jìn)行比較,若兩者相同則執(zhí)行相應(yīng)的操 作。執(zhí)行操作后 i 的次數(shù)加一,從而統(tǒng)計(jì)出指令總數(shù)。流程圖如下:開始N結(jié)束i|=|= maxvartablep)printf( 符號(hào)表溢出 n);exit(0);for(i=v
20、artablep-1;i=0;i-)/ 查符號(hào)表if (strcmp(,name)=0)deal_Error( 變量重復(fù)定義 ,wordLine); break;strcpy(,name); vartablevartablep.address=datap;vartablevartablep.notInit =0;dat ap+;分配一個(gè)單元,數(shù)據(jù)區(qū)指針加1vartablep+;/查詢符號(hào)表返回地址void lookup(char *name,int *paddress)int i;for(i=0;ivartablep;i+
21、)if (strcmp(,name)=0)*paddress=vartablei.address; exit(0);deal_Error( 變量未聲明 !, wordLine); J vartablep,datap,codep int ID f nname-def J n,t; void declaration_stat()if (strcmp(int, wordType) = 0)fscanf(fp, %s %s %d, wordType, wordValue, &wordLine); wordAll+;if (strcmp(ID, wordType) = 0)f
22、scanf(fp, %s %s %d, wordType, wordValue, &wordLine); wordAll+;name_def(wordValue);if (strcmp(;, wordType) = 0)fscanf(fp, %s %s %d, wordType, wordValue, &wordLine); wordAll+;else deal_Error( 聲明語(yǔ)句缺少 ;, wordLine - 1);else deal_Error( 聲明語(yǔ)句 ID 錯(cuò)誤 , wordLine);else deal_Error( 聲明語(yǔ)句缺少 int, wordLine);/*if ()
23、BRF f label1 BRf label2 SETlabelJ label1 else SETlabel J label2*/void if_stat()int es = 0, label1, label2;if (strcmp(if, wordType) = 0)fscanf(fp, %s %s %d, wordType, wordValue, &wordLine); wordAll+;if (strcmp(, wordType) = 0)/ 讀到 if 表達(dá)式的左括號(hào)fscanf(fp, %s %s %d, wordType, wordValue, &wordLine);wordAll
24、+; expression();if (strcmp(), wordType) = 0)/ 讀到 if 表達(dá)式的右括號(hào)label1 = labelp+;/ 用 label1 記住條件為假時(shí)要轉(zhuǎn)向的標(biāo)號(hào) fprintf(fout, BRF LABEL%dn, label1);/ 輸出假轉(zhuǎn)移指令fscanf(fp, %s %s %d, wordType, wordValue, &wordLine); wordAll+;statement();label2 = labelp+;/ 用 label2 記住要轉(zhuǎn)向的標(biāo)號(hào)fprintf(fout, BR LABEL%dn, label2);/ 輸出無條件轉(zhuǎn)
25、移指令fprintf(fout, LABEL%d:n, label1);/ 設(shè)置 label1 記住的標(biāo)號(hào) if (strcmp(else, wordType) = 0)/ 讀到 if 語(yǔ)句中的 else 部分 fscanf(fp, %s %s %d, wordType, wordValue, &wordLine); wordAll+;statement();else deal_Error( 缺少 ), wordLine);else deal_Error(if 語(yǔ)句缺少 (, wordLine);else deal_Error(if 語(yǔ)句錯(cuò)誤 , wordLine);fprintf(fout,
26、 LABEL%d:n, label2);/ 設(shè)置 label2 記住的標(biāo)號(hào)/:= for(,) /* :=for (;SETIabel f Iabel1BRF f label2BR f Iabel3;SETIabel f Iabel4 BR J labell)SETlabel J IabeI3 BR J IabeI4SETIabeI J IabeI2 */ void for_stat()int IabeI1,IabeI2,IabeI3,IabeI4;if (strcmp(for, wordType) = 0) fscanf(fp, %s %s %d, wordType, wordVaIue,
27、&wordLine); wordAII+;if (strcmp(, wordType) = 0)/ 讀入 for 語(yǔ)句左括號(hào)fscanf(fp, %s %s %d, wordType, wordVaIue, &wordLine);wordAII+;expression();/for 語(yǔ)句表達(dá)式 1 判斷 fprintf(fout, POPn);if (strcmp(;, wordType) = 0)/ 讀入 for 語(yǔ)句的第一個(gè)條件表達(dá)式后面的 ; IabeI1 = IabeIp+;fprintf(fout, LABEL%d:n, IabeI1);/ 設(shè)置 IabeI1 標(biāo)號(hào) fscanf(f
28、p, %s %s %d, wordType, wordVaIue, &wordLine); wordAII+;expression();/for 語(yǔ)句條件表達(dá)式 2IabeI2 = IabeIp+;fprintf(fout, BRF LABEL%dn, IabeI2);/ 輸出假條件轉(zhuǎn)移指令I(lǐng)abeI3 = IabeIp+;fprintf(fout, BR LABEL%dn, IabeI3);/ 輸出無條件轉(zhuǎn)移指令if (strcmp(;, wordType) = 0)/讀入 for 語(yǔ)句的第 二 個(gè)條件表達(dá)式后面 IabeI4 = IabeIp+;fprintf(fout, LABEL%d:
29、n, IabeI4);/ 設(shè)置 IabeI4 標(biāo)號(hào)fscanf(fp, %s %s %d, wordType, wordVaIue, &wordLine);wordAII+;expression();/for 語(yǔ)句條件表達(dá)式 3fprintf(fout,POPn);/fprintf(fout, BR LABEL%dn,I a be I 1 ) ; /輸出無條件轉(zhuǎn)移指令if (strcmp(), wordType) = 0)/for 語(yǔ)句讀入右括號(hào)fprintf(fout, LABEL%d:n, IabeI3);/ 設(shè)置 IabeI3 標(biāo)號(hào) fscanf(fp, %s %s %d, wordTy
30、pe, wordVaIue, &wordLine); wordAII+;statement();fprintf(fout, BR LABEL%dn, IabeI4);/ 輸出無條件轉(zhuǎn)移指令fprintf(fout, LABEL%d:n, IabeI2);/ 設(shè)置 IabeI2 標(biāo)號(hào)eIse deaI_Error(for 語(yǔ)句缺少 ), wordLine);eIse deaI_Error(for 語(yǔ)句缺少 ;, wordLine);eIse deaI_Error(for 語(yǔ)句缺少 ;, wordLine);eIse deaI_Error(for 語(yǔ)句缺少 (, wordLine);eIse de
31、aI_Error(for 語(yǔ)句錯(cuò)誤 , wordLine);/ t ()| ID f nLOOK J n f dLOAD J d |NUM f iLOADI J i void factor()if (strcmp(, wordType) = 0)fscanf(fp, %s %s %d, wordType, wordValue, &wordLine);wordAll+;expression();if (strcmp(), wordType) = 0)fscanf(fp, %s %s %d, wordType, wordValue, &wordLine);wordAll+;else deal_Er
32、ror(factor 缺少), wordLine);else if (strcmp(ID, wordType) = 0 | strcmp(NUM, wordType) = 0)int address; lookup(wordV alue, &address);查符號(hào)表,獲取變量地址 checkInitValue(wordValue);fprintf(fout, LOAD %dn, address);fscanf(fp, %s %s %d, wordType, wordValue, &wordLine); wordAll+;else deal_Error(factor 錯(cuò)誤 , wordLine);/賦初值void init(char *name)int i;for(i=0;ivartablep;i+)if (strcmp(,name)=0&vartablei.notInit =0)vartablei.notInit = 1;es=23;變量沒有聲明 deal_Error( 變量沒有聲明 , wordLine);/顯示符號(hào)表vo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:建構(gòu)自主知識(shí)體系視域下的檔案學(xué)術(shù)語(yǔ)革命研究
- 2025版委托擔(dān)保合同樣本:醫(yī)療器械注冊(cè)融資擔(dān)保協(xié)議6篇
- 2025版小學(xué)學(xué)生安全責(zé)任追究與保障協(xié)議15篇
- 二零二五版煤炭行業(yè)運(yùn)輸成本控制協(xié)議4篇
- 2025年貨運(yùn)從業(yè)資格證網(wǎng)上考核app
- 2025年度文化創(chuàng)意產(chǎn)業(yè)合作合同4篇
- 個(gè)人住宅租賃合同模板(2024年修訂版)版B版
- 2025版?zhèn)€人小產(chǎn)權(quán)房屋買賣合同范本及操作指南4篇
- 2024物業(yè)公司提供住宅小區(qū)互聯(lián)網(wǎng)接入服務(wù)合同
- 2025版學(xué)校浴池?zé)崴?yīng)系統(tǒng)優(yōu)化承包合同3篇
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國(guó)人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對(duì)法》及其應(yīng)用案例
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- 小學(xué)二年級(jí)數(shù)學(xué)口算練習(xí)題1000道
- 化學(xué)-福建省龍巖市2024屆高三下學(xué)期三月教學(xué)質(zhì)量檢測(cè)(一模)試題和答案
- 凸優(yōu)化在經(jīng)濟(jì)學(xué)與金融學(xué)中的應(yīng)用
- 家譜、宗譜頒譜慶典講話
- 高速公路收費(fèi)員培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論