Teaching Type Systems Implementation with Stella, an Extensible Statically Typed Programming Language

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Abounegm, Abdelrahman, Kudasov, Nikolai, Stepanov, Alexey
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911952574349312
author Abounegm, Abdelrahman
Kudasov, Nikolai
Stepanov, Alexey
author_facet Abounegm, Abdelrahman
Kudasov, Nikolai
Stepanov, Alexey
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2407_08089
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Teaching Type Systems Implementation with Stella, an Extensible Statically Typed Programming Language
Abounegm, Abdelrahman
Kudasov, Nikolai
Stepanov, Alexey
Programming Languages
Software Engineering
K.3.2; D.3.4
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.
title Teaching Type Systems Implementation with Stella, an Extensible Statically Typed Programming Language
topic Programming Languages
Software Engineering
K.3.2; D.3.4
url https://arxiv.org/abs/2407.08089