Fall 2017: Syllabus for COP4020
Paper and presentation information
Languages to consider for the paper and presentation.
GCD Assembly assignment (Due by
September 12 September 19, 11:59pm)
"Hello World" exercises (no due date, not for a grade)
Adding goto to 2.15 calculator language (Due by October 16, 11:59pm)
The tar file for the above
The Rho exercises, due either November 6 (extra credit deadline) or November 13 (regular deadline)
Make up or extra credit assignment (due November 13)
I will be talking about material in Chapter 2 that explores many traditional ideas in lexing and parsing; I will also throw out 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 a link to see interesting comments from Rob Pike about using regular expressions in lexing.
Here's a link to some additional material on recursive descent and Scott's 2.15 "calculator language."
IEEE's 2017 list of popular languages
Redmonk Popularity Index
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: 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
2017-08-30: Making V8 fast
2017-09-18: Web Assembly
2017-09-19: What Next?
2017-09-27: High Level Assembler Reference Guide
2017-09-27: Why We Chose Rust
And Hacker News Discussion of Said Choice
2017-10-02: Diminishing Returns of Static Typing
2017-10-05: GCC archaeology
2017-11-08: Write Yourself a Scheme in 48 Hours (using Haskell)
2017-11-08: A DoS attack against the C# compiler