Syllabus, lectures, and other materials — Summer 2015

The grader for the class is Robert Massicotte. His office is in MCH 101A, and his office hours are 2:00-4:00pm on Wednesdays.

His email address follows the departmental standard of "initialLastname @"

Summer 2015: Syllabus for COP4020

Reading Schedule

Class Paper and Presentation

COP4020 Pleasant language package

Lemon parser generator documentation

RE2C scanner generator documentation


Assignment 1 (pdf)

Assignment 1 Discussion(pdf)

Assignment 2 will be available on Blackboard from 5:30pm on June 9 until 5:15pm on June 11. Look under the Assignments tab:

Class Notes

Chapter 1 Slideshow

Chapter 1 PDF

Chapter 2 Slideshow

Chapter 2 PDF (doesn't show diagrams yet)

Chapter 3 Slideshow

Chapter 3 PDF

Chapter 4 Slideshow

Chapter 4 PDF

Chapter 6 Slideshow

Chapter 6 PDF

Chapter 7 Slideshow

Chapter 7 PDF

Chapter 8 Slideshow

Chapter 8 PDF

Chapter 9 Slideshow

Chapter 9 PDF

Chapter 10 Slideshow

Chapter 10 PDF

Chapter 11 Slideshow

Chapter 11 PDF

Chapter 12 html

Chapter 12 PDF

Chapter 13 html

Chapter 13 PDF

Topic: Parsing with Lemon and RE2C

Topic: Parsing with Lemon and RE2C

Other Material

A sample mmap(2) wrapper

The Language List

IEEE's 2015 list of popular languages

The Semicolon Wars


Redmonk Popularity Index

BlackDuck Yearly Language Use Index

Rust Once, Run Everywhere

Swift Versus Objective C

2015-05-14: As mentioned last class, Content Addressable Memory (CAM). Please consider what implications it would have for programming languages to be able to easily access CAM. (E.g., look at the encouraging results for Goodyear MPP in processing satellite data.)

2015-05-14: A Case Against the GOTO Statement

2015-05-18: There are a number of versions of "The Evolution of a Programmer"; one that is particularly amusing is this one: The Evolution of a Haskell Programmer

2015-05-21: The Chomsky Hierarchy

2015-06-01: The recursive descent parser from GCC 5.1

2015-06-01: Intel's MPX extensions

2015-06-02: Converting OpenBSD to PIE

2015-06-10: Design Principles Behind Smalltalk

2015-07-09: SICP

2015-07-09: Scheme from Scratch

2015-07-09: Learn You a Haskell for Great Good!

2015-07-21: Amusing use of a declarative language: Postgresql for Mandelbrot

2015-07-21: Mandelbrot in C from Rosetta Code

2015-07-21: Mandelbrot in C from Rosetta Code, modified to use threads in fork/join and messages