Compila03.1 - Árvore de derivação

Поделиться
HTML-код
  • Опубликовано: 8 янв 2025

Комментарии • 22

  • @TokaGado
    @TokaGado 7 месяцев назад +2

    Boa noite Professor, uma atençao muito grande devemos ter em lembrar de gerar o ";" vindo do Statement, errei isso na minha prova de compiladores por bobeira. Obrigado por fornecer seu excelente conteudo gratuitamente Professor José

    •  7 месяцев назад

      Isso mesmo, Samuel. O ponto e vírgula (";") no statement é frequentemente é esquecido. Da mesma forma, é importante prestar atenção ao local onde são criadas as chaves "{}" no block. Esse detalhe é crucial porque permite que a gramática da linguagem aceite que, em estruturas como "while" e "if", as chaves sejam opcionais quando há apenas um comando.

  • @renat0sp
    @renat0sp 8 месяцев назад

    excelente material, parabéns professor!

    •  8 месяцев назад

      Obrigado @renat0sp, fique a vontade, a playlist tem muita coisa boa ainda

  • @matheusrambo8760
    @matheusrambo8760 Год назад +2

    Professor, você tem o canal mais completo de computação em português .
    Seus vídeos são excelentes, e algo complexo fica "possível" de entender.

    •  Год назад

      Que bom ouvir esse depoimento, pq de complicado já basta o compilador não é? A ideia é tentar simplificar ao máximo para que os alunos possa de fato ver é possível e MUITO legal produzir um compilador:)

  • @brenotanquista9543
    @brenotanquista9543 Год назад

    Voltando aqui depois de LFA para acompanhar a disciplina de compiladores por esse canal

    •  Год назад

      Que bom Breno, tenho certeza que vai te ajudar muito. Ainda mais se na sua universidade o professor utilizar as tecnologias semelhantes as que eu uso aqui no IFET.

  • @MarcelloJSilva
    @MarcelloJSilva 6 месяцев назад

    Poderia nos indicar uma referência bibliográfica para complementar suas aulas? Obrigado.

    •  3 месяца назад

      Ola Marcelo e demais alunos, eu uso aqui no IFET o Livro do autor AHO, cujo titulo é 'Guia Abrangente para o Design do Compilador: Princípios, Técnicas e Ferramentas'. Um grande livro para os estudantes de ciência da computação e areas afins.

  • @TokaGado
    @TokaGado 9 месяцев назад

    Professor, em 15:00 você não devia ser obrigado a utilizar mais sentençasvindas de Statement, já que o () obriga usar uma ou várias vezes, e o Senhor não usou nenhuma

    •  7 месяцев назад +1

      Ola @SamuelSilva, sim voce está correto. Da forma como esta usando o ( ) teriamos que continuar sim. Entretanto, ali temos um *erro no slide, deveria ser [ ] - Que significa zero ou uma ocorrencia.
      Obrigado pela observação.

  • @Matsalen
    @Matsalen 7 месяцев назад

    Tem a correção dos exercícios em algum lugar?

    •  7 месяцев назад

      As correções são nas aulas presenciais no IFET Rio Pomba-MG

  • @EduardoSantos-fe5tx
    @EduardoSantos-fe5tx Год назад

    Fala professor, percebi um erro no exercício 2. Não pode começar por um statement.

    •  Год назад +1

      Olá Eduardo Santos, obrigado pela observação.
      Você está correto, pois ao considerar que o trecho da gramática apresentado no exercício 01 é "fechado" ele so vai aceitar sentenças que começam com "block", portanto não aceitando statement.
      No entanto, para fins didáticos, estamos usando uma parte da gramática. Em outras palavras, a gramática completa (vide minuto 6:38) que estamos considerando é mais abrangente. Dai, se considerarmos essa gramática completa, o problema é ainda maior, pois não poderemos derivar os exemplos mostrados no vídeo, pois todos eles deveriam obrigatoriamente começar com "program bla bla bla".
      Portanto, não podemos perder de vista que, o objetivo desta aula é treinar o processo de derivação, e por isso podemos realizar as derivações do exercício 01, do exercício 05 e também dos exemplos propostos no final.
      Mas de qualquer forma, agradeço sua observação!

  • @BrunoAlves-os4sk
    @BrunoAlves-os4sk Год назад

    Professor tem a correção do ex 6 e 7 ?

  • @guilhermerodrigues9488
    @guilhermerodrigues9488 Год назад +1

    Opa, professor, acredito que a solução do exercício 2 esta errada, pois conforme a legenda, a gramática exige 1 ou mais (" = " Expr | ActPars ), logo não é possível ter o Designator sozinho utilizando esse caminho, já que é necessário ter pelo menos uma das duas opções.
    E notei também que ao analisar essa parte, acredito que essa gramática aceitaria linhas de código desse tipo:
    Designator = Expr = Expr = Expr ... ;
    Que talvez não seja desejado em um compilador.

    •  Год назад +1

      Olá Guilherme, isso não é problema não. É possível fazer idade=x=18

    • @brunovideira7
      @brunovideira7 Год назад

      eu entendi seu ponto, reparei isso tbm, o ex 2 ficou estranho mesmo, acho q o jose rui talvez nao percebeu o ponto que voce levantou. O uso das chaves no vector, tem um trecho no designator que após o ident ter um express ou act pars, que faltou no exemplo. Talvez a cardinalidade devesse ser mudado para zero ou muitas ao invez de uma ou muitas no designator

  • @KnowledgeHub-bf8qp
    @KnowledgeHub-bf8qp Год назад

    professor, gostei muito de assistir suas aulas relacionadas com o tema Linguagens Formais e Automatos. Estou com dúvidas em relação a um exercicio:
    1. Pretende-se implementar um reconhecedor de contantes com vírgula flutuante.
    a. Defina a expressão regular correspondente (sugestão pode utilizar a abreviatura d=0|..|9.
    Eu não sei como definir essa expressão regular, podia me dar uma ajuda por favor.
    Ficaria ainda muito mais grato.

    •  Год назад

      Ola KnowledgeHub, obrigado pelo comentário, espero que o conteúdo possa sempre te auxiliar ai. Quanto a sua pergunta, vou te rascunhar a solucao para voce aqui por meio de MACROS:
      DIGITO = “[0-9]*”;
      DIGITOS = DIGITO + “*”;
      REAL = “\\-?”+DIGITOS + FRACIONARIA;
      FRACIONARIA = “\\.”+DIGITOS + (EXPONENCIAL)+“?”;
      EXPONENCIAL = “E(\\+|\\-)” + DIGITOS;
      A explicacao completa voce pode conferir aqui: ruclips.net/video/EoDGgy1uqus/видео.html