CM20253: Comparative Programming Languages
Unit Catalogue
CM20253
Some links
- Programming Languages Influence Network
-
Relative popularity
of various languages in the real world
- C is more subtle than you think. Try
this Quiz about integers in
C
- Undefined Behaviour in
2017 Reflecting on the state of C/C++ with a list of about 200
places in C/C++ where behaviour is undefined
- Functional
Programming on Wikipedia
- List
of functional languages
- Functional Programming
For The Rest of Us from a Java perspective
- Mostly
adequate guide to FP (in javascript)
- History
of Lisp by John McCarthy
- History
of Lisp by Herbert Stoyan
- The Evolution
of Lisp by Steele and Gabriel
- Structure
and Interpretation of Computer Programs full text
- Structure
and Interpretation of Computer Programs Video Lectures by Hal Abelson
and Gerald Jay Sussman
- Hyperpolyglot comparison
of Common Lisp, Scheme, Clojure and Emacs Lisp
- Haddocks' Eyes, with
some
explanation
- The Funarg
problem
- Technical
Issues of Separation in Function Cells and Value Cells Lisp-1 vs Lisp-2
- Boehm garbage
collector for C and C++. This contains several links to GC literature
- Visualizing Garbage Collection Algorithms
- Why Discord is switching from Go to Rust GC latency
- Glasgow Haskell Compiler;
ghc and ghci interactive r-e-p loop
- Wikibook on Haskell
- Learn You a Haskell for
Great Good!
- Scala
an OO
functional language that uses the Java virtual machine
- Curry-Howard
Isomorphism
- Erlang Practical functional
- Rust A post-C language
- Go A post-C language
- Swift A post-C language
- Lua Scripting, procedural, functional,
bytecode
- OCaml Functional (and imperative and OO)
- C Right-Left
Rule for deciphering C declarations
- The C Object System: Using C as a
High-Level Object-Oriented Language
- Compiler
error messages from the Apple MPW C compiler
- Ten
Things I Hate About Object-Oriented Programming
- C++ as a
Multiparadigm Language including reflections on why OO is not a
panacea
- Go and Rust - objects without
class
- Composition
over inheritance
- Entity-Component-Systems
- Resource Acquisition Is
Initialization (RAII)
- A
Brief, Incomplete, and Mostly Wrong History of Programming Languages
- Banks
will stick with COBOL because Java has performance issues
- Facebook's
New Spam-Killer Hints at the Future of Coding
using Haskell
- Rosetta Code
solutions to tasks in many languages
- Use after free
and dangling pointers
- The
worst mistake of computer science about how NULL is a big problem
- Null References: The Billion Dollar Mistake
- The
Semipredicate Problem how to deal with errors
-
Wikipedia
list of programming languages
- Advice on avoiding basic errors in
C
C++
Java
- Comparing
implementations of a network driver in
C, Rust, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python
- Object-Oriented
Programming - The Trillion Dollar Disaster Why it's time to move on
from OOP
Wikipedia articles tend to be fairly accurate in this area.
Online Past Papers
Past Papers
The Exam
At the end of the Semester 2 (100%).
Moodle
Not much on
the Moodle
page.
All the Slides
All the slides in one big PDF.
Slides
Note that these slides are reminders to me as to what topics I should cover:
you are expected to read around the subject and refer to your lecture
notes. Don't treat the slides as the entirety of your study.