LLVM é um conjunto de bibliotecas e ferramentas que facilitam o desenvolvimento de linguagens de programação. Várias linguagens populares hoje são construídas e compiladas via LLVM: C, C++, Rust e Julia, por exemplo. LLVM define uma representação intermediária de código (uma linguagem de montagem). Ao traduzir uma linguagem de alto nível para este código intermediário, tem-se acesso a uma vasta gama de análises estáticas e otimizações que já estão disponíveis em LLVM. Nessa palestra veremos como usar LLVM como uma ferramenta para compilar e visualizar programas, escreveremos código na representação intermediária, e desenvolveremos uma análise de código que pode ser acoplada àquela infra-estrutura.

Fernando Magno Quintão Pereira

DCC/UFMG
ORCID     Lattes     Scholar     www