+ Responder ao Tópico



  1. #1

    Padrão 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

  2. #2

    Padrão Re: compilador urgente

    Nao entendo bem onde isso e para aplicar mas talvez resolva.se com Visual Basic 6.0 ou vb.net

  3. #3

    Padrão 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!

  4. #4

    Padrão 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