11.07.2015 Views

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.2 Análise Sintática Ascendente - BOTTOM UPA criação da árvore gramatical é realizada no sentido folhas → raiz, ou seja, geração desentenças é feita através do processo de empilhar e reduzir. A idéia é “reduzir” a sentençaoriginal até o axioma da gramática através de sucessivas substituições por não-terminais.Exemplo: S → aABe A → Abc | b B → dVerificar se a sentença abbcde pode ser reduzida pela gramática:abbcde↓aAbcde↓aAde↓aABe↓S4.2.1 Algoritmo “Empilhar-e-Reduzir”Este procedimento de análise sintática ascendente consiste de dois passos:1. Escolha de um candidato α a redução (handle);2. Redução do candidato pelo não-terminal A à esquerda da produção A → α;3. Repetir os passos 1 e 2 até que a sentença tenha sido reduzida ao axioma dagramática.Um candidato é uma subcadeia que reconhece o lado direito de uma produção e cujaredução ao não-terminal do lado esquerdo da produção representa um passo ao longo dopercurso de uma derivação.É denominado de “poda do candidato” ao processo de substituí-lo pelo não-terminalà esquerda da regra de produção, obtendo desta forma, uma redução na sentença sobanálise.Uma forma conveniente de implementar um analisador sintático de empilhar e reduziré usar uma pilha para guardar os símbolos gramaticais. O analisador sintático operaempilhando zero ou mais símbolos até que um candidato surja no topo da pilha. Umapoda do candidato é então feita. Repete-se este processo até que no topo da pilha estejao axioma da gramática ou um erro seja encontrado (nenhuma poda seja possível).Exemplo: E → E + E | E − E | E ∗ E | E/E | (E) | id.Sentença sob análise: id + id * id23

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!