www.wikidata.uk-ua.nina.az
U Vikipediyi ye statti pro inshi znachennya cogo termina Sintaksichnij rozbir Sintaksi chnij ana liz pa rsing angl parsing v informatici ce proces analizu vhidnoyi poslidovnosti simvoliv z metoyu rozboru gramatichnoyi strukturi zgidno iz zadanoyu formalnoyu gramatikoyu Sintaksichnij analizator angl parser ce programa abo chastina programi yaka vikonuye sintaksichnij analiz Priklad rozboru virazu v derevoPid chas sintaksichnogo analizu tekst oformlyuyetsya u strukturu danih zazvichaj v derevo yake vidpovidaye sintaksichnij strukturi vhidnoyi poslidovnosti i dobre pidhodit dlya podalshoyi obrobki Zazvichaj sintaksichni analizatori pracyuyut v dva etapi na pershomu identifikuyutsya osmisleni tokeni vikonuyetsya leksichnij analiz na drugomu stvoryuyetsya derevo rozboru Zmist 1 Movi programuvannya 1 1 Sintaksichnij analizator 1 2 Oglyad procesu 2 Tipi analizatoriv 3 Primitki 4 Div takozh 4 1 Instrumenti rozrobki sintaksichnih analizatorivMovi programuvannya RedaguvatiSintaksichnij analizator Redaguvati Sintaksichnij analizator ce programnij komponent yakij prijmaye vhidni dani chasto tekst i stvoryuye strukturu danih chasto derevo rozboru abstraktne derevo sintaksisu abo inshu iyerarhichnu strukturu zabezpechuye strukturne predstavlennya vvodu pereviryaye pravilnist sintaksisu v procesi Analizu mozhut pereduvati abo sliduvati inshi kroki abo yih mozhna ob yednati v odin krok Analizatoru chasto pereduye okremij leksichnij analizator yakij stvoryuye tokeni z poslidovnosti vvedenih simvoliv Krim togo yih mozhna ob yednati u parsing bez skanuvannya en Analizatori mozhut buti zaprogramovani vruchnu abo avtomatichno abo napiv avtomatichno generatorom parseriv 1 Rozbir dopomagaye shablonu yakij viroblyaye vidformatovanij vihid Voni mozhut vikoristovuvatis u riznih dilyankah ale chasto z yavlyayutsya razom napriklad para scanf en printf en abo yak vhidnij analiz vhidnih danih ta vihidnij etapi stvorennya kincevogo kodu kompilyatora Vhidnimi danimi dlya sintaksichnogo analizatora chasto ye tekst deyakoyu komp yuternoyu movoyu ale takozh mozhe buti tekstom prirodnoyu movoyu abo mensh strukturovanimi tekstovimi danimi v comu vipadku yak pravilo vityaguyutsya lishe okremi chastini tekstu a ne derevo rozboru Parametri vidriznyayutsya vid duzhe prostih funkcij takih yak scanf do skladnih program takih yak interfejs kompilyatora C abo HTML analizator vebbrauzera Vazhlivij klas prostij sintaksichnij analiz vikonuyetsya za dopomogoyu regulyarnih viraziv v yakih grupa regulyarnih viraziv viznachaye regulyarnu movu ta dvigun regulyarnogo virazu avtomatichno generuyuchi analizator dlya ciyeyi movi sho dozvolyaye uzgoditi shablon ta viluchennya tekstu V inshih kontekstah regulyarni virazi zamist cogo vikoristovuyutsya pered rozborom yak etap leksizaciyi vihid yakogo potim vikoristovuyetsya analizatorom Vikoristannya analizatoriv zalezhit vid vhidnih danih U vipadku z movami danih chasto vikoristovuyetsya sintaksichnij analizator yak funkciya chitannya fajliv u programi napriklad chitannya v HTML abo XML teksti ci prikladi ye movami rozmitki danih U vipadku mov programuvannya ye komponentom kompilyatora abo interpretatora yakij analizuye pochatkovij kod movi komp yuternogo programuvannya dlya stvorennya pevnoyi formi vnutrishnogo predstavlennya analizator ye klyuchovim krokom v interfejsi kompilyatora Movi programuvannya yak pravilo vkazuyutsya v terminah deterministichnoyi kontekstno vilnoyi gramatiki en oskilki dlya nih mozhut buti napisani shvidki ta efektivni analizatori Dlya kompilyatoriv sam analiz mozhe buti vikonanij za odin prohid abo kilka prohodiv div odno prohidnij kompilyator en i bagatoprohidnij kompilyator Majbutni nedoliki kompilyatora z odnim prohidnim procesom u znachnij miri mozhut buti virisheni shlyahom dodavannya vipravlen koli peredbachayetsya vipravlennya vprodovzh pryamogo perehodu a vipravlennya zastosovuyutsya v zvorotnomu napryamku koli potochnij segment programi ye takim sho maye buti zavershenij Prikladom koli takij mehanizm vipravlennya mozhe buti korisnim ye formalne tverdzhennyam GOTO de vkazivnik GOTO nevidomij doki ne bude projdeno segment programi U takomu vipadku zastosuvannya vipravlennya bude vidkladeno doki ne bude viznacheno kudi vkazuye GOTO Ochevidno sho vidstalij GOTO ne vimagaye vipravlennya Kontekstni gramatiki obmezheni tiyeyu miroyu v yakij voni mozhut viraziti vsi vimogi do movi Neformalno prichinoyu ye te sho pam yat v takij movi obmezhena Gramatika ne zapam yatovuye isnuvannya konstrukciyi nad dovilnim vvedennyam ce neobhidno dlya movi v yakij napriklad im ya povinno buti ogolosheno persh nizh mozhe buti posilannya na nogo Odnak bilsh potuzhni gramatiki yaki mozhut obijti ce obmezhennya ne mozhut buti efektivno rozibrani Takim chinom zagalnoyu strategiyeyu ye stvorennya analizatora dlya kontekstno vilnoyi gramatiki yakij prijmaye potribni konstrukciyi movi tobto vin prijmaye deyaki nedijsni konstrukciyi piznishe nebazhani konstrukciyi mozhut buti vidfiltrovani na etapi semantichnogo analizu en kontekstnogo analizu Napriklad v Python takij sintaksichnij kod x 1 print x Takij kod odnak ye sintaksichno pravilnim z tochki zoru kontekstnoyi gramatiki yaka daye derevo sintaksisu z tiyeyu zh strukturoyu sho i poperednya ale ye sintaksichno nedijsnoyu z tochki zoru kontekstno zalezhnoyi gramatiki yaka vimagaye shob zminni buli inicializovani ranishe vikoristannya x 1 print y Zamist togo shob analizuvati na etapi parsinga ce vidbuvayetsya shlyahom perevirki znachen v derevi sintaksisu otzhe yak chastina semantichnogo analizu kontekstno zalezhnij sintaksis na praktici chasto bilsh legko analizuyetsya nizh semantika Oglyad procesu Redaguvati nbsp Shema roboti sintaksichnogo analizatoruNavedenij nizhche priklad demonstruye zagalnij vipadok rozboru komp yuternoyi movi z dvoma rivnyami gramatiki leksichnoyi ta sintaksichnoyi Pershij etap generaciya tokeniv abo leksichnij analiz za dopomogoyu yakih potik vhidnih simvoliv podilyayetsya na znachushi simvoli viznacheni gramatikoyu regulyarni virazi Napriklad programa kalkulyatora bude otrimuvati na vhid takij ryadok 12 3 4 2 i rozdiliti jogo na tokeni 12 3 4 2 kozhen z yakih ye znachushim simvolom v konteksti arifmetichnogo virazu Lekseri mistitimut pravila yaki vkazuyut na te sho simvoli i poznachayut pochatok novogo tokenu tak sho neznachni tokeni tipu 12 abo 3 ne budut stvoreni Nastupnim etapom ye parsing chi sintaksichnij analiz yakij pereviryaye chi tokeni utvoryuyut dopustimij viraz Ce yak pravilo robitsya z posilannyam na kontekstnu gramatiku yaka rekursivno viznachaye komponenti yaki mozhut sklasti viraz ta poryadok yih poyavi Prote ne vsi pravila sho viznachayut movi programuvannya mozhut buti virazheni kontekstno vilnimi gramatikami napriklad dijsnist tipu ta pravilne deklaruvannya identifikatoriv Ci pravila mozhut buti formalno virazheni atributivnimi gramatiki en Zaklyuchna faza ce semantichnij analiz abo parsing yakij rozroblyaye naslidki tilki sho pidtverdzhenogo virazhennya ta vzhivannya vidpovidnih zahodiv U vipadku kalkulyatora chi interpretatora diya polyagaye v ocinci virazu abo programi a kompilyator z inshogo boku generuye yakijs kod Atrimatichni gramatiki takozh mozhut buti vikoristani dlya viznachennya cih dij Tipi analizatoriv RedaguvatiZavdannya analizatora po suti polyagaye v tomu shob viznachiti yak vhid mozhna otrimati z pochatkovogo simvolu gramatiki Ce mozhna zrobiti po suti dvoma sposobami Nizhidnij sintaksichnij analiz analiz zgori donizu mozhna rozglyadati yak sprobu znajti najbilshij pochatok z slova x sho mozhe buti pochatkom slova sho vivoditsya shlyahom poshuku v sintaksichnomu derevi za dopomogoyu rozgornennya zgori donizu zadanih formalnih pravil gramatiki Tokeni chitayutsya zliva napravo Inklyuzivnij vibir vikoristovuyetsya dlya zadovolennya bagatoznachnosti shlyahom rozshirennya vsih alternativnih pravih pravil gramatiki 2 Sintaksichnij analiz znizu en Sintaksichnij analizator mozhe pochatisya z vvedennya ta sprobuvati perepisati simvol na jogo pochatku Intuyitivno sintaksichnij analizator namagayetsya znajti najdovshi osnovni elementi potim elementi sho mistyat yih i tak dali Analizator LR en ye prikladami analizatoriv znizu vgoru Inshim terminom sho vikoristovuyut dlya cogo tipu analizatora ye Shift Reduce en sintaksichnij analiz LL analizator ta rekursivnij spusk ye prikladami analizatorami zgori vniz yaki ne mozhut vrahovuvati livu rekursiyu en Hocha vvazhalosya sho prosti realizaciyi sintaksichnogo analizu zverhu vniz ne mozhut vrahovuvati pryamu ta nepryamu livu rekursiyu i mozhut vimagati eksponencialnogo chasu ta prostorovo skladnosti pid chas analizu neodnoznachnih kontekstno vilnih gramatik skladnishi algoritmi dlya rozboru zverhu vniz stvoryuyutsya Frost Hafiz i Callaghan 3 4 yaki vrahovuyut bagatoznachnist i liva rekursiya v polinomialnomu chasi i yaki generuyut polinomialne predstavlennya potencijno eksponencialnogo chisla derev rozboru Yihnij algoritm zdatnij vigotoviti yak livi tak i pravomirni pohidni vhidnih danih shodo ciyeyi kontekstno vilnoyi gramatiki Primitki Redaguvati Example Domain www example com Procitovano 24 listopada 2017 Aho A V Sethi R and Ullman J D 1986 Compilers principles techniques and tools Addison Wesley Longman Publishing Co Inc Boston MA USA Frost R Hafiz R and Callaghan P 2007 Modular and Efficient Top Down Parsing for Ambiguous Left Recursive Grammars 10th International Workshop on Parsing Technologies IWPT ACL SIGPARSE Pages 109 120 June 2007 Prague Frost R Hafiz R and Callaghan P 2008 Parser Combinators for Ambiguous Left Recursive Grammars 10th International Symposium on Practical Aspects of Declarative Languages PADL ACM SIGPLAN Volume 4902 2008 Pages 167 181 January 2008 San Francisco Div takozh RedaguvatiFormalni gramatiki Algoritm Erli Algoritm sortuvalnoyi stanciyi Sintaksichnij analiz zverhu vniz LR gramatiki Rekursivnij spusk Sintaksichnij rozbir znizu vverh Gramatiki pereduvannya Parseri movi Java Poverhnevo sintaksichnij analizInstrumenti rozrobki sintaksichnih analizatoriv Redaguvati ANTLR Bison Coco R GOLD JavaCC Lemon Parser Lex LRGen REBOL SableCC Spirit Parser Framework SYNTAX uCalc Fast Math Parser uCalc Language Builder 1 Visual BNF Yacc Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno kviten 2013 nbsp Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Sintaksichnij analiz amp oldid 34961712