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.

Original languageEnglish
Title of host publicationSCALA 2016 - Proceedings of the 2016 7th ACM SIGPLAN Symposium on Scala
Place of PublicationNew York
PublisherAssociation for Computing Machinery (ACM)
Number of pages10
ISBN (Electronic)9781450346481
Publication statusPublished - 30 Oct 2016
Event7th ACM SIGPLAN Symposium on Scala, SCALA 2016 - Amsterdam, Netherlands
Duration: 30 Oct 201631 Oct 2016


Conference7th ACM SIGPLAN Symposium on Scala, SCALA 2016

    Research areas

  • Concepts of programming languages, Definitional interpreters, Scala, Teaching, Testing, WebLab

ID: 10179051