An Educational Tool to Support Compiler Teaching
Abstract
This paper presents an educational tool designed to assist in teaching compilers. The tool consists of a compiler for a language inspired by the C language. The compiler translates the source code into the LLVM intermediate language, which is responsible for optimization and target code generation. Through a web interface, it is possible to view all artifacts of the compilation process, such as the syntax tree and the intermediate code. The overall evaluation of the system confirmed the high level of acceptance, reaching an average of 4.81 out of 5, highlighting the educational potential of the tool.References
Aho, A. V., Lam, M. S., Sethi, R., e Ullman, J. D. (2008). Compiladores: Princípios, técnicas e ferramentas. Pearson.
Cooper, K. D. e Torczon, L. (2014). Construindo compiladores. Campus.
Graciano Junior, W., Grossert, I., Neto, W. C. B., e Avila, A. (2022). Ferramenta interativa para o ensino de compiladores. In Anais do II Simpósio Brasileiro de Educação em Computação, pages 224–233, Porto Alegre, RS, Brasil. SBC.
Gramond, E. e Rodger, S. H. (1999). Using jflap to interact with theorems in automata theory. SIGCSE Bull., 31(1):336–340.
Lattner, C. e Adve, V. (2004). Llvm: a compilation framework for lifelong program analysis & transformation. In International Symposium on Code Generation and Optimization, 2004. CGO 2004., pages 75–86.
Mernik, M. e Zumer, V. (2003). An educational tool for teaching compiler construction. IEEE Transactions on Education, 46(1):61–68.
Nemoto, T. e Beglar, D. (2014). Developing likert-scale questionnaires. In JALT2013.
Scheider, C., Passerino, L. M., e Oliveira, R. F. d. (2005). Compilador educativo verto: ambiente para aprendizagem de compiladores. Revista Novas Tecnologias na Educação, 3(2).
Weber, R. F. (2001). Fundamentos de arquitetura de computadores. Porto Alegre: Sagra Luzzato, page 248.
Cooper, K. D. e Torczon, L. (2014). Construindo compiladores. Campus.
Graciano Junior, W., Grossert, I., Neto, W. C. B., e Avila, A. (2022). Ferramenta interativa para o ensino de compiladores. In Anais do II Simpósio Brasileiro de Educação em Computação, pages 224–233, Porto Alegre, RS, Brasil. SBC.
Gramond, E. e Rodger, S. H. (1999). Using jflap to interact with theorems in automata theory. SIGCSE Bull., 31(1):336–340.
Lattner, C. e Adve, V. (2004). Llvm: a compilation framework for lifelong program analysis & transformation. In International Symposium on Code Generation and Optimization, 2004. CGO 2004., pages 75–86.
Mernik, M. e Zumer, V. (2003). An educational tool for teaching compiler construction. IEEE Transactions on Education, 46(1):61–68.
Nemoto, T. e Beglar, D. (2014). Developing likert-scale questionnaires. In JALT2013.
Scheider, C., Passerino, L. M., e Oliveira, R. F. d. (2005). Compilador educativo verto: ambiente para aprendizagem de compiladores. Revista Novas Tecnologias na Educação, 3(2).
Weber, R. F. (2001). Fundamentos de arquitetura de computadores. Porto Alegre: Sagra Luzzato, page 248.
Published
2025-07-20
How to Cite
BORELA, Erik Pablo Schaefer; OLIVEIRA, Alessandra Lima de; CASTELLO BRANCO NETO, Wilson; SOUZA, Alexandre Perin de.
An Educational Tool to Support Compiler Teaching. In: WORKSHOP ON COMPUTING EDUCATION (WEI), 33. , 2025, Maceió/AL.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2025
.
p. 171-181.
ISSN 2595-6175.
DOI: https://doi.org/10.5753/wei.2025.7407.
