A scalable infrastructure for teaching concepts of programming languages in Scala with WebLab

An experience report

Conference Paper (2016)
Author(s)

Tim Van Der Lippe (Student TU Delft)

Thomas Smith (Student TU Delft)

Daniël Pelsmaeker (Student TU Delft)

Eelco Visser (TU Delft - Programming Languages)

Research Group
Programming Languages
Copyright
© 2016 Tim Van Der Lippe, Thomas Smith, Daniël Pelsmaeker, Eelco Visser
DOI related publication
https://doi.org/10.1145/2998392.2998402
More Info
expand_more
Publication Year
2016
Language
English
Copyright
© 2016 Tim Van Der Lippe, Thomas Smith, Daniël Pelsmaeker, Eelco Visser
Research Group
Programming Languages
Pages (from-to)
65-74
ISBN (electronic)
9781450346481
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

In this paper, we report on our experience in teaching a course on concepts of programming languages at TU Delft based on Krishnamurthi's PAPL book with the definitional interpreter approach using Scala as meta-language and using the WebLab learning management system. In particular, we discuss our experience with encoding of definitional interpreters in Scala using case classes, pattern matching, and recursive functions; offering this material in the web-based learning management system WebLab; automated grading and feedback of interpreter submissions using unit tests; testing tests to force students to formulate tests, instead of just implementing interpreters; generation of tests based on a reference implementation to reduce the effort of producing unit tests; and the construction of a product line of interpreters in order to maximize reuse and consistency between reference implementations.