Skip to content

MarcusGoldschmidt/compiladores-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

Compiladores 2

Projeto para a disciplina de compiladores 2

Como executar o projeto

Instale Haskell

Instale o stack

Execute os seguintes comando

cd haskell
# Gerar o codigo intermediario
stack run ./exemplo.lalg.txt > output.txt
# Interpretar o codigo gerado
stack run interpreter ./output.txt

Automato do analisador léxico

alt text

Gramática com as regras semânticas

<programa> -> program ident <corpo> .
<corpo> -> <dc> begin <comandos> end
<dc> -> <dc_v> <mais_dc>  | λ
<mais_dc> -> ; <dc> | λ
<dc_v> ->  <tipo_var> : <variaveis>
<tipo_var> -> real | integer
<variaveis> -> ident <mais_var>
<mais_var> -> , <variaveis> | λ
<comandos> -> <comando> <mais_comandos>
<mais_comandos> -> ; <comandos> | λ

<comando> ->    read (ident) |
                write (ident) |
                ident := <expressao> |
                if <condicao> then <comandos> <pfalsa> $
							
<condicao> -> <expressao> <relacao> <expressao>
<relacao> -> = | <> | >= | <= | > | <
<expressao> -> <termo> <outros_termos>
<termo> -> <op_un> <fator> <mais_fatores>
<op_un> -> - | λ
<fator> -> ident | numero_int | numero_real | (<expressao>)
<outros_termos> -> <op_ad> <termo> <outros_termos> | λ
<op_ad> -> + | -
<mais_fatores> -> <op_mul> <fator> <mais_fatores> | λ
<op_mul> -> * | /
<pfalsa> -> else <comandos> | λ

About

Projeto final da matéria de compiladores 1-2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published