Supported browsers

Chrome 4.0 Firefox 3.6

Online references

to advanced and odd topics of programming

This page contains references to interesting articles or videos on the net that are somewhat advanced or odd in their nature. Some of them might be only decent but have some useful content nonetheless. See also my recommendations.

Suggestions of any kind are appreciated: henrik.huttunen@gmail.com

Applicative programming with effects Conor McBride, Ross Paterson
The article
The Essence of the Iterator Pattern Jeremy Gibbons, Bruno Oliveira
The article
Parametric Polymorphism and the Girard-Reynolds Isomorphism Phil Gosset

This talk is based on Philip Wadler's series of papers that deal with advanced topics in programming languages.

The video
How to Design a Good API and Why It Matters Joshua Bloch
The presentation
Generics of a Higher Kind Adriaan Moors

Parametrizing over type constructors makes it possible to write highly reusable libraries. Adriaan Moors shows design and implementation of it in Scala.

The article
What Does Monad Mean? Tony Morris

Monad is a central abstraction in programming that unfortunately is not explicitly well known. Tony Morris gives a sensible introduction for the subject.

The Zipper Gerard Huet

An elegant functional datastructure.

The article
Design Principles Behind Smalltalk Daniel H. H. Ingalls

High level view of Smalltalk's design.

The article
Typed Scheme Sam Tobin-Hochstadt

Scheme with inclusion of types to improve maintainability of programs.

The dissertation
Purely Functional Data Structures Chris Okasaki

Efficient purely functional data structures are crucial for functional languages. Osaki presents general design techniques with amortazion and without it, and also gives many data structure implementations.

Handling Architecture in the Agile World Jim Coplien

Jim Coplien talks about how OO should be more about roles. The talk is based on the work of MVC inventor Trygve Reenskaug.

The video on JAOO blog
The DCI Architecture: A New Vision of OO programming Trygve Reenskaug, James O. Coplien

What's wrong with MVC based OO and what could be a better model.

The article
Simply Scheme: Introducing Computer Science Brian Harvey

A kind of a presequel to SICP.

The book's homepage
Communicating Sequential Processes (CSP) Tony Hoare
Available online
Thinking in Forth Leo Brodie
Available online
Why Should I Rewrite My Software When Dynamic Compilation Can Be Good Enough?
Type Inference and Optimisation for an Impure World - Ben Lippmeier
Making Uniqueness Typing Less Unique
On Understanding Data Abstraction, Revisited
Genuinely Functional User Interfaces
Automata via Macros
The inspiration for Self
Monads are Trees with Grafting
Cancatenative Programming - An Overlooked Paradigm in Functional Programming
A Tutorial on the Universality and expressiveness of fold
Why Dependent Types Matter