版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter5
Bottom-UpParsing
Shift-reduceparsingattemptstoconstructaparsetreeforaninputstringbeginningattheleaveswhichcanbeconsideredasbottomandworkinguptowardstheroot,knowastop.Wecanthinkofthisprocessasoneofreducingwhichreduceastringtothestartsymbol.Ateachreductionstep,aparticularsubstringmatchestherightsideofproductionandisreplacedbythesymbolontheleftoftheproduction.Aneasy-to-implementformofshift-reduceparsingisoperator-precedenceparsing.Amuchmoregeneralmethodofshift-reduceparsingisLR(0)andSLR(1)parsing.Thepositionofbottom-upsyntaxanalyzerincompilerisshownbyFig.5.1.235.1Operator-precedenceParsing
Ifagrammarhasthepropertythathastwoadjacentnonterminals,wecaneasilyconstructefficientshift-reduceparsersbyhand,theeasy-to-implementparsingtechniquecalledoperator-precedenceparsing.Thetechniqueisdescribedasamanipulationontokenswithoutanyreferencetoanygrammar.Oncewefinishbuildinganoperator-precedenceparserfromagrammar,wemayefficientlyignorethegrammar,usingthenonterminalsonthestackonlyasplaceholdersforattributesassociatedwiththenonterminals.45.1.1Relationbetweenpairsof
operatorprecedence
Therearethreerelationsbetweenpairsofoperatorprecedence,“a”and“b”belongstoVT,U,VandRbelongtoVN,thentheiroperatorprecedenceare51.ab,meanstherearerulesU∷=…ab…orU∷=…aVb…2.a
b,meanstherearerulesU∷=…aR…,R+b…orR+Vb3.ab,meanstherearerulesU∷=…Rb…,R+…aorR+…aV
Note:Theprecedencerelationsbetweenaandbaredifferentwitharithmeticrelations“lessthan”,“equalto”and“greaterthan”,thatis,a
bdoesnotequaltoba,abdoesnotequaltoba
.>
·
<.>·
<···6Example5.1
grammarG〔E〕:
E∷=E+T|TT∷=T*F|FF∷=(E)|iFromruleF∷=(E),wecanobtaintheprecedencerelationbetween“(“and“)”()FromruleE∷=E+T,weknowafter“+”thereisTT*…,sotheprecedencerelationbetween“+”and“*”:
+*FromruleF∷=(E),andE+…+T,wecanobtaintheprecedencerelationbetween“+”and“)”:+)·.>·
<75.1.2ConstructingOperator-
precedenceRelation
Thissection,wewillgiveageneralmethodofconstructingoperatorprecedence,firstly,wewilldefinetwonewsets:FIRSTTERM(U)andLASTTERM(U).b∈FIRSTTERM(U)whenthereisrule:U∷=+b…orU∷=+Vb…b∈LASTTERM(U)whenthereisrule:U∷=+…borU∷=+…bVwhileb∈VT,V∈VN。8ThealgorithmofconstructingoperatorprecedenceisStep1constructingsetofFIRSTTERMandsetofLASTTERMforeachnonterminal.a,b∈VTandU,R∈VN。Step2IfthereisgrammarGlikeU∷=…ab…orU∷=…aVb…abIfthereisgrammarGlikeU∷=…aR…,and,b∈FIRSTTERM(R)abIfthereisgrammarGlikeU∷=…Rb…,and,a∈LASTTERM(R)ab··
<.>9Step3
constructingoperatorprecedencefromstring“#”andotherterminals,thereare#FIRSTTERM(U)LASTTERM(U###Accordingtothealgorithm,weconstructtheoperatorprecedenceofexample5.1·.>·
<1011So,theoperatorprecedencematrixofexample5.1isshownbytable5.1125.1.3Operator-precedenceGrammar
Operator-precedenceparsinghasthreedisadvantages,Itishardtohandletokensliketheminussign,whichhastwodifferentprecedence.Onecannotalwaysbesuretheparseracceptsexactlythedesiredlanguage.Onlyasmallclassofgrammarscanbeparsedusingoperator-precedencetechniques.Inanoperatorgrammar,noproductionrulecanhave.13
attherightsidetwoadjacentnon-terminalsattherightside.E∷=AB E∷=EOE E∷=E+E|A∷=a E∷=id E*E|B∷=b O∷=+|*|/ E/E|inotoperatorgrammarnotoperatorgrammar operatorgrammar14OperatorgrammaralsocanbecalledOG.Therearethreetypesdisjointprecedencerelationbetweenpairofterminals,thethreetypesdisjointprecedenceare,and,Butifapairofterminalsonlyhasonecertaintypeprecedencerelation,thiskindofOGisoperatorprecedencegrammar,namely,OPG.
Forexample,grammarE∷=E+E|E*E|E/E|iisnotoperator-precedencegrammar.BecausefromFig5.2,weknowtherearetwogrammartreefor(+,/),inadditiontherearetwoprecedencerelationsbetweenthem,namely,+/and+/·
<.>15Fig.5.2TwosyntaxtreeofstringE+E/E图5.2句型E+E/E的两棵语法树165.1.4LeftmostPhrase
Thesyntaxtreeforsentence#T+T*F+i#ingrammarG[E]ofexample5.1isshownbyFig.5.3.EE+TET+FTT*Fi
Fig.5.3syntaxtreeof#T+T*F+i#图5.3句型语法树17
WecanseethatthereareseveralphrasesfromFig.5.3T(FornonterminalE)
T*F(FornonterminalT)
T+T*F(FornonterminalE)
i(FornonterminaF)
T+T*F+i(FornonterminalE)18ThesimplephrasesareT,T*Fandi,thehandleisT,T*Fistheleftmostphrase.Sothedefinitionofleftmostphraseis:itisaphrasethatincludesatleastoneterminal,inaddition,itdoesnotincludeanyotherphrase.Forexample,thereissentence#F*i+i#,itssyntaxtreeisshownbyFig.5.4.Ithastwophrasesiandi,butF*iisnotphrase,becauseitincludestheotherphrasei.1920Next,wewillgiveageneralmethodtoobtaintheleftmostphraseofoperatorprecedence.thesentenceofaoperatorgrammar#V1a1V2a2…Viai…Vn
andVn+1#WhileViisnonterminal,aiisterminal,thatmeansthereisonlyonenonterminalbetweentwoadjacentterminals.Leftmostphrasehasthepropertyaiai+1,ai+1ai+2,aj-1aj,ajaj+1
··.>·
<21theleftmostphraseisVi+1ai+1…VjajVj+1Forexample,thesentenceofG[E]is#T+T*F+i#,therearethreenonterminals(V1=T,V2=T,V3=F),andfourterminals(a1=+,a2=*,a3=+,a4=i),whilea1,a2,a3havethepropertie,a1a2,a2a3So,T*F(namely,V2a2V3)istheleftmostphraseofthesentence#T+T*F+i#.·
<.>225.1.5TheAlgorithmandProgramof
OperatorPrecedenceParsing
Thissection,wewillintroduceabottom-upparsingalgorithm—operatorprecedenceparsingalgorithm.Inthealgorithm,everyplaceholderisleftmostphrase,namely,everyreductionistofindtheleftmostphrase.Step1.Constructoperatorprecedencerelationmatrix.Step2.Createasymbolstacktostorethereductionstringorleftmoststring,buildotherinputstacktostoreinputstring.Atbeginning,thereisonlyonesymbol“#”insymbolstack,andthereisthefirstterminalininputstack.23Step3.Fromthetopterminalxnmovetobottomofsymbolstack,andatthesametimecomparewithitsclosest..terminal,ifxn-1xngooncomparingxn-2andxn-1tillxi-1xi,nowwecanobtaintheleftmostphrase:NixiNi+1xi+1…NnxnNn+1(IfNiisempty,xiisthebeginningsymbol).>24Step4.IngrammarG,wechoosetherightofruleisNixiNi+1xi+1…NnxnNn+1toreduce(nonterminalneednotbesame),thatis,popleftmostphraseatthetopofsymbolstack,andpushitsleftoftheruleintothestack.Whenthereareonly#oronenonterminaland#insymbolstack,thereis#ininputstack,thatmeanstheanalysissucceed,theinputstringisthesentenceofthegrammar,exitfromtheprogram;ornot,returnto3.25Theprogramofoperatorprecedenceparsingisasfollows.setptopointtothefirstsymbolofw$;
repeatforever
if($isontopofthestackandppointsto$)thenreturn
else{ letabethetopmostterminalsymbolonthestackandletbbethesymbolpointedtobyp;
if(aborab)then{ /*SHIFT*/ pushbontothestack; advanceptothenextinputsymbol;}
elseif(ab)then
/*REDUCE*/
repeatpopstack
until(thetopofstackterminalisrelatedbytotheterminalmostrecentlypopped);
elseerror();}26Soforexample5.1grammarG〔E〕:
E∷=E+T|TT∷=T*F|FF∷=(E)|iStringi*(i+i)isrecognizedbyoperatorprecedencealgorithm,theanalysisprocessisshownbyTable5.22728Example5.2
ConsiderthefollowinggrammarS∷=(L)|aL∷=L,S|S
andthefollowingoperator-precedencerelations29Usingtheseprecedencerelationstoparsethesentence(a,(a,a)).305.2LR(0)Parser
Wehaveknownthattherearesomelimitationsingrammarwhenwereducebymethodofoperatorprecedence,forexample,theruleofU∷=εshouldnotbeappeared,andtherearetwoadjacentnonterminalsinoperatorprecedencegrammar.ForLR(0)parser,therearenosuchlimits,soitisefficientbottom-upsyntaxanalysistechniquethatcanbeusedtoparsealargeclassofcontext-freegrammars.“L”inLRparsingmeansleft-to-rightscanningoftheinput,the“R”initisforconstructingarightmostderivationinreverse,the“0”meansneednottocheckuplookaheadfortheinputsymbolsthatareusedinmakingparsingdecisions.315.2.1ViablePrefix
Inordertoexplainhowtoderivationfrombottomtoup,wewillfirstlydiscusstheconceptofcanonicalprefixbyanexample.ThereisgrammarG〔S〕:
S∷=aABeA∷=Abc|bB∷=dWelabelfourrulesinG[S]bynumbers,theyareS∷=aABe〔1〕
A∷=Abc
〔2〕
A∷=b〔3〕
B∷=d〔4〕32Sotherightsententialdeductionof“abbcde”isS
aABe
aAde
aAbcde
abbcde
〔1〕〔4〕〔2〕〔3〕
Thereductionoftheinputstring“abbcde”isshownbelow.So,theprefixofeveryderivation,wecallitviableprefix.
335.2.2ConstructingFAbyViablePrefixItisremarkablefactthatifitispossibletorecognizeaviableprefixknowingonlythegrammarsymbolonthestack,thereisfiniteautomationthatcandeterminewhatthehandleis..
Inaddition,wecandefinethatitemofgrammaristhestateoffiniteautomation.34Itemofgrammarisaproductionofgrammarwithadotatsomepositionoftherightside.Forexample,productionA∷=XYZyieldsthefouritemsA∷=·XYZA∷=X·YZA∷=XY·ZA∷=XYZ·35ThefirstitemaboveindicatesthatwehopetoseeastringderivablefromXYZnextontheinput.TheseconditemindicatesthatwehavejustseenontheinputastringderivablefromX,andwehopenextsteptoseeastringderivablefromYZ.TheproductionU∷=εgeneratesonlyoneitem,U∷=·.Afterdefiningtheitem,weknowthestatesinfiniteautomation,thenwecandesignfiniteautomation.Forexample,thereisaruleofgrammar:X::=aAc,ithasthreeitems,(h)X::=•aAc(i)X::=a•Ac(k)A::=•d36h,i,kareitems(states)offiniteautomation.Thedotinstateiisinnextpositionofstateh,sowecandrawanarcfromstatehtostatei,thearcislabeledbya.Inaddition,Aisnonterminal,andthereisitemkthatitsleftsideisA,wecandrawanarcfromitokandlabelthearcbyε..
37Example5.3GrammarG[S]:
S∷=E〔1〕
E∷=aA
〔2〕
E∷=bB
〔3〕
A∷=cA
〔4〕
A∷=d〔5〕
B∷=cB
〔6〕
B∷=d〔7〕38Fromtheitemdefinedabove,weknowthereare18items,anditsfiniteautomationisshownbyFig.5.51.S∷=·E2.S∷=E·3.E∷=·aA4.E∷=a·A5.E∷=aA·6.A∷=·cA7.A∷=c·A8.A∷=cA·9.A∷=·d10.A∷=d·11.E∷=·bB12.E∷=b·B13.E∷=bB·14.B∷=·cB15.B∷=c·B16.B∷=cB·17.B∷=·d18.B∷=d·3940Wedivideitemsintoseveraltypesaccordingtothedotpositioninitemandjudgebythesymbolafterthedotifitisnonterminalorterminal.(1)Shiftitem,theitemformlookslikeA::=α·aβ,meanspush“a”intostack,andstatechangesfrombeforedotstatetodotafterstate,whileα,β∈V*,a∈VT..(2)Waitingreductionitem,theitemformlookslikeA::=α·Bβ,itemafterdotiswaitingreduceitem,itmeansafterreduceBthatAcanbereduce,whileα,β∈V*,B∈VN..41(3)Reduceitem,theitemformisA::=α·,whileα∈V*,namely,itisreductionitemwhendotisontherightmost,itmeansthattherightsideofaproductionhasbeenanalyzed,thehandlehasbeenrecognized.(4)Acceptitem,theitemformlookslikeS∷=α·,whileα∈V+,Sisstartsymbol.Inexample5.3,state3andstate17isshiftitem,state4andstate15iswaitingreduceitem,state2andstate5isreduceitem,inaddition,state2isacceptitem.Theconnectionarcsonpathfromstartstatetooneofreducestateisviableprefixofthesentence,suchasbccBisviableprefix..42FromFig.5.4,weknowitisanonfiniteautomation.ThecentralideaintheLRmethodistoconstructadeterministicfiniteautomationfromthegrammar.So,weshouldgroupitemstogetherintosets,whichcanconstructdeterministicfiniteautomationfromit.Weuseclosureoperationtoconstructitemsets.435.2.3TheClosureofsetofitems
IfIisasetofitemsforagrammarG,thenclosure(I)isthesetofitemsconstructedfromIbythetworules:1Initially,everyiteminIisaddedtoclosure(I).2IfU∷=x·Vyisinclosure(I)andV∷=zisaproduction,thenaddtheitemV∷=·ztoI,ifitisnotalreadythere.Weapplythisruleuntilnomorenewitemscanbeaddedtoclosure(I).Forexample,thereisitemS∷=·E,anditisinclosureI0,thenE∷=aA|bB,sotheitemsE∷=·aAandE∷=·bBareinclosureI0too,thatis,I0={S∷=·E,E∷=·aA,E∷=·bB}44Intuitively,U∷=x·Vyinclosure(I)indicatesthat,atsomepointsintheparsing,wemightseeasubstringderivablefromVythatisasinput.IfV∷=zisaproduction,wealsoexpectwemightseeasubstringderivablefromz.Forthisreason,V∷=·zisincludedinclosure(I).AnusefulapplicationofclosureisfunctionGOTO(I,X),whileIisasetofitemsandXisasymbol.GOTO(I,X)isdefinedtobetheclosureofthesetofallitemsU∷=xX·yisinI.45Thealgorithmofclosure(I)is:Cis{closure({S’
.S})}repeatthefollowingsuntilnomoresetofLR(0)itemscanbeaddedtoC.foreachIinCandeachgrammarsymbolXifgoto(I,X)isnotemptyandnotinC
addgoto(I,X)toC46WithclosureandGOTOfunction,wecaneasilychangetheNFAtoDFA,Fig.5.6isanexampleofit.475.2.4LR(0)ParsingTable
LR(0)parserconsistsofaninputandoutputstack,adriverprogram,andaparsingtablethathastwoparts(ACTIONandGOTO).ThedrivingprogramissameforallLRparser,onlytheparsingtablechangesfromeachother.Inputstackstoresinputstringoftheforms0X1s1X2s2…Xmsm,whereeachXiisagrammarsymbol,andeachsiisasymbolcalledastate.Parsingtableincludestwoparts,aparsingactionfunctionACTIONandagotofunctionGOTO.ACTIONandGOTOfunctionscanrecognizeviableprefixfromallthedeterministicfiniteautomation..48TherearethreerowsinLR(0)parsingtable,thefirstonerepresentsthestates(Ii);thesecondoneisACTION,meanswhatACTIONshoulddonext;thethirdoneisGOTO,meanstojudgewhichstatewillbechosennext.WeshallexplainGOTOandACTIONasfollow.x,y∈V,a∈VT.ConstructC={I0,I1,…In},thecollectionofsetsofLR(0)itemsforgrammar.(1)IfU∷=x·ayisinIi,andGOTO(Ii,a)=Ij,thensetACTION[i,a]=“Sj”,Here“a”mustbeaterminal.(2)IfU∷=x·isinIi,thensetACTION[i,a]=“rj”orACTION[i,#]=“rj”,meansusingrulej:U∷=xtoreduce,because“#”and“a”representsanysymbol;.49(3)IfZ∷=x·isinIi,Zisstartsymbolofgrammar.thensetACTION[i,#]=“acc”,“acc”meansaccept.(4)TheGOTOtransitionsforstateiareconstructedforallnonterminalsU,ifGOTO(Ii,U)=Ij,thenGOTO[i,U]=“j”.(5)Allentriesisnotdefinedbyaboverulesaremade“error”.Note:
ifanyconflictingactionisgeneratedbytheaboverules,wesaythegrammarisnotLR(0),thealgorithmfailstoproduceaparserinthiscase.50Weknowhowtoconstructtheitemsfromgrammarandhowtoobtaintheclosureofitems,thenwhatwedonextistouseexample5.3toexplainhowtoconstructLR(0)parsingtablebythemethodabove.First,welookfortheitemwhichformisU∷=x·ayfromI0toI11,inexample5.3,therearerulesE∷=•aA,E∷=•bB,GOTO(I0,a)=I2,GOTO(I0,b)=I3,sothereareACTION﹝0,a﹞=“S2”,ACTION﹝0,b﹞=“S3”,thatiswhythereareS2andS3inthefirstandsecondrowinTable5.5,withthesimilarreason,thereareS5,S6,S8,S9indifferentrows.51Second,wejudgeifthereisitemformofU∷=x·,inexample5.3,formofitemI4isE∷=aA•,sothenumber2ruleofE∷=aAcanbeusedtoreduceandthereisr2inI4,similarly,I6I7I9I10I11haver5,r3,r7,r4andr6separately.Third,wecheckifthereareitemswhichformisZ∷=x·,inexample5.3,itemI1istheformofS∷=E•,soACTION﹝1,#﹞=“acc”,thereisaccinI1inTable5.5.Finally,welookfortheitemthatformisGOTO(Ii,U)=IjandU∈VN,inexample5.3,thereisGOTO(I0,E)=I1,sothereis1inrowEofI0.Similarly,withI2,I3,I4andI8,theyhave4,7,10and11inrowAandBdifferently.So,weobtaintheparsingtableofexample5.3anditisshownbyTable5.5.5253Withparsingtable,weareeasytoparsegrammar,butiftheparserrunsautomatically,thelimitationisthatwemusthaveadriverprogramtocontroltheinputandoutputstack,andtheirinformationtransformationwithparsingtable.Namely,everystepofdriverprogramwillcheckupthepresentstateofstack,inputsymbolandLR(0)parsingtable,runtheoperationofACTION﹝q,a﹞andGOTO.Wecanusethefollowingconfigurationtorepresenttheirrelation,itincludesthreeparts:statestack“q”,symbolstack“X”andinputstring“a”.
(q0q1…qi,#X1X2…Xi,akak+1…an#)54Thetopstateofstatestackisqi,topsymbolofsymbolstackisXi,thecurrentinputsymbolisak.WhatwewilldonextistocheckLR(0)parsingtableandruntheoperationbyACTION[qi,ak],thedetailisasfollows.Theinitialconfiguration
(q0,#,a1a2…an#)(1).IfACTION﹝qi,ak﹞=Sj,meanstheinputsymbolakwouldbepushedintosymbolstackX,thestatewillshiftfromstateqitoitsnextstateqj,theconfigurationbecomes
(q0q1…qiqj,#X1X2…Xiak,ak+1…an#)Thecurrentstatebecomesstateqj,currentinputsymbolisak+1.55(2).IfACTION﹝qi,ak﹞=rj,akisterminalor#,theparserexecutesareducemove,thetopofsymbolstackwillreducebyrulej,thelengthofsymbolstackandstatestackshoulddecreaselengthm,heremislengthofrightsideofrj.Forexample,rulejisU∷=x,thelengthofxism,inaddition,thereisGOTO﹝qi-m,U﹞=qt,sotheconfigurationbecomes
(q0q1…qi-mqt,#X1X2…Xi-mU,akak+1…an#)WhileakisnotinsymbolstackX,thecurrentinputsymbolstillisak,thecurrentstateisqt,itcomesfromGOTO﹝qi-m,U﹞=qt.563IfACTION﹝qi,ak﹞=acc,parsingiscompleted.4IfACTION(qi,ak)=ERROR,theparserhasdiscoveredanerror,driverprogramofparserwillstop.Weusethedriverprogramtojudgeifstring“acccd”canberecognizedbythegrammarofexample5.3,therecognitionsucceedsandtheresultisshownbytable5.6.57585.3SLR(1)Parser
Weoftenmeetaugmentedexpressiongrammarwhenweparse,suchasthegrammarG[U].G[U]:U∷=x·by
〔1〕
V∷=x·〔2〕
W∷=x·〔3〕
ThethreerulesbelongtooneitemI0={U∷=x·by,V∷=x·,W∷=x·}59Whenweparsethegrammar,therearetworulesV∷=x·andW∷=x·thattheybothcanbeusedtoreduce,namely,r2andr3.Inthiscase,wecannotparsethegrammarbyLR(0),becauseLR(0)parsetablecannotrecognizetworeducerulesinoneitemform.Whatweshoulddointhiscase?SLR(1)parsercansolvethisproblem.SLR(1)parserwillchecktheinputsymbol“a”tojudge(1)Ifa=b,thenACTION[0,a]=“S1”(2)Ifa∈FOLLOW(V),thenACTION[[1,a]=“r2”(3)Ifa∈FOLLOW(W),thenACTION[[1,a]=“r3”(4)Otherwise,ACTION[0,a]=“ERROR”60Note:FOLLOW(V),FOLLOW(W)and{b}shouldnotbeintersectedandhavenotsameelement.AnSLR(1)grammarcanbedefinedasfollows.I={U1∷=x·b1y1,U2∷=x·b2y2,…,Um∷=x·bmym,V1∷=x·,V2∷=x·,…,Vn∷=x·}Set{b1,b2,…,bm},FOLLOW(V1),FOLLOW(V2),…,andFOLLOW(Vn)shouldnotbeintersected.SLRmeanssimpleLR,itistheweakestgrammarandistheeasiesttobeimplement.ParsingtableconstructedbythismethodiscalledSLRtable,inaddition,LRparserusinganSLRparsingtableissaidtobeSLRparser.AgrammarforwhichanSLRparsercanbeconstructedisSLRgrammar.SLR(1)parserworkslikethatitscanstheinputstringfromleft-to-right,constructsarightmostderivationinreverse,checksup1inputsymbollookahead.61ThedifferentbetweenconstructingSLR(1)parsertableandLR(0)parsertableisatthesecondstep,thechangedstep2is:IfU∷=x·isinIi,andifa∈FOLLOW(U),thensetACTION[i,a]=“rj”orACTION[i,#]=“rj”,meansusingrulej:U∷=xtoreduce,because“#”and“a”(representsanysymbol)areinFollow(U);WestillusethegrammarG[S]ofexample5.1toexplainhowtoconstructtheSLR(1)parser.G[S]:
S∷=E〔1〕
E∷=E+T〔2〕
E∷=E〔3〕
T∷=T*F〔4〕
T∷=F〔5〕
F∷=(E)〔6〕
F∷=i〔7〕62BeginningFromthefirstruleS∷=E,WeobtaintheitemI0:I0={S∷=·E,E∷=·E+T,E∷=·T,T∷=·T*F,T∷=·F,F∷=·(E),F∷=·i}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 循环经济模式下的物流绿色配送方案
- 企业环境管理体系认证审核要点与案例分析
- 对培训会议组织情况的反馈回复函4篇
- 2026湖南郴州市中医医院中医医师规范化培训学员招生简章备考题库及完整答案详解(易错题)
- 2026广东云浮市郁南县公路养护中心编外人员招聘笔试题库【达标题】附答案详解
- 室内植物养护与装饰指导书
- 2026广西北海市动物卫生监督所招录公益性岗位人员4人模拟试卷【培优】附答案详解
- 2026浙江嘉兴市秀洲文化旅游投资发展有限公司招聘运营副经理1人(7-7)模拟试卷含答案详解【研优卷】
- 数字化转型项目验收标准通知函4篇
- 基于深度强化学习的城市交通信号控制研究
- 2025年国家故宫博物院应届高校毕业生招聘64人(北京)笔试历年参考题及答案
- 2026年山东省统考中考语文真题含答案
- 2026年事业单位考试时事政治试题及答案
- 2024年江苏无锡市江阴市江南水务股份有限公司招聘笔试参考题库含答案解析
- 杉木人工林抚育经营技术规程
- 西南师大版五年级下册异分母分数加减混合运算练习400题及答案
- 安全用药管理培训内容
- 冠脉造影识图
- 《C语言入门教程》课件
- 辽宁省沈阳市皇姑区2022-2023学年六年级下学期期末质量监测语文试卷
- 中国慢性呼吸道疾病呼吸康复管理指南(2021年)
评论
0/150
提交评论