scribed in (del Vado V
´
ırseda, 2021) to increase the
understanding of the theory of a Compiler Design
course from the concrete implementation generated
by the automatic code construction tools, according
to the various stages that take place during the con-
struction of a compiler. To achieve this goal, we have
developed in this paper an Interactive Tutoring Tool
(ITT), from the initial design ideas set out in our pre-
vious work (del Vado V
´
ırseda, 2022) as a particular
instance of an Interactive Tutoring System (ITS) (del
Vado V
´
ırseda, 2020). Unlike other educational tools
for teaching compiler constructions (Boyer and Chit-
saz, 2004; Henriques and et al., 2005; Chakraborty
and et al., 2013), and following (del Vado V
´
ırseda,
2020), each teacher can choose through ITT the
compiler-writing tools that he/she deems most suit-
able for teaching the course, and combine them in a
modular way in the same educational environment. If
in the future you choose to change these tools or use
another programming language, ITT will still be use-
ful, since the interactive tutoring process performed
by the ITT tool will continue to be valid. Moreover,
the interactive tutoring process carried out by the ITT
tool to explore the finite state automata and graphs
generated by the compiler-writing tools w.r.t. to the
code will remain analogous for tutoring students from
implementation to theory.
The paper is structured as follows. In the follow-
ing section, we discuss the contributions to related
work. Next, we describe the design and use of the ed-
ucational tool ITT. We analyze the methodology and
evaluation applied to obtain success indicators from
our experiences and results. Finally, conclusions and
an outlook for future work close the paper.
2 CONTRIBUTIONS AND
RELATED WORK
Over the past two decades, several strategies have
been designed to be applied in a course on Com-
piler Design within the CS curriculum (Waite, 2006).
First, “emphasize design patterns, teamwork, and pro-
gramming methodology by constructing a compiler to
meet assigned specifications” (software project (Mak,
2009; Nystrom, 2021)). Second, “emphasize the role
of theory to enable automation of compiler tasks, and
illustrate the limitations of that theory” (application
of theory (Aho et al., 2006)). Third, “emphasize the
broad applicability of compiler technology to imple-
ment languages for special purposes” (computer com-
munication support (Henry, 2005)). CS students tend
to achieve higher motivation if they start as early as
possible with a simple, self-built implementation that
enables them to apply, as quickly as possible, each
theoretical concept they acquire during their learning
process, i.e., if they have something concrete that they
can manipulate. For this reason, our work focuses
on the second strategy under a different perspective,
focusing on the function of the implementation ob-
tained by using tools for the automation of the com-
piler tasks, in order to emphasize the role of theory.
By this novel approach, we ensure that the importance
of the software engineering strategy in a Compiler
Design course is not underestimated, while avoiding
overemphasis on parsing and syntax-directed transla-
tion theory. The connection with the third strategy is
achieved through the use of ITT, which support com-
puter communication through interactive sessions.
Following (de Oliveira Guimar
˜
aes, 2007; Frens
and Meneely, 2006; del Vado V
´
ırseda, 2021; del
Vado V
´
ırseda, 2022), we have developed a different
course content in which theory is presented progres-
sively through various implementations of varying
complexity. The first implementation is just a lexical-
syntactic analyzer of a simple language of arithmetic
(see Sections 3 and 4), and the last one is a com-
piler for a PL/0 language. The theoretical concepts
are introduced incrementally through interactive ses-
sions from the implementations, and are used as a
motivation to understand the theoretical reasons that
make the implementation works. In this way, the im-
plementations are a motivation to study the theory of
the course. Unlike other works (Mernik and Zumer,
2003; Henriques and et al., 2005), theory does not
come before or after, but at the same time as the un-
derstanding of the implementation and its execution.
While most recent efforts to improve students’
learning in Compiler Design have focused on design-
ing new tools (Sondag et al., 2010; Henriques and
et al., 2005; Chakraborty and et al., 2013), com-
paratively little research has focused on automating
examinations to improve interactive students’ learn-
ing. Our educational experience with ITT provides
new evidence that switching the assessment of stu-
dents’ understanding of the theory from implemen-
tation through interactive sessions improve students’
results. Following (Lorenzo, 2011), our approach
presents the new ITT tool for the automatic evaluation
of the theoretical and practical parts of a Compiler
Design course. Moreover, in recent years, the number
of papers including studies on the educational effec-
tiveness of the diagnostic messages, produced by in-
terpreters and compilers, has increased (Pettit, 2017).
The ITT tool also uses compiler error messages as a
pedagogical tool and as a part of the learning process
of the Compiler Design theory. Taking (Becker, 2019)
as a starting point, we have designed interactive learn-
CSEDU 2023 - 15th International Conference on Computer Supported Education
334