Syllabus, lectures, and other materials — Summer 2016


Assignment 1, due May 20

Assignment 2, due June 14 (extra credit deadline)/June 21 (regular deadline)

Syllabus and schedule

Summer 2016: Syllabus for COP4020

Reading Schedule

Paper and presentation information

Final Projects

Class Notes

While you are working on assignment 1, you might be amused to read this bit about the importance of assembly and understanding what is actually going on under the hood.

I will be talking about material in Chapter 2 that explores many traditional ideas in lexing and parsing; I will also throw some other ideas. In addition, if you like to watch video, there is a video at Microsoft that throws some interesting light on where Anders Hejlsberg is going with compilation.

Here's the link for the Erlang syscall analysis mentioned in class.

Here's a link to see interesting comments from Rob Pike about using regular expressions in lexing.

Other Material

Language Rankings

The Language List

IEEE's 2015 list of popular languages


Redmonk Popularity Index

Programming Language General Interest Links

Lambda the Ultimate

The Semicolon Wars

Rust Once, Run Everywhere

Swift Versus Objective C

2015-05-14: Content Addressable Memory (CAM). Please consider what implications it would have for programming languages to be able to easily access CAM. (Interesting paper on the architecture is here.

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

2016-05-09: The recursive descent parser from GCC 6.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

2016-05-23: Compiler technology comes to databases

2016-06-01: Optimization? In what sense?

2016-06-13: Intel's newest stack scheme

2016-06-15: The classic negative formulation as to what types are: Types are not sets (1973, Morris)

2016-06-15: Dynamic typing in Haskell

2016-06-27: A Rationale for Pyret

2016-07-08: Translation from C to Rust via Haskell

2016-07-15: Reference counts from another perspective

2016-07-18: Larry Wall interview

2016-07-20: Implementing functional languages: a tutorial

2016-07-20: The Implementation of Functional Programming Languages

2016-07-20: The language of logic? 200 terabyte maths proof is largest ever

2016-07-25: Backpatching in C: Closures with value capture in C

2016-07-25: Curry On Conference

Obligatory xkcd: