Av
- Ben Lutkevich,Tekniske funksjoner Writer
Hva er en parser?
I datateknologi er en parser et program som vanligvis er en del av enkompilator. Den mottar input i form av sekvensielle kildeprograminstruksjoner, interaktive online-kommandoer,markeringtagger eller andre definertegrensesnitt.
Parsere deler innspillene de får inn i deler som substantivene (objektene), verbene (metodene) og deres attributter eller alternativer. Disse administreres deretter av annen programmering, for eksempel andre komponenter i en kompilator. En parser kan også sjekke for å sikre at alle nødvendige input er gitt.
Hvordan fungerer parsing?
En parser er et program som er en del av kompilatoren, og parsing er en del av kompileringsprosessen. Parsing skjer under analysestadiet av kompileringen.
Ved parsing tas kode fra forprosessoren, brytes opp i mindre biter og analyseres slik at annen programvare kan forstå den. Parseren gjør dette ved å bygge en datastruktur ut av inndatabitene.
Mer spesifikt skriver en person kode på et menneskelig lesbart språk som C++ eller Java og lagrer det som en serie tekstfiler. Parseren tar disse tekstfilene som input og bryter dem ned slik at de kan oversettes på målplattformen.
Parseren består av tre komponenter, som hver håndterer et annet trinn i parseprosessen. De tre stadiene er:

Trinn 1: Leksikalsk analyse
ENleksikalsk analysator-- eller skanner -- tar kode fra forprosessoren og deler den i mindre biter. Den grupperer innspilletkodei sekvenser av tegn kalt leksemer, som hver tilsvarer entoken. Tokens er grammatikkenheter iprogrammeringsspråksom kompilatoren forstår.
Leksikalske analysatorer fjerner også mellomromstegn, kommentarer og feil fra inndataene.
Trinn 2: Syntaktisk analyse

Dette trinnet av parsing sjekker den syntaktiske strukturen til inngangen, ved å bruke en datastruktur som kalles et parse-tre eller avledningstre. ENsyntaksanalysator bruker tokens til å konstruere et parse-tre som kombinerer den forhåndsdefinerte grammatikken til programmeringsspråket med tokens til inndatastrengen. Den syntaktiske analysatoren rapporterer ensyntaksfeilhvis syntaksen er feil.
Trinn 3: Semantisk analyse
Semantisk analyse verifiserer parsetreet mot en symboltabell og bestemmer om det er semantisk konsistent. Denne prosessen er også kjent som kontekstsensitiv analyse. Det inkludererdata-typekontroll, etikettkontroll og flytkontrollkontroll.
Hvis koden oppgitt er denne:
flyte a = 30,2; flyte b = a*20
da vil analysatoren behandle 20 som 20,0 før operasjonen utføres.
Noen kilder refererer bare til det syntaktiske analysestadiet som parsing fordi det genererer parsetreet. De utelater leksikalsk og semantisk analyse.

