Implementing Declarative Parallel Bottom-Avoiding Choice. Andre Rauber Du Bois, Robert Pointon, Hans-Wolfgang Loidl, Phil Trinder. Symposium on Computer Architecture and High Performance Computing (SBAC-PAD) 2002.
Non-deterministic choice supports efficient parallel speculation, but unrestricted non-determinism destroys the referential transparency of purely-declarative languages by removing unfoldability and it bears the danger of wasting resources on unncessary computations. While numerous choice mechanisms have been proposed that preserve unfoldability, and some concurrent implementations exist, we believe that no compiled parallel implementation has previously been constructed. This paper presents the design, smantics, implementation and use of a family of bottom-avoiding choice operators for Glasgow parallel Haskell. The subtle semantic properties of our choice operations are described, including a careful classification using an existing framework, together with a discussion of operational semantics issues and the pragmatics of distributed memory implementation.
amb breaks referential transparency (e.g., think about (\x.x+x)(3 amb 5) - how many choice points are there?)
This paper presents the problems, and shows how to implementat bottom-avoiding choice operators in Galsgow parallel Haskell (GPH).
The paper is worth checking out for the references alone, which can server as a useful guide to the subject of non-determinism in functional languages. Section 3 of the paper summarizes the semantic properties of the choice operators, and can be a good place to start reading if you are familiar with the subject.
I'll be away from my computer until Wednesday. Editors are urged to keep the good bits flowing.
Logic is the cornerstone of computer science in general and much of programming language theory in particular. Goedel's results are fundamental for any real understanding of modern logic.
This book by Peter Smith might serve as an introduction to Goedel's incompleteness results. Twelve chapters are online, and seem quite readable.
Hunter-gatherers from the Piraha tribe, whose language only contains words for the numbers one and two, were unable to reliably tell the difference between four objects placed in a row and five in the same configuration, revealed the study.
A new study may provide the strongest support yet for the controversial hypothesis that the language available to humans defines our thoughts.
The result is controversial enough that I withhold judgement until I read the journal paper.
Some kind of language support for error handling (e.g exceptions of various kinds, on error blocks, Maybe types, continuations etc.) has become standard. The exact mechanism is yet another language design decision designers have to make.
Eric Lippert describes VBScript's error handling mechanims. The VBScript approach is perhaps more confusing than it has to be (though I personally didn't find Eric's examples confusing). Tying exception handlers to blocks is more structured and perhaps better.
Be that as it may, I think better error handling constructs are still waiting to be discovered (or designed).
The first five chapters of Hutton's introductory Haskell book are online.
The chapters cover fairly basic features, and wouldn't be of interest to the Haskell experts among us, except as teaching material.
However, those intrigued by all the recent references to Haskell can get a taste of what Haskell is about from this readable introduction.
MOZ 2004 is devoted to bringing together people interested
MOZ 2004 will have two invited speakers (Gert Smolka, the
From: email@example.com (Mike Williams) To: firstname.lastname@example.org [...] As one of the main "actors" in "Erlang the Movie", I absolutely and categorically forbid its showing *anywhere*. If there was a competition for "turkey" short movies, I think we would win hands down. So, please, please, please, forget we made that retched film in 1990!
That's right, now you too can own the movie that "Bjarne used whenever he wanted to get rid of unwanted guests at CS lab parties"! Download the torrent or the file on erlang.org if you have 200MB of disk space to spare!
No, no and again, NO!!!
Active forum topics
New forum topics