11.07.2015 Views

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2. Escrever um programa numa linguagem de programação convencional, usando seusrecursos de entrada e saída;3. Escrever um programa numa linguagem de montagem e manipular explicitamentea entrada e a saída.Alguns aspectos a serem considerados no projeto de implementação de um scanner:BufferEm muitas linguagens, existem momentos que o analisador léxico precisa examinar várioscaracteres à frente do lexema, antes que seja anunciado um reconhecimento.Os caracteres que foram lidos e não foram “aproveitados” no lexema sob análise, sãoentão, devolvidos ao fluxo de entrada para que possam ser lidos novamente na análise deoutro lexema posterior.Assim sendo, um buffer de entrada que acumula vários caracteres é criado, conformea figura 3.2. O processo de análise léxica é realizado sobre este buffer. Os tokens queforam reconhecidos são eliminados do buffer e novos caracteres são adicionados a ele atéque todo o arquivo fonte seja lido e analisado.E = m * c * c eofapontadorFigura 3.2: Buffer de entrada para um analisador léxicoEm casos mais simples, a entrada pode ser realizada caracter a caracter, contendoapenas um buffer de armazenamento dos caracteres lidos.3.3 Gramáticas e Linguagens RegularesA seguir, serão revisados alguns conceitos importantes da disciplina linguagens formais emáquinas (LFM) para então prosseguir na análise léxica.GramáticaUma gramática é um mecanismo gerador de sentenças de uma dada linguagem. É definidapela quádrupla (V N , V T , P, S), onde: V N representa o conjunto de símbolos não-terminaisda linguagem; V T representa o conjunto de símbolos terminais ou alfabeto; P é um conjuntode regras de produção e S é o axioma da gramática (símbolo inicial).As regras de produção são definidas na forma α ⇒ β 1 | β 2 | . . . | β N , onde α representaum símbolo não-terminal e os β N representam sentenças podendo conter tanto símbolosterminais quanto não-terminais.15

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

Saved successfully!

Ooh no, something went wrong!