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 language | English |
---|---|
Title of host publication | SCALA 2016 - Proceedings of the 2016 7th ACM SIGPLAN Symposium on Scala |
Place of Publication | New York |
Publisher | Association for Computing Machinery (ACM) |
Pages | 65-74 |
Number of pages | 10 |
ISBN (Electronic) | 9781450346481 |
DOIs | |
Publication status | Published - 30 Oct 2016 |
Event | 7th ACM SIGPLAN Symposium on Scala, SCALA 2016 - Amsterdam, Netherlands Duration: 30 Oct 2016 → 31 Oct 2016 |
Conference
Conference | 7th ACM SIGPLAN Symposium on Scala, SCALA 2016 |
---|---|
Country/Territory | Netherlands |
City | Amsterdam |
Period | 30/10/16 → 31/10/16 |
Keywords
- Concepts of programming languages
- Definitional interpreters
- Scala
- Teaching
- Testing
- WebLab