Do quadro ao código: ensinar Compiladores através de projectos com impacto real
O ensino da disciplina de Compiladores representa, tradicionalmente, um dos maiores desafios na formação em Informática e Engenharia Informática, sobretudo devido ao elevado nível de abstracção dos seus conceitos. Com o objectivo de ultrapassar essa barreira, no Instituto Superior Politécnico Independente (ISPI) optei por uma abordagem fortemente prática, centrada na aprendizagem baseada em projectos.
No contexto desta disciplina, orientei um projecto académico que demonstrou, de forma clara, o valor da integração entre teoria e prática no processo de ensino-aprendizagem. Desde as primeiras aulas, os estudantes foram envolvidos na construção, passo a passo, de um mini-compilador funcional, no qual foram implementadas as principais fases do processo de compilação: análise léxica, análise sintáctica e análise semântica. Esta estratégia permitiu que conceitos frequentemente percepcionados como abstractos fossem compreendidos de forma concreta e progressiva.
Com esta base consolidada, foi lançado aos estudantes o desafio de expandir o projecto, transformando-o numa solução mais completa e próxima de um compilador real. O desafio não se limitou à implementação técnica, mas incentivou a reflexão sobre arquitectura, qualidade de código e boas práticas de desenvolvimento de software.
Entre os principais desafios propostos destacaram-se:
- a introdução de novas funcionalidades (features) na linguagem;
- a implementação de testes automatizados;
- a aplicação de optimizações simples;
- e a geração de código intermédio.
Como resultado deste processo, os estudantes conceberam uma linguagem de programação própria, denominada SetaAo, bem como o respectivo compilador, designado Pamdu-ali. O projecto revelou um elevado nível de maturidade técnica e conceptual, superando as expectativas iniciais da disciplina.
Um dos grupos distinguiu-se particularmente pela iniciativa de ir além dos objectivos propostos, desenvolvendo uma IDE desktop, recorrendo à tecnologia Electron, totalmente dedicada à linguagem SetaAo e integrada com o compilador Pamdu-ali. Esta interface permitiu a escrita de código, a compilação, a visualização estruturada de erros e a execução de programas, aproximando o projecto de um ambiente profissional de desenvolvimento.
Neste grupo merecem especial destaque os estudantes Ludjério Paulino, Jandira Mendonça e Henrique Mundombe, cujo desempenho, dedicação, espírito de iniciativa e qualidade técnica do trabalho desenvolvido foram determinantes para o sucesso e consolidação do projecto.
Para além dos resultados alcançados no contexto da disciplina, este projecto evidencia um forte potencial como contributo para o ensino de Compiladores, tanto no ensino médio técnico como no ensino superior. A abordagem adoptada permite uma progressão pedagógica clara, desde um mini-compilador de carácter didáctico até um sistema mais completo e extensível, facilmente adaptável à realidade de diferentes instituições de ensino.
Com o intuito de promover a partilha de conhecimento e incentivar a colaboração académica, o projecto encontra-se disponível em formato open-source, podendo ser reutilizado, estudado e evoluído por outros docentes e estudantes:
🔗 Repositório do projecto:
👉 Mini Compilador
Experiências como esta reforçam a importância das metodologias activas de ensino e demonstram que, com orientação adequada, os estudantes são capazes de desenvolver soluções com impacto académico, pedagógico e tecnológico real.
🚀 Fica o orgulho no trabalho desenvolvido pelos estudantes do Instituto Superior Politécnico Independente (ISPI) e a convicção de que o ensino prático é um caminho sólido para formar profissionais mais críticos, autónomos e preparados para os desafios da área da Computação.
