Diferença entre análise de cima para baixo e de baixo para cima

Índice:

Diferença entre análise de cima para baixo e de baixo para cima
Diferença entre análise de cima para baixo e de baixo para cima

Vídeo: Diferença entre análise de cima para baixo e de baixo para cima

Vídeo: Diferença entre análise de cima para baixo e de baixo para cima
Vídeo: AULA 15 – ANÁLISE DAS FUNÇÕES – CÔNCAVA PARA BAIXO OU PARA CIMA 2024, Novembro
Anonim

A principal diferença entre a análise de cima para baixo e de baixo para cima é que a análise de cima para baixo executa a análise do símbolo inicial para a string de entrada, enquanto a análise de baixo para baixo executa a análise da string de entrada para o símbolo inicial. Além disso, outra diferença importante entre a análise de cima para baixo e de baixo para cima é que a análise de cima para baixo usa a derivação mais à esquerda e a análise de baixo para cima usa a derivação mais à direita.

Linguagens de alto nível ajudam a escrever programas de computador. Eles são mais fáceis de entender pelo programador, mas não pelo computador. Portanto, o programa de alto nível converte em código de máquina. A tarefa do compilador é converter o código-fonte legível por humanos em código de máquina legível por máquina. Um programa passa por várias etapas para converter em código de máquina. Todo esse processo é chamado de Sistema de processamento de linguagem. Uma delas é a compilação. O analisador de sintaxe ou o analisador está no compilador e executa a tarefa de análise.

O que é análise de cima para baixo?

Toda linguagem de programação tem um conjunto de regras para representar a linguagem. O analisador de sintaxe ou o parse pega a string de entrada e verifica se está de acordo com as produções gramaticais. Em outras palavras, a gramática deve produzir essa string usando uma árvore de análise.

Na análise de cima para baixo, a análise ocorre a partir do símbolo inicial e alcançará a string de entrada fornecida. Considere as seguintes regras de produção gramatical. A string de entrada (w) é cad.

S -> cAd

A -> ab /a

A árvore de análise após a análise de cima para baixo é a seguinte.

Diferença entre análise de cima para baixo e de baixo para cima
Diferença entre análise de cima para baixo e de baixo para cima
Diferença entre análise de cima para baixo e de baixo para cima
Diferença entre análise de cima para baixo e de baixo para cima

Figura 01: Árvore de análise 1 com análise de cima para baixo

S produz c A d e A produz a b. A corda é cabd. Não é a string necessária. Então, é preciso fazer o retrocesso, que é usar as outras alternativas.

Da mesma forma, S produz c A d. Aplicando a outra opção para A dará a. Agora ele fornece a string necessária. Portanto, o analisador aceita essa string de entrada. A árvore de análise após a análise de cima para baixo é a seguinte.

Diferença entre análise de cima para baixo e de baixo para cima_Fig 2
Diferença entre análise de cima para baixo e de baixo para cima_Fig 2
Diferença entre análise de cima para baixo e de baixo para cima_Fig 2
Diferença entre análise de cima para baixo e de baixo para cima_Fig 2

Figura 02: Árvore de análise 2 com análise de cima para baixo

Quando a string de entrada (w) é abbcde

Considere as seguintes regras de produção gramatical.

S -> aABe

A -> Abc/b

B -> d

Na análise de cima para baixo, S -> aABe (Substituindo A -> Abc)

S -> aAbcBe (Substituindo A -> b)

S -> abbcBe (Substituindo B ->d)

S -> abbcde

A substituição começa com a variável mais à esquerda primeiro e depois para a próxima posição à direita e assim por diante. Portanto, segue um método de derivação mais à esquerda. Além disso, é importante decidir qual regra de produção escolher quando houver uma variável.

O que é análise de baixo para cima?

Na análise de baixo para cima acontece de outra forma. A análise ocorre da string de entrada para o símbolo inicial. Considere as seguintes regras de produção gramatical e seja a string de entrada w ɛ cad

S -> cAd

A -> ab /a

A árvore de análise após a análise de baixo para cima é a seguinte.

Diferença chave entre análise de cima para baixo e análise de baixo para cima_Fig 03
Diferença chave entre análise de cima para baixo e análise de baixo para cima_Fig 03
Diferença chave entre análise de cima para baixo e análise de baixo para cima_Fig 03
Diferença chave entre análise de cima para baixo e análise de baixo para cima_Fig 03

Figura 03: Árvore de análise com análise de baixo para cima

A string fornecida é cad. O a é gerado por A. O c, A e d se combinam para obter o símbolo inicial S.

Quando a string de entrada (w) é abbcde

Considere as seguintes regras de produção gramatical.

S -> aABe

A -> Abc/b

B -> d

Na análise de baixo para cima, S -> aABe (Substituindo B ->d)

S -> aAde (Substituindo A -> Abc)

S -> aAbcde (Substituindo A -> b)

S -> abbcde

A substituição começa com a variável mais à direita primeiro e depois se move para a próxima posição à esquerda e assim por diante. Portanto, segue um método de derivação mo à esquerda.

Qual é a diferença entre análise de cima para baixo e de baixo para cima?

A análise sintática de cima para baixo é uma estratégia de análise sintática que primeiro analisa o nível mais alto da árvore de análise sintática e desce a árvore de análise sintática usando as regras de uma gramática formal. A análise de baixo para cima é uma estratégia de análise que primeiro analisa o nível mais baixo da árvore de análise e trabalha na árvore de análise usando as regras de uma gramática formal. A análise ocorre do símbolo inicial até a string de entrada, na análise de cima para baixo. Por outro lado, a análise ocorre da string de entrada até o símbolo inicial, na análise de baixo para cima.

Além disso, a principal decisão na análise de cima para baixo é selecionar qual regra de produção usar para construir a string, enquanto a principal decisão na análise de baixo para baixo é selecionar quando usar uma regra de produção para reduzir a string a obter o símbolo inicial. Além disso, a análise de cima para baixo usa a derivação mais à esquerda e a análise de baixo para baixo usa a derivação mais à direita.

Diferença entre análise de cima para baixo e de baixo para cima em formato tabular
Diferença entre análise de cima para baixo e de baixo para cima em formato tabular
Diferença entre análise de cima para baixo e de baixo para cima em formato tabular
Diferença entre análise de cima para baixo e de baixo para cima em formato tabular

Resumo – Análise de cima para baixo x análise de baixo para cima

A diferença entre a análise de cima para baixo e de baixo para cima é que a análise de cima para baixo executa a análise do símbolo inicial para a string de entrada, enquanto a análise de baixo para baixo executa a análise da string de entrada para o símbolo inicial.

Recomendado: