Forskellen mellem Top Down og Bottom Up Parsing

Indholdsfortegnelse:

Forskellen mellem Top Down og Bottom Up Parsing
Forskellen mellem Top Down og Bottom Up Parsing

Video: Forskellen mellem Top Down og Bottom Up Parsing

Video: Forskellen mellem Top Down og Bottom Up Parsing
Video: How to Defer Parsing of JavaScript in WordPress (4 Methods) 2024, Juli
Anonim

Nøgleforskellen mellem top down og bottom up parsing er, at top down parsing udfører parsing fra stirrende symbol til input strengen, mens bottom down parsing udfører parsing fra input streng til start symbol. Desuden er en anden vigtig forskel mellem top down og bottom up parsing, at top down parsing bruger mest venstre afledning og bottom down parsing bruger højre mest afledning.

Sprog på højt niveau hjælper med at skrive computerprogrammer. De er lettere at forstå af programmøren, men ikke af computeren. Derfor konverterer højniveauprogrammet til maskinkode. Compilerens opgave er at konvertere den menneskelige læsbare kildekode til maskinlæsbar maskinkode. Et program gennemgår flere trin for at konvertere til maskinkode. Hele denne proces kaldes sprogbehandlingssystem. En af dem er opsamlingen. Syntaksanalysatoren eller parseren er i compileren, og den udfører parsingopgaven.

Hvad er Top Down Parsing?

Hvert programmeringssprog har et sæt regler, der repræsenterer sproget. Syntaksanalysatoren eller parsen tager inputstrengen og kontrollerer, om den er i overensstemmelse med grammatikproduktionerne. Med andre ord skal grammatikken producere den streng ved hjælp af et parsetræ.

I top-down parsing sker parsingen fra startsymbolet og vil nå den givne inputstreng. Overvej følgende grammatikproduktionsregler. Indtastningsstrengen (w) er cad.

S -> cAd

A -> ab /a

Fortolkningstræet efter at have udført top-down-parsing er som følger.

Forskellen mellem Top Down og Bottom Up Parsing
Forskellen mellem Top Down og Bottom Up Parsing
Forskellen mellem Top Down og Bottom Up Parsing
Forskellen mellem Top Down og Bottom Up Parsing

Figur 01: Parse Træ 1 med Top Down Parsing

S producerer c A d og A producerer en b. Snoren er cabd. Det er ikke den påkrævede streng. Så det er nødvendigt at lave backtracking, hvilket er at bruge de andre alternativer.

På samme måde producerer S c A d. Anvendelse af den anden mulighed for A vil give en. Nu giver den den nødvendige streng. Derfor accepterer parseren denne inputstreng. Parsetræet efter at have udført top down parsing er som følger.

Forskellen mellem Top Down og Bottom Up Parsing_Fig 2
Forskellen mellem Top Down og Bottom Up Parsing_Fig 2
Forskellen mellem Top Down og Bottom Up Parsing_Fig 2
Forskellen mellem Top Down og Bottom Up Parsing_Fig 2

Figur 02: Parse Træ 2 med Top Down Parsing

Når inputstrengen (w) er abbcde

Overvej følgende grammatikproduktionsregler.

S -> aABe

A -> Abc/b

B -> d

I top-down parsing, S -> aABe (erstatter A -> Abc)

S -> aAbcBe (erstatter A -> b)

S -> abbcBe (erstatter B ->d)

S -> abbcde

Udskiftning starter med den venstre mest variable først og derefter til den næste højre position og så videre. Derfor følger den en afledningsmetode mest til venstre. Desuden er det vigtigt at beslutte, hvilken produktionsregel man skal vælge, når der er en variabel.

Hvad er Bottom Up Parsing?

I bottom-up-parsing sker på den anden måde. Parsingen sker fra inputstrengen til startsymbolet. Overvej følgende grammatikproduktionsregler og lad inputstrengen være w ɛ cad

S -> cAd

A -> ab /a

Fortolkningstræet efter at have udført bottom-up-parsing er som følger.

Nøgleforskel mellem Top Down og Bottom Up Parsing_Fig 03
Nøgleforskel mellem Top Down og Bottom Up Parsing_Fig 03
Nøgleforskel mellem Top Down og Bottom Up Parsing_Fig 03
Nøgleforskel mellem Top Down og Bottom Up Parsing_Fig 03

Figur 03: Parse Træ med Bottom Up Parsing

Den givne streng er cad. a'et genereres af A. c, A og d kombineres for at få startsymbolet S.

Når inputstrengen(w) er abbcde

Overvej følgende grammatikproduktionsregler.

S -> aABe

A -> Abc/b

B -> d

I bottom-up-parsing, S -> aABe (erstatter B ->d)

S -> aAde (erstatter A -> Abc)

S -> aAbcde (Substuting A -> b)

S -> abbcde

Udskiftning starter med den mest højre variabel først og flytter derefter til den næste venstre position og så videre. Derfor følger den en venstre mot-afledningsmetode.

Hvad er forskellen mellem Top Down og Bottom Up Parsing?

Top-down parsing er en parsingstrategi, der først ser på det højeste niveau af parsetræet og arbejder ned ad parsetræet ved at bruge reglerne for en formel grammatik. Bottom up parsing er en parsingstrategi, der først ser på det laveste niveau af parsetræet og arbejder op i parsetræet ved at bruge reglerne for en formel grammatik. Parsingen sker fra startsymbolet til inputstrengen, i top down parsing. På den anden side sker parsing fra inputstrengen til startsymbolet, i bottom up parsing.

Ydermere er hovedbeslutningen i top down parsing at vælge hvilken produktionsregel der skal bruges til at konstruere strengen, mens hovedbeslutningen i bottom down parsing er at vælge hvornår en produktionsregel skal bruges til at reducere strengen til få startsymbolet. Desuden bruger top-down-parsing mest venstre-afledning og bottom-down-parsing bruger højre-mest afledning.

Forskel mellem Top Down og Bottom Up Parsing i tabelform
Forskel mellem Top Down og Bottom Up Parsing i tabelform
Forskel mellem Top Down og Bottom Up Parsing i tabelform
Forskel mellem Top Down og Bottom Up Parsing i tabelform

Opsummering – Top Down vs Bottom Up Parsing

Forskellen mellem top down og bottom up parsing er, at top down parsing udfører parsing fra det stirrende symbol til inputstrengen, mens bottom down parsing udfører parsing fra input streng til startsymbolet.

Anbefalede: