Csc 4330/6330, Programming Language Concepts (Spring 2018)

Instructional Staff

Instructor: Raj Sunderraman; Room 629, 1 Park Place;; Office hours: Monday/Wednesday 4.00 pm to 5:15 pm
TA: Ms. Heta Desai; Room 612, 1 Park Place;; Office Hours: Tuesday/Thursday 12-1 PM

Course Materials

Preliminaries/Grammars/Lexical Analysis/Parsers

Chapter 1: Preliminaries
Chapter 3: Describing Syntax and Semantics
Chapter 4: Lexical and Syntax Analysis
ANTLR Lexer/Parser Generator
Hand coded Recursive Descent Parser in Java
ANTLR Example (WAE Expressions) (8 steps to writing the code)
Homework 1 (Due: February 2, 2018 - Friday)
Homework 2 (Due: February 7, 2018 - Wednesday) (Solutions)
Homework 3a (Due: February 16, 2018 - Friday)(Solutions) (Handin under assignment 3a)
Homework 3b (Due: February 25, 2018 - Sunday) (Handin under assignment 3b)
Homework 3c (Due: February 18, 2018 - Sunday) (Solutions) (Handin under assignment 3c)

Functional Programming (Lambda Calculus and Scala)

Lambda Calculus (Thanks Vida Movahedi, York University!)
Lambda Calculus (Some Examples)
Homework 4a (Due: March 11, 2018 - Sunday) (Solutions) (Handin under assignment 4a)
Homework 4b (Due: March 21, 2018 - Wednesday) (Solutions) (Handin under assignment 4b)
Scala Download/Documentation
Functional Programming in Scala - Part I
Functional Programming in Scala - Part II
Functional Programming in Scala - Part III
Functional Programming in Scala - Part IV
Couple of sample programs
Homework 4c (Due: March 25, 2018 - Sunday) (Handin under assignment 4c) (Solution)
Homework 5 (Due: April 1, 2018 - Sunday) (Solution)
Homework 6 (Due: April 15, 2018 - Sunday)

Logic Programming (Prolog)

Learn Prolog Now (Tutorial)
SWI Prolog
SWI Prolog (Built-in Predicates)
Prolog Notes - Part I (typos fixed)
Prolog Notes - Part II (updated with new slides)
Take Home Exam (Due: April 29, 2018 - Sunday) (Handin under assignment: final)
Practice Problems for Exam 3