An educational tool for teaching compiler construction
Marjan Mernik, V. Žumer
Abstract
Marjan Mernik, V. Žumer
Abstract
Compiler construction is a well-developed discipline since there is a long tradition of producing compilers supported by practical underlying theory and a large selection of textbooks. In the compiler construction course, students learn how to write a compiler by hand and how to generate a compiler using tools like lex and yacc. However, these tools usually have little or no didactical value. In this paper, the software tool LISA is described. It facilitates learning and conceptual understanding of compiler construction in an efficient, direct, and long-lasting way. The authors' experience in using the tool shows the following didactical benefits: support for constructive learning, stimulation of exploratory and active learning, support for different learning styles and learning speed, increased motivation for learning, and better understanding of concepts.
OpenAlex reports 70 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Compiler construction is a well-developed discipline since there is a long tradition of producing compilers supported by practical underlying theory and a large selection of textbooks. In the compiler construction course, students learn how to write a compiler by hand and how to generate a compiler using tools like lex and yacc. However, these tools usually have little or no didactical value. In this paper, the software tool LISA is described. It facilitates learning and conceptual understanding of compiler construction in an efficient, direct, and long-lasting way. The authors' experience in using the tool shows the following didactical benefits: support for constructive learning, stimulation of exploratory and active learning, support for different learning styles and learning speed, increased motivation for learning, and better understanding of concepts.
Key concepts: Compiler, Computer science, Compiler construction, Compiler correctness, Constructive, Programming language, Optimizing compiler, Mathematics education