- compilador urgente
+ Responder ao Tópico
-
compilador urgente
O objetivo deste trabalho é gerar um "compilador" que receba como entrada um programa "portugol" gerando como saída:
a) o arquivo tokens
b) os erros detectados na compilação.
Seu programa deve conter 2 módulos: lexan e parser.
Considere a seguinte gramática:
programa := inicio identificador ; declaracoes instrucoes
fim
declaracoes := declaracoes ; declaracao
| declaracao
declaracao := identificadores : tipo
identificadores := identificadores , identificador | identificador
tipo := inteiro | real | logico | caracter
instrucoes := instrucoes ; instrucao
| instrucao
instrucao := atribbuicao
| instrucao_se
| instrucao_leitura
| instrucao_escrita
| instrucao_enquanto
atribuicao := identificador := expressao
instrucao_se := se expressao entao inicio instrucoes fim
| se expressao entao inicio instrucoes fim
senao inicio instrucoes fim
instrucao_leitura := leia(identificadores)
instrucao_escrita := escreva(expressa)
intrucao_enquanto := enquanto expressao faca inicio instrucoes fim
expressao := expressao , expressao
| expressao RELOP expressao
| expressao ADDOP expressao
| expressao MULOP expressao
| identificador
| constante
| (expressao)
Considere as seguintes convenções léxicas:
1. Identificadores sao definidos pelas seguintes expressoes regulares:
letras := A|B|...|Z|a|b|...|z
digito := 0|1|...|9
identificador := letra (letra |digito)*
na implementacao pode-se limitar o tamanho do identificador.
2. Constantes sao definidas da seguinte foma:
constante := (+|-) (digito+| digito+ . digito+)
3. Os operadores de relacao (RELOP) sao: RELOP := =|<|>=|>|<=|<>
4. Os operadores de adicao (ADDOP) sao : ADDOP := +| - | or
5. Os operadores (MULOP) sao : MULOP := *| /| div| mod| and
-
Re: compilador urgente
Nao entendo bem onde isso e para aplicar mas talvez resolva.se com Visual Basic 6.0 ou vb.net
-
Re: compilador urgente
Pelo que entendi, e me lembro quando estudei, isso é um trabalho para a materia de compiladores/s.o.
Para fazer você pode escolher qualquer linguagem de programação existente, seja C, C#, C++, Delphi, Java, VB... até porque para se escrever algo usa-se uma linguagem já existente...
Você precisará criar algumas funções diferentes ao seu "sistema"/compilador.
1) Analisador Lexico, terá de verificar quais são as palavras permitidas, variaveis, etc.
2) Analisador Sintatico, onde fará com que indique se as funções criadas são válidas
3) compilador em si, transformará a sua sintaxe em sua linguagem "portugol" para a linguagem ao qual você está programando!
Abraços!
-
Re: compilador urgente
O cara postou o enunciado e nem se deu ao trabalho de dizer o que queria, será que ele está esperando uma resposta com anexos?? kkkkkkk