Teaching Type Systems Implementation with Stella, an Extensible Statically Typed Programming Language
Abdelrahman Abounegm (Innopolis University), Nikolai Kudasov, (Innopolis University), Alexey Stepanov (Innopolis University)

TL;DR
This paper describes a half-semester course on implementing type systems using Stella, an extensible language, emphasizing practical skills in compiler construction and type theory with supporting tools and student outcomes.
Contribution
It introduces a practical course framework for teaching type system implementation using Stella, with tools and extensions to facilitate learning and diverse language support.
Findings
Students achieved practical understanding of type systems.
The course effectively integrated tools like BNF Converter.
Students demonstrated competence in implementing language features.
Abstract
We report on a half-semester course focused around implementation of type systems in programming languages. The course assumes basics of classical compiler construction, in particular, the abstract syntax representation, the Visitor pattern, and parsing. The course is built around a language Stella with a minimalistic core and a set of small extensions, covering algebraic data types, references, exceptions, exhaustive pattern matching, subtyping, recursive types, universal polymorphism, and type reconstruction. Optionally, an implementation of an interpreter and a compiler is offered to the students. To facilitate fast development and variety of implementation languages we rely on the BNF Converter tool and provide templates for the students in multiple languages. Finally, we report some results of teaching based on students' achievements.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
