Workshop 103: PLCC: A Tool Set for Teaching Programming Languages Courses
This is a hands-on laptop-recommended workshop that introduces participants to the PLCC compiler-compiler tool set for building Java-based language interpreters in an upper-level Programming Languages course. Our approach to teaching this course shows how programming language features such as language syntax, variable lifetime, procedure application, parameter passing, recursion, and object-orientation are implemented “under the hood”. This workshop is designed for CS educators who want to explore how PLCC can be used to support such an approach.
A PLCC-based language is defined by a single language specification file consisting of three sections that define the language’s entire lexical structure, grammar syntax, and semantics. The lexical structure specifies tokens in terms of regular expressions, grammar syntax in terms of BNF rules, and semantics in terms of Java methods. PLCC uses this definition file to create a stand-alone set of Java files that implement the behavior of the language, typically in terms of a read-eval-print loop.
The PLCC tool set consists of the plcc.py compiler-compiler written in Python3 and a set of Java support files used to build the language interpreters. The <plcc.pithon.net> website hosts the tool set along with PDF lecture notes for an entire Programming Languages course and a collection of language specifications that accompany the lecture notes. The tool set is also available in a github repository.
Wed 20 MarDisplayed time zone: Pacific Time (US & Canada) change
19:00 - 22:00 | |||
19:00 3hTalk | Workshop 103: PLCC: A Tool Set for Teaching Programming Languages Courses Workshops Stoney Jackson Western New England University, James Heliotis Rochester Institute of Technology (Emeritus), Timothy Fossum SUNY College at Potsdam (Emeritus) |