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
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
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