Hva er hovedtypene av parsere?
Når et programvarespråk opprettes, må skaperne spesifisere et sett med regler. Disse reglene gir grammatikken som trengs for å konstruere gyldige utsagn på språket.
Følgende er et sett med grammatiske regler for et enkelt fiktivt språk som bare inneholder noen få ord:
På dette språket må en setning inneholde et emne, verb og substantiv i den rekkefølgen, og spesifikke ord er tilpasset talens deler. Et emne er en artikkel etterfulgt av et substantiv. Et substantiv kan være ett av følgende tre ord:hund,kattellerperson. Og et verb kan bare værekjæledyrellermatet.
Parsing sjekker et utsagn somen bruker gir som inputmot disse reglene for å bevise at utsagnet er gyldig. Ulike parsingalgoritmer sjekker i forskjellige rekkefølger. Det er to hovedtyper av parsere:
- Top-down parsere.Disse starter med en regel øverst, for eksempel
::= . Gitt innspilletstreng"Personen matet en katt," ville analysereren se på den første regelen, og jobbe seg nedover alle reglene for å kontrollere at de er riktige. I dette tilfellet er det første ordet et , det følger emneregelen, og parseren vil fortsette å lese setningen på jakt etter et . - Nedenfra og opp-parsere.Disse starter med regelen nederst. I dette tilfellet vil parseren se etter et
først, deretter se etter et neste og så videre.
Enklere sagt, topp-ned-parsere begynner arbeidet sitt ved startsymbolet til grammatikken øverst i parsetreet. Deretter jobber de seg ned fra regelen til setningen. Nedenfra og opp-parsere jobber seg opp fra setningen til regelen.
Utover disse typene er det viktig å kjenne til de to typene avledning. Derivasjon er rekkefølgen som grammatikken forener inndatastrengen i. De er:
- LL-parsere.Disse analyserer input fra venstre til høyre ved å bruke avledning lengst til venstre for å matche reglene i grammatikken til input. Denne prosessen utleder en streng som validerer inndata ved å utvide elementet lengst til venstre i analysetreet.
- LR-parsere.Disse analyserer inndata fra venstre til høyre ved å bruke avledning lengst til høyre. Denne prosessen utleder en streng ved å utvide elementet lengst til høyre i analysetreet.
I tillegg finnes det andre typer parsere, inkludert følgende:
- Rekursive descent-parsere.Rekursive descent-parsere går tilbake etter hver beslutning, peker på å dobbeltsjekke nøyaktigheten. Rekursive descent-parsere bruker topp-ned-parsing.
- Earley-parsere.Disse analyserer allekontekstfrie grammatikker, i motsetning til LL- og LR-parsere. De fleste programmeringsspråk i den virkelige verden bruker ikke kontekstfrie grammatikker.
- Skift-reduser parsere.Disse forskyver og reduserer en inndatastreng. På hvert trinn i strengen reduserer de ordet til en grammatikkregel. Denne tilnærmingen reduserer strengen til den er fullstendig kontrollert.
Hvilke teknologier bruker parsing?
Parsere brukes når det er behov for å representere inndata frakildekodeabstrakt som endata strukturslik at det kan sjekkes for riktig syntaks. Kodespråk og andre teknologier bruker en eller annen type parsing til dette formålet.
Teknologier som bruker parsing for å sjekke kodeinndata inkluderer følgende:
Programmerings språk.Parsere brukes i alle programmeringsspråk på høyt nivå, inkludert følgende:
- C++
- Utvidbart Markup Language ellerXML
- Hypertext Markup Language ellerHTML
- Hypertekstforbehandler ellerPHP
- Java
- JavaScript
- JavaScript-objektnotasjon ellerJSON
- Perl
- Python
Databasespråk.Databasespråk som f.eksStrukturert spørrespråkbruker også parsere.
Protokoller.Protokoller somHypertext Transfer Protocolog internett-fjernfunksjonskall bruker parsere.
Parser generator.Parsergeneratorer tar grammatikk som input og genererer kildekode, som analyserer omvendt. De konstruerer parsere fravanlig uttrykk, som er spesielle strenger som brukes til å administrere og matche mønstre i tekst.
Parsing er et grunnleggende konsept innen programvareutvikling og databehandlingsteori. Imidlertid kan de fleste IT-proffer klare seg uten en dybdeforståelse av parsing ved å bruke lavkodeplattformer som lar brukere lage programvare uten å skrive tusenvis av kodelinjer. Lær degfordeler og ulemper ved å bruke lavkodeplattformeri bedriften.
Dette ble sist oppdatert ijuli 2022
Fortsett å lese om parser
- Terraform jukseark: Bemerkelsesverdige kommandoer, HCL og mer
Relaterte vilkår
- C++
- C++ er et objektorientert programmeringsspråk (OOP) som av mange blir sett på som det beste språket for å lage storskala ...Se fullstendig definisjon
- Vårramme
- Spring Framework (Spring) er et rammeverk for programvareutvikling med åpen kildekode som gir infrastrukturstøtte for å bygge ...Se fullstendig definisjon
- Unified Modeling Language (UML)
- Unified Modeling Language (UML) er en standardnotasjon for modellering av objekter fra den virkelige verden som et første trinn i utformingen av en ...Se fullstendig definisjon
Grav dypere i applikasjonsutvikling og design
- naturlig språkforståelse (NLU)Av: AlexanderGillis
- datalingvistikk (CL)Av: KinzaYasar
- cmdlet Av: StephenBigelow
- naturlig språkbehandling (NLP)Av: BenLutkevich