Linguagens de ProgramaoProjeto
Celso Olivete Jnior
Projeto de um analisador lxico
Projetar um analisador lxico para
uma calculadora simples comuma calculadora simples com
nmeros naturais e reais e operaes
bsicas (soma, subtrao,
multiplicao e diviso)
2 /9Linguagens de Programao
Projeto de um analisador lxico
Questes a considerar:1. Que smbolo usar como separador de casa
decimais?decimais?2. A calculadora usa representao
monetria?3. A calculadora aceita espaos entre os
operandos e operadores?4. O projetista quem decide sobre as
caractersticas desejveis do compilador ouinterpretador. Para a maioria daslinguagens de programao existemalgumas convenes que devem serrespeitadas
3 /9Linguagens de Programao
Projeto de um analisador lxico
Exemplo - seja a cadeia 3.2 + (2 * 12.01), oanalisador lxico teria como sada:
3.2 => nmero real
+ => operador de soma
( => abre parnteses
2 => nmero natural
* => operador demultiplicao
12.01 => nmero real
) => fecha parnteses
4 /9Linguagens de Programao
Projeto de um analisador lxico
1. Definio do Alfabeto
= {0,1,2,3,4,5,6,7,8,9,.,(,),+,-,*,/,\b}
OBS.: projetista deve considerar TODOS os smbolos que so necessrios para formar os padres
5 /9Linguagens de Programao
Projeto de um analisador lxico
2. Listagem dos tokens
OPSOMA: operador de soma OPSUB: operador de subtrao OPSUB: operador de subtrao OPMUL: operador de multiplicao OPDIV: operador de diviso AP: abre parnteses FP: fecha parnteses NUM: nmero natural/real
OBS.: projetista deve considerar tokensespeciais e cuidar para que cada token sejauma unidade significativa para o problema
6 /9Linguagens de Programao
Projeto de um analisador lxico
3. Especificao dos tokens com definiesregulares OPSOMA + OPSOMA +
OPSUB -
OPMUL *
OPDIV /
AP (
FP )
NUM [0-9]+?.[0-9]*OBS.: cuidar para que as definies regulares
reconheam padres claros, bem formados edefinidos
7 /9Linguagens de Programao
Projeto de um analisador lxico
4. Montar os autmatos para reconhecer cada token
OBS.: os autmatos reconhecem tokensindividuais, mas o conjunto dos autmatos em umnico autmato no-determinstico que determina oanalisador lxico de um compilador, por isto, deveser utilizada uma numerao crescente para osestados.
8 /9Linguagens de Programao
Projeto de um analisador lxico
Implementao ser a parte 2 do projeto
9 /9Linguagens de Programao
Top Related