A scalable infrastructure for teaching concepts of programming languages in Scala with WebLab: An experience report

Tim Van Der Lippe, Thomas Smith, Daniël Pelsmaeker, Eelco Visser

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

6 Citations (Scopus)
388 Downloads (Pure)

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.

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)
Pages65-74
Number of pages10
ISBN (Electronic)9781450346481
DOIs
Publication statusPublished - 30 Oct 2016
Event7th ACM SIGPLAN Symposium on Scala, SCALA 2016 - Amsterdam, Netherlands
Duration: 30 Oct 201631 Oct 2016

Conference

Conference7th ACM SIGPLAN Symposium on Scala, SCALA 2016
Country/TerritoryNetherlands
CityAmsterdam
Period30/10/1631/10/16

Keywords

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

Fingerprint

Dive into the research topics of 'A scalable infrastructure for teaching concepts of programming languages in Scala with WebLab: An experience report'. Together they form a unique fingerprint.

Cite this