Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto

Sommario:

Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto

Video: Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto

Video: Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto
Video: moto di CADUTA LIBERA, accelerazione di gravita, fisica caduta libera, moto uniformemente accelerato 2024, Novembre
Anonim

La differenza fondamentale tra l'analisi dall' alto verso il basso e dal basso verso l' alto è che l'analisi dall' alto verso il basso esegue l'analisi dal simbolo fisso alla stringa di input mentre l'analisi dal basso verso il basso esegue l'analisi dalla stringa di input al simbolo iniziale. Inoltre, un' altra importante differenza tra l'analisi dall' alto in basso e quella dal basso verso l' alto è che l'analisi dall' alto in basso utilizza la derivazione più a sinistra e l'analisi dal basso in basso utilizza la derivazione più a destra.

Le lingue di alto livello aiutano a scrivere programmi per computer. Sono più facili da capire dal programmatore ma non dal computer. Pertanto, il programma di alto livello viene convertito in codice macchina. Il compito del compilatore è convertire il codice sorgente leggibile dall'uomo in codice macchina leggibile dalla macchina. Un programma passa attraverso diversi passaggi per convertire in codice macchina. L'intero processo è chiamato Sistema di elaborazione del linguaggio. Uno di questi è la compilation. L'analizzatore di sintassi o il parser si trova nel compilatore ed esegue l'attività di analisi.

Cos'è l'analisi top-down?

Ogni linguaggio di programmazione ha una serie di regole per rappresentare il linguaggio. L'analizzatore di sintassi o l'analisi prende la stringa di input e controlla se è conforme alle produzioni grammaticali. In altre parole, la grammatica dovrebbe produrre quella stringa usando un albero di analisi.

Nell'analisi dall' alto verso il basso, l'analisi avviene dal simbolo iniziale e raggiungerà la stringa di input data. Considera le seguenti regole di produzione grammaticale. La stringa di input (w) è cad.

S -> cAd

LA -> ab /a

L'albero di analisi dopo aver eseguito l'analisi dall' alto verso il basso è il seguente.

Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto

Figura 01: Analisi dell'albero 1 con analisi dall' alto verso il basso

S produce c A d e A produce a b. La corda è cabd. Non è la stringa richiesta. Quindi, è necessario fare il backtracking, ovvero utilizzare le altre alternative.

Allo stesso modo, S produce c A d. L'applicazione dell' altra opzione per A darà a. Ora fornisce la stringa richiesta. Pertanto, il parser accetta questa stringa di input. L'albero di analisi dopo aver eseguito l'analisi dall' alto verso il basso è il seguente.

Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto_Fig 2
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto_Fig 2
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto_Fig 2
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto_Fig 2

Figura 02: Analisi dell'albero 2 con analisi dall' alto verso il basso

Quando la stringa di input (w) è abbcde

Considera le seguenti regole di produzione della grammatica.

S -> aABe

LA -> Abc/b

B -> re

Nell'analisi dall' alto verso il basso, S -> aABe (Sostituendo A -> Abc)

S -> aAbcBe (sostituendo A -> b)

S -> abbcBe (sostituendo B ->d)

S -> abbcde

La sostituzione inizia prima con la variabile più a sinistra e poi con la posizione successiva a destra e così via. Pertanto, segue un metodo di derivazione più a sinistra. Inoltre, è importante decidere quale regola di produzione scegliere quando è presente una variabile.

Cos'è l'analisi dal basso?

Nell'analisi dal basso avviene nell' altro modo. L'analisi avviene dalla stringa di input al simbolo iniziale. Considera le seguenti regole di produzione grammaticale e lascia che la stringa di input sia w ɛ cad

S -> cAd

LA -> ab /a

L'albero di analisi dopo aver eseguito l'analisi dal basso verso l' alto è il seguente.

Differenza chiave tra analisi dall' alto verso il basso e dal basso verso l' alto_Fig 03
Differenza chiave tra analisi dall' alto verso il basso e dal basso verso l' alto_Fig 03
Differenza chiave tra analisi dall' alto verso il basso e dal basso verso l' alto_Fig 03
Differenza chiave tra analisi dall' alto verso il basso e dal basso verso l' alto_Fig 03

Figura 03: Analizza l'albero con analisi dal basso

La stringa data è cad. La a è generata da A. Le c, A e d si combinano per ottenere il simbolo iniziale S.

Quando la stringa di input(w) è abbcde

Considera le seguenti regole di produzione della grammatica.

S -> aABe

LA -> Abc/b

B -> re

Nell'analisi dal basso verso l' alto, S -> aABe (Sostituendo B ->d)

S -> aAde (Sostituendo A -> Abc)

S -> aAbcde (sostituendo A -> b)

S -> abbcde

La sostituzione inizia prima con la variabile più a destra e poi si sposta alla posizione successiva a sinistra e così via. Pertanto, segue un metodo di derivazione con mot sinistro.

Qual è la differenza tra analisi dall' alto verso il basso e dal basso verso l' alto?

L'analisi dall' alto verso il basso è una strategia di analisi che esamina prima il livello più alto dell'albero di analisi e procede lungo l'albero di analisi utilizzando le regole di una grammatica formale. L'analisi dal basso è una strategia di analisi che esamina prima il livello più basso dell'albero di analisi e lo sviluppa utilizzando le regole di una grammatica formale. L'analisi avviene dal simbolo iniziale alla stringa di input, nell'analisi dall' alto verso il basso. D' altra parte, l'analisi avviene dalla stringa di input al simbolo iniziale, nell'analisi dal basso verso l' alto.

Inoltre, la decisione principale nell'analisi dall' alto è selezionare quale regola di produzione utilizzare per costruire la stringa mentre la decisione principale nell'analisi dal basso è selezionare quando utilizzare una regola di produzione per ridurre la stringa a ottenere il simbolo di partenza. Inoltre, l'analisi dall' alto verso il basso utilizza la derivazione più a sinistra e l'analisi dal basso verso il basso utilizza la derivazione più a destra.

Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto in forma tabulare
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto in forma tabulare
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto in forma tabulare
Differenza tra analisi dall' alto verso il basso e dal basso verso l' alto in forma tabulare

Riepilogo – Analisi dall' alto verso il basso e dal basso verso l' alto

La differenza tra l'analisi dall' alto verso il basso e quella dal basso verso l' alto è che l'analisi dall' alto verso il basso esegue l'analisi dal simbolo fisso alla stringa di input mentre l'analisi dal basso verso il basso esegue l'analisi dalla stringa di input al simbolo iniziale.

Consigliato: