ourPLCC / course

A Programming Languages course based on PLCC <https://github.com/ourPLCC/plcc>.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A Programming Languages Course using PLCC

This repository contains course notes, example languages, and sample homework assignments for an upper-level CS Programming Languages course using PLCC -- a Programming Languages Compiler Compiler.

Set 1a of the course notes serves as a reference manual for PLCC. It describes the format of a language 'grammar' file that PLCC translates into Java classes to implement a scanner, parser, and interpreter for the language.

In particular, JNotes/ and JNotes-src/ are organized as follows:

Slide Set Contents
0 Syntax and semantics; Tokens
1 Induction, recursion, and scope
1a PLCC (reference manual)
2 Specifying data; Environments
3 Expression-based languages
3a Parameter passing and mutation
4 Typed languages
5 Object-oriented languages
6 Infix expressions and arrays
7 Logic languages
8 Continuations, parallelism, exception handling, and concurrency

The ABC language (see the Code directory) is an implementation of ABCDatalog (see http://abcdatalog.seas.harvard.edu/), a Prolog-like language that implements first-order logic. The implementation uses the ABCDatalog logic engine.

About

A Programming Languages course based on PLCC <https://github.com/ourPLCC/plcc>.

License:GNU General Public License v3.0


Languages

Language:TeX 54.1%Language:Java 43.9%Language:Python 0.6%Language:Perl 0.3%Language:Shell 0.3%Language:C 0.3%Language:Makefile 0.2%Language:C++ 0.1%Language:Scheme 0.1%Language:Dockerfile 0.1%