sintaxe e semantica
Linguagens de Programacão I mleal@inf.puc-rio.br 1
Fases da Compilação programa fonte
scanner
(análise léxica)
tokens
parser
(análise sintática)
parse tree árvore anotada ou outra forma intermediária código intermediário
análise semântica e geração de código intermediário otimização de código
(independente da máquina) geração de código objeto
código objeto código objeto otimizado otimização de código
(dependente da máquina)
Linguagens de Programacão I mleal@inf.puc-rio.br 2
1
Sintaxe
Sintaxe é um conjunto de regras que define a forma de uma linguagem, estabelecendo como são compostas as suas estruturas básicas (palavras).
A sintaxe de uma LP é formada por regras léxicas e regras sintáticas: As regras lexicas descrevem as combinações válidas de caracteres que formam os tokens da LP (palavras reservadas, identificadores, operadores, etc).
As regras sintáticas descrevem como os tokens podem ser combinados para formar instruções válidas (comandos, expressões, subrotinas, etc).
Linguagens de Programacão I mleal@inf.puc-rio.br 3
Sintaxe - Diagramas Sintáticos
Um método simples de descrever a sintaxe de uma LP.
Permite visualizar facilmente suas construções sintáticas.
Foi usado inicialmente na definição da linguagem Pascal.
Linguagens de Programacão I mleal@inf.puc-rio.br 4
2
Sintaxe - BNF
A sintaxe de uma LP usualmento é definida através de um conjunto de regras representadas através de uma gramática livre de contexto. A notação utilizada é conhecida como BackusBackus-Naur Form (BNF) .
Esta notação utiliza dois conjuntos de símbolos: terminais representam os símbolos da linguagem que está sendo definida, por exemplo: while, while, for, for, =, [. não– não–terminias são abstrações utilizadas para representar as construções da linguagem, e são apresentadas sempre entre , como por exemplo: exemplo: , , etc.
São utilizados ainda dois