Seminário


Uma breve introdução à compilação via metaprogramação


Palestrante(s): Christiano Braga

Local: Canal no Youtube "PPCIC CEFET-RJ"

Data: 18/05/2021 às 19:30

Tópico(s): Compiladores Metaprogramação


Canal no Youtube "PPCIC CEFET/RJ" - SEIC 2021 - Christiano Braga

 

Resumo: Alfred Aho e Jeffrey Ullman foram laureados com o prêmio [Turing 2021](//awards.acm.org/about/2020-turing) por suas contribuições em linguagens de programação e sua implementação. O famoso "Livro do Dragão" é  referência na maior parte dos cursos de Computação pelo mundo. Um compilador é essencialmente uma função definida por indução estrutural sobre a sintaxe da linguagem de origem, emitindo código a cada passo indutivo, o que na terminologia de construção de compiladores costuma se chamar de _tradução dirigida por sintaxe_. Usualmente, o _framework_ de tradução é uma linguagem de programação de espectro amplo acoplada à um gerador de  analisador sintático. Essa liberalidade pode ser maléfica pela falta de estrutura das equações semânticas, o que um framework específico para tradução pode trazer. Metaprogramação, onde metaprogramas são relações entre programas, se  encaixa exatamente neste ponto, apresentando uma estrutura relacional que pode ser entendida _formalmente_, com todos os benefícios que a formalização traz. Neste seminário, apresentaremos como a linguagem Maude pode ser utilizada para este fim: um framework para compilação via metaprogramação.

 
Biografia: Christiano Braga é atualmente Professor Associado do Instituto de Computação da Universidade Federal Fluminense. Obteve seu doutorado pela PUC-Rio em 2001, com um período como International Fellow no Computer Science Laboratory do SRI International. Após seu doutoramento, foi pesquisador visitante na University of Illinois at Urbana-Champaign, Universidade Complutense de Madrid, University of Swansea e PUC-Rio. Seus interesses em  pesquisa incluem métodos formais e semântica de linguagens de programação. Grande parte de sua pesquisa está desenvolvida utilizando Lógica de Reescrita como um framework semântico na linguagem Maude.