projeto - :: UNESPdocs.fct.unesp.br/docentes/dmec/olivete/lp/arquivos/projetoP1.pdf · Projeto de...

download projeto - :: UNESPdocs.fct.unesp.br/docentes/dmec/olivete/lp/arquivos/projetoP1.pdf · Projeto de um analisador léxico Projetar um analisador léxico para uma calculadora simples

If you can't read please download the document

Transcript of projeto - :: UNESPdocs.fct.unesp.br/docentes/dmec/olivete/lp/arquivos/projetoP1.pdf · Projeto de...

  • Linguagens de ProgramaoProjeto

    Celso Olivete Jnior

    [email protected]

  • 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