Ideias de projetos

Alguns temas para Trabalho de Conclusão de Curso (TCC) ou Iniciação Científica (IC) estão listados abaixo. Embora essa não é uma lista exaustiva, ideias diferentes são bem-vindas.

  • Criar uma Domain Specific Language (DSL), escolher um domínio que goste e simplificar e otimizar a programação nesse domínio
  • Fazer um compilador para uma arquitetura alvo (target) específica, que pode ser exótica, inovadora, educacional e etc.
  • Implementar algumas análises no código, como liveness
  • Implementar algumas otimizações, como Dead Code Elimination e Common Subexpression Elimination
  • Explorar otimizações de cauda (tail-call), detecção e otimização
  • Explorar inferência de tipos e enrobustecer o sistema de tipos de alguma linguagem
  • Explorar otimizações sobre paralelismo e ambientes de execução de alto desempenho
  • Estudar Just in Time (JIT) ou compilar linguagens interpretadas
  • Estudar a infraestrutura LLVM e MLIR (otimizações, ambientes heterogêneos, ...)
  • Explorar outras formas de representação intermediária (IR) e o impacto nas fases de compilação
  • Comparar e explorar Static Single-Assignment (SSA) versus outras formas
  • Incorporar ideias de linguagens de outros paradigmas, como funcional em imperativas