Skip to content

Moacyr007/Compiladores-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Compiladores-2

Trabalho da diciplica de Compiladores 2 - UFMT

Projeto de um Compilador para a linguagem LALG

Especificação da Sintaxe da Linguagem LALG

Observações:

  • Comentários na LALG: entre { } ou /* */
  • Identificadores e números são itens léxicos da forma: • ident: sequência de letras e dígitos, começando por letra • número inteiro: sequência de dígitos (0 a 9) • número real: sequencia de um ou mais dígitos seguido de um ponto decimal seguido de um ou mais digitos.
  • palavras reservadas – são os tokens usados para fins específicos, ou seja, que são previamente definidos na linguagem.
  • símbolos simples e duplos – são aqueles também definidos na linguagem (<, $, >, etc. como exemplo de simples, e := como exemplo de duplo)

Glalg = {N,T,P,S} - N = {, , , , , <dc_v>, <mais_dc>, <dc_p>, , <tipo_var>, <mais_var>, , <corpo_p>, <lista_par>, <mais_par>, <dc_loc>, <mais_dcloc>, <lista_arg>, , , , , , , <outros_termos>, <op_ad>, <op_un>, , <mais_fatores>, <op_mul>} T = {ident, numero_int, numero_real, (, ), *, /, +, -, <>, >=, >, <, if, then, $, while, do, write, read, ;, else, begin, end, :, , , }

Regras de Produção da LALG ::= program ident . ::= begin end ::= <dc_v> <mais_dc> | <dc_p> <mais_dc> | λ <mais_dc> ::= ; | λ <dc_v> ::= var : <tipo_var> <tipo_var> ::= real | integer ::= ident <mais_var> <mais_var> ::= , | λ <dc_p> ::= procedure ident <corpo_p> ::= (<lista_par>) | λ <lista_par> ::= : <tipo_var> <mais_par> <mais_par> ::= ; <lista_par> | λ <corpo_p> ::= <dc_loc> begin end <dc_loc> ::= <dc_v> <mais_dcloc> | λ <mais_dcloc> ::= ; <dc_loc> | λ <lista_arg> ::= () | λ ::= ident <mais_ident> <mais_ident> ::= ; | λ ::= else | λ ::= <mais_comandos> <mais_comandos> ::= ; | λ ::= read () | write () | while do $ | if then $ | ident ::= := | <lista_arg> ::= ::= = | <> | >= | <= | > | < ::= <outros_termos> <op_un> ::= + | - | λ <outros_termos> ::= <op_ad> <outros_termos> | λ <op_ad> ::= + | - ::= <op_un> <mais_fatores> <mais_fatores> ::= <op_mul> <mais_fatores> | λ <op_mul> ::= * | / ::= ident | numero_int | numero_real | ()

Obs: Rodar o program.cs pra testar o compilador e deixar a entrada em entrada.txt

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages