This is a great slide deck on what goes into making a modern game with a roadmap for future success. It talks a bit about how languages and programming techniques can be used to reduce errors and exploit the parallelism of future machines:
http://www.cs.princeton.edu/~dpw/popl/06/Tim-POPL.ppt
Monday, October 29, 2007
Saturday, October 20, 2007
Delimited continuations in Operating Systems
The stated purpose of this goal is to talk about something that might seem fairly obvious to most operating system writers: that operating systems are full of continuations. Ok, if you're an operating system geek you probably wouldn't call it this, you'd probably be thinking "setjmp" and "longjmp". Taking a look at this from a functional point of view with continuations is pretty interesting. Unfortunately this paper doesnt really talk about this subject as much as it promises! Instead they have a shallow introduction and then talk a little bit about their implementation of a tiny file server type operating system that uses continuations. Fortunately, this part is more interesting than it might seem. It shows how easily you can implement a transactional system using a pure language that provides familiar cursor/open/read/read type operations. Their whole implementation (available online) is 1000 lines of haskell.
The paper:
http://okmij.org/ftp/papers/context-OS.pdf
The site:
http://okmij.org/ftp/Computation/Continuations.html#context-OS
The paper:
http://okmij.org/ftp/papers/context-OS.pdf
The site:
http://okmij.org/ftp/Computation/Continuations.html#context-OS
Thursday, October 11, 2007
Total functional programming
Did you know you can write real programs in a language that isn't turing complete and has decidable properties? Turing complete languages have this pesky "halting problem" issue which is undecidable. Languages that aren't Turing complete aren't general enough to do anything useful. Or so you thought!
Read all about Total Functional Programming in this paper by Turner.
Read all about Total Functional Programming in this paper by Turner.
Using Z
OK, this one's a book, and not a paper...
The Z-notation is a formal notation for specifying programs. There's a free book online: Using Z
You might like this book even if you're not interested in writing specs for programs. Why? This book has one of the more readble and approachable introductions to predicate calculus, sets, functions and relations that I've seen.
The Z-notation is a formal notation for specifying programs. There's a free book online: Using Z
You might like this book even if you're not interested in writing specs for programs. Why? This book has one of the more readble and approachable introductions to predicate calculus, sets, functions and relations that I've seen.
Welcome back and a quick paper
It's been a long time since my last post. My apologies. I've been down the rabbit hole, reading all sorts of papers on functional programming, math, logic, type systems, proof systems, etc. Hopefully I'll get a chance to post about some of the more interesting ones here soon, but now is not the time. Instead I leave you with a single paper:
A tutorial on the expresiveness of fold by Graham Hutton.
This paper is a tutorial on the "fold" function (sometimes know as "reduce") which abstracts certain kinds of loops (or a certain kind of recursion).
A tutorial on the expresiveness of fold by Graham Hutton.
This paper is a tutorial on the "fold" function (sometimes know as "reduce") which abstracts certain kinds of loops (or a certain kind of recursion).
Subscribe to:
Posts (Atom)