29.1.07

Definitional Interpreters for Higher-Order Programming Languages

I just became aware that this seminal paper by John Reynolds was republished by HOSC in 1998, making it available online. (Thanks, Olivier and Carolyn!) If you've never read it and you are interested in programming languages then I suggest you read it immediately. It introduced the term metacircular interpreter and the concept of defunctionalization, as well as being one of the first clear explanations of continuation passing style. The paper is accompanied by a new forward written by John, Definitional Interpreters Revisited.

24.1.07

The Essence of Functional Programming: the code

Oleg Paraschenko has typed in all the examples from The Essence of Functional Programming, and made them available online. There is also a review of the paper in Russian. Thanks, Oleg!

8.12.06

The h-index and m-index

Michael Schwartzbach has written a web application to compute the h-index and m-index of an author, using data from Google Scholar. The terms come from Hirsch 2005, which defines h-index as follows:

A scientist has index h if h of his/her N papers have
at least h citations each, and the other (N − h) papers
have no more than h citations each.

The m-index is given by h/n, where n is the number of years the scientist has been publishing papers. Jens Palsberg maintains a list of computer scientists with h-index of at least 40.

Elsevier and the Arms Trade

The BBC writes: "Medical journal The Lancet has launched a scathing attack on its owner, Reed Elsevier, for helping to organise Europe's largest arms fair."

Nick Gil maintains a page on the subject.

5.12.06

Dabble DB

Avi Bryant demoed this at the Dynamic Languages Symposium in Portland in October (attached to OOPSLA). I tried it out on some data I needed to manipulate (computing who has submitted lots of papers to various conferences but sat on few pcs). It worked well and was fun to use.

37 signals

A fun manual explaining how to design an app and run a web company. My favorite chapters so far are 'Make opinionated software' and 'Meetings are toxic'.

2.11.06

Java Generics and Collections

By myself and my colleague and friend Maurice Nafalin. It's finally out, after considerable effort over the last year. It's just published, and I was pleased to see the O'Reilly stand at OOPSLA sold out.

"A brilliant exposition of generics. By far the best book on the topic, it provides a crystal clear tutorial that starts with the basics and ends leaving the reader with a deep understanding of both the use and design of generics." -- Gilad Bracha, Java Generics Lead, Sun Microsystems

Thanks for the kind words, Gilad!

Faith, Evolution, and Programming Languages

My keynote at OOPSLA. Had a mixed reception, as shown by the blog entries of Eugene Wallingford, Andrew Cooke, and Andres Valloud.

Fast graphics rendering in JavaScript

Spotted by Jeremy.

23.10.06

John Baez on Lambda Calculus and Games

John Baez has an intriguing introduction to lambda calculus and games. He converts a game tree into an expression built from products, exponents, and a single term X (hence there is a close connection to CCCs). The corresponding game is unwinnable if setting X=0 and evaluating yields 0 (so X is an unwinnable game: there are no values of type All X.X) and winnable if evaluating yeilds 1 (so X^X is a winnable game: there is a value of type All X. X -> X). The note is a couple of pages long, and ends with a fine survey of introductory material on lambda calculus.