Archive for January, 2011

Giffords for President!

January 22, 2011

Giffords lives, heck, she can even use her iPad again. Congratulations! It would not surprise me if this tragedy might be the push Giffords needs to become a serious contender for the president’s job. Just when I thought I was out, they pulled me back in.

Advertisements

Whatever Works (2009)

January 22, 2011

Great Woody Allen movie. Strange I missed that one when it was in the cinemas, 2009 was a strange year for me, I guess. On IMDB it is rated 7.3, but I would give it at least an 8.4 like Bergman’s “Wild Strawberries”. Not because the two films are so similar, but because in the end, they touch you in the same way. “Wild Strawberries” makes you cry, and “Whatever Works” makes you laugh.

WJP and Complexity Theory

January 21, 2011

This blog (which became famous during the last P != NP discussion) explains some of the work my former boss here in Saarbrücken (Wolfgang Paul) has done 30 years ago in complexity theory.

How to Think about Parallel Programming: Not!

January 15, 2011

I just watched this very interesting talk by Guy Steele. He talks about how programming languages have to adapt from a sequential programming style to a style that enables automatic allocation of processor resources to computations. He identifies the “accumulator pattern” as a sequential programming tool that must be avoided and instead be replaced by various operators like “Sum”, “Product” etc. which come with algebraic properties like associativity, commutativity, idempotence and so on. The algebraic properties provide invariants that create “the wiggle room” for compilers to do proper automatic processor allocation.

Nothing in this talk is real news, but it is always interesting to hear directly the opinion of a guy like Steele. I especially like and agree with the emphasis he puts on accumulators as a bad design choice for parallel programming. But then how come that in Babel-17, accumulators are an integral and important part of the language?! Isn’t Babel-17 supposed to be great for parallel programming?

Actually, there is a difference between the accumulators in Babel-17 and the accumulators Steele frowns upon. In Babel-17, accumulators are explicitly marked as such! Although currently there is no way to associate accumulators with properties like associativity, but there is nothing stopping a future version of Babel-17 from providing such facilities.

To illustrate the two different coding styles, look at the following Babel-17 code below which defines two functions sqrsum1 and sqrsum2 and applies both of them to the vector (1, 3, 7). In both cases the result is 59, as the result of summing up the squares of all elements of the vector should be. The function sqrsum1 is written with an implicit accumulator (implicit for the compiler, explicit for the programmer!). The function sqrsum2 is written with an explicit accumulator (explicit for the compiler, implicit for the programmer!). The style used for sqrsum1 is the one Steele suggests to avoid, but the style used in sqrsum2 is already pretty close to the style Steele advocates. A problem with sqrsum2 is that the protocol for an accumulator in Babel-17 is essentially sequential: collector_add_ x returns a new accumulator by accumulating x into the current one, and collector_close_ projects the final result out of the accumulator. In a future version of Babel-17, there could be additional accumulator protocols, for example collector_inject_, collector_merge_, collector_project_ for a divide/conquer type of protocol. The sequential and the parallel protocols could be distinguished via the “with” construct by adding a qualifier: “with seq” and “with par” instead of just “with”.

Flesh and Bone (1993)

January 15, 2011

There is a new category: “Movies”. If you wonder why, well, movies are virtual artifacts, too 🙂 Besides that, I love movies. Here I will post short reviews of movies I liked (and would give at least a 7 star rating on IMDB). Actually, mostly it probably won’t be so much movie reviews, but rather movie tips.

The first movie I’d like to mention because I saw it just a couple of minutes ago is “Flesh and Bone”. I think this movie is not very well known, despite its (at least from todays point of view) incredible cast. The four main characters are played by James Caan, Dennis Quaid, Meg Ryan and Gwyneth Paltrow, all four superstars at some point in time when they were at the peek of their careers. Consequently, the acting is great, and the story follows through to its logical conclusion. If you are ready for a movie gem, picking this one isn’t a bad choice.

Babel-17 featured at netbeans.org !!

January 7, 2011

Oracle will feature the Babel-17 plugin for NetBeans at netbeans.org in February for 2 weeks! This is great news, and I also take it as a compliment for the stability of the plugin.  And the best thing: You don’t have to wait until February, you can download your copy today at www.babel-17.com 🙂