References
- Programming languages: principles and paradigms, Allen Tucker, Robert Noonan.
- Other good books:
- Programming Language Pragmatics, Michael L. Scott: in the SFU Library (includes web edition); from Wikipedia book sources
- Concepts in Programming Languages, John C. Mitchell: in the SFU Library (includes web edition); from Wikipedia book sources
Wikipedia Links
Let's be honest: Wikipedia articles are often the best introductory descriptions to concepts you'll find anywhere.
- Computer program
- Programming paradigm
- Compilers and Interpreters:
- Type Systems
- Memory Management
- Variables
- Concurrent Computing/Parallel Programming
Compiler Tech
- LLVM project, a “Low-Level Virtual Machine” compiler infrastructure project
- Facebook releases a PHP just-in-time compiler
- Memory Management Reference
- Practical Garbage Collection
- A JVM Does That?
- Visualization of JITted code [in PyPy]
Functions and Scope
- What's a Closure?
- Closures explained with JavaScript
- Making code more readable with anonymous functions
- Getting comfortable with Javascript callbacks
Concurrent and Parallel Code
- Language concurrency modules: Java
java.util.concurrent, Pythonmultiprocessing, Haskellparallelpackage. - Concurrent matrix multiplication in Python
- Python - parallelizing CPU-bound tasks with multiprocessing
- Parallelism is not concurrency
- Auto-vectorization with gcc 4.7
Programmer Efficiency
- Faith, Hope, and Love: An essay on software science’s neglect of human factors [PDF]
- An Empirical Comparison of Seven Programming Languages, from IEEE Computer, vol 33 (2000), no 10.
- Empirical Comparison, SFU Library link
- Empirical Comparison draft
- Note particularly Figure 6 (in the published version; Figures 15 and 16 in the draft) for a comparison of programmer productivity.
- Haskell vs. Ada vs. C++ vs. Awk vs. … An Experiment in Software Prototyping Productivity
- Are All Programming Languages The Same? A lines-of-code language comparison.
- Computer Language Benchmarks Game: lines-of-code comparison
- The Hammer Principle: “I enjoy using this language” rankings
- It's Faster Because It's C, a deconstruction of who really needs to care about “faster” code.