« earlier | later » Page 1 of 2
Elements of Programming edit / delete
The (well-known?) book that has a nice treatment of reasoning about program semantics, using C++ as the sample language. And now the book is freely available as a PDF! I wonder if we could do a module based on this...
to c++ cmp409 etext programming-language semantics ... on 29 June 2020
Tony Hoare's 1965 proposal for adding records to Algol. It's quite nice.
to algol cmp409 data-structures language-design retrocomputing ... on 15 January 2019
Abbreviated vs. Full-Word Identifier Names edit / delete
"We carried out a family of controlled experiments to investigate whether the use of abbreviated identifier names, with respect to full-word identifier names, affects fault fixing in C and Java source code. [...] Overall results suggested that there is no difference in terms of effort, effectiveness, and efficiency to fix faults, when source code contains either only abbreviated or only full-word identifier names."
to cmp409 errors experiment language-design ... on 24 October 2018
Lots of interesting articles introducing aspects of programming language design. CMP409 students should have a flip through this.
to cmp409 language-design types ... on 24 October 2018
C&C - An Explanation of Type Inference for ML/Haskell edit / delete
A succinct description of how to implement type inference for your typical functional language. Will be clear enough if you understand a functional language already.
to cmp409 functional haskell ml type-inference ... on 24 October 2018
C&C - A Crash Course on ML Modules edit / delete
A really good description of Standard ML's module system (and OCaml, where it differs). I do like ML's modules, but wish the syntax and terminology was a bit friendlier...
to cmp409 functional language-design ml module ocaml ... on 24 October 2018
What can we learn from how compilers are designed? edit / delete
Discusses things like "Why so many IRs?". Probably of interest to CMP409 students.
How LLVM Optimizes a Function – Embedded in Academia edit / delete
A nice walkthrough of how LLVM's optimisation passes rewrite a simple loop. This assumes you know how LLVM's SSA representation works, but it'll still make sense even if you don't.
to cmp409 compiler llvm loop optimisation ... on 11 September 2018
Modern garbage collection – Mike’s blog edit / delete
A critical look at the tradeoffs in Go's GC. (Like their concurrency facilities, it ignores a lot of the advances in design in the late 70s.)
to cmp409 gc go language-design ... on 05 May 2018
« earlier | later » Page 1 of 2
- cmp409 | |
1 | + algol |
1 | + c++ |
5 | + compiler |
1 | + data-structures |
1 | + design |
1 | + errors |
1 | + etext |
1 | + experiment |
3 | + functional |
1 | + gc |
1 | + go |
1 | + haskell |
1 | + history |
1 | + interpreter |
1 | + ir |
7 | + language-design |
1 | + languages |
1 | + llvm |
1 | + loop |
3 | + ml |
1 | + module |
2 | + ocaml |
1 | + optimisation |
2 | + parsing |
1 | + programming-language |
1 | + retrocomputing |
1 | + semantics |
1 | + tcl |
1 | + type-inference |
1 | + types |
tasty by Adam Sampson.