Lambda the Ultimate

inactiveTopic Peter Van Roy here on LtU
started 10/21/2003; 2:28:13 AM - last post 10/21/2003; 11:19:23 PM
Ehud Lamm - Peter Van Roy here on LtU  blueArrow
10/21/2003; 2:28:13 AM (reads: 6629, responses: 6)
Peter Van Roy here on LtU
I am very pleased to announce that Peter Van Roy of the Université catholique de Louvain agreed to guest blog on LtU.

Peter is well known for his involvement with Mozart/Oz, specifically the distribution model for Oz which he designed with Seif Haridi in 1996, and is still part of Mozart today.

Peter's earlier work was on Prolog, where he was the first to write a WAM based Prolog compiler way back in 1984, even before David Warren himslef. Peter worked on optimizing Prolog compilers and produced the first Prolog compiler (Aquarius) that generated code that was competetive with good C compilers. Maybe he'll want to tell us more about that...

Peter's and Seif Haridi's book Concepts, Techniques, and Models of Computer Programming (to be published by MIT Press) was mentioned quite a few times on lambda, and raised a lot of interest.

I asked Peter to be as opinionated as he wants, so I have high hopes for the debates his residency here can lead to.

I want to thank Peter for agreeing to guest blog, and will now let him introduce whatever topics he wants to discuss.

Posted to Guest Bloggers by Ehud Lamm on 10/21/03; 2:33:08 AM

Peter Van Roy - Re: Peter Van Roy here on LtU  blueArrow
10/21/2003; 3:46:35 AM (reads: 506, responses: 2)
Thanks for the invitation and the nice introduction. I have a few things I would like to get off my chest, and this seems to be a good way to do it and get some quality feedback.

First of all, I think that Lambda the Ultimate should be renamed to Pi the Ultimate. In my view, the lambda calculus is past tense; the future belongs to process calculi deriving from the pi calculus. Process calculi are much more expressive: e.g., one I am studying now, the M calculus (Schmitt & Stefani) can express many important idioms of distributed computing in a simple way. There are many other interesting calculi; I don't want to digress too much on any specific one right away.

The lambda calculus is too limited in expressiveness; we need concurrency and explicit state, and we need to talk about distributed systems and partial failure and security, and so forth. These and other concepts will eventually trickle down into the programming language, and process calculi are showing the way.

The general kernel language of my book (which I will call 'CTM' from now on) is a process calculus that is based on concurrent constraints. It has a different design goal than the usual process calculi, which are designed to be minimalist. The kernel language is designed to be expressive, i.e., to have the concepts needed by programmers. But it is still a process calculus.

As a final point, note that we are not losing anything w.r.t. the lambda calculus, since it is a subcalculus of a well-designed process calculus. A good process calculus has a layered structure; you pick the subset that has the concepts you need and this determines the reasoning techniques that you can use. So you can still do nonstrict functional programming (or whatever) in those places where it's best, and what's more the functional programming interoperates seamlessly with the rest.

(There are a few other topics I would like to discuss; I will start separate discussions for them.)

Marc Hamann - Re: Peter Van Roy here on LtU  blueArrow
10/21/2003; 4:09:56 AM (reads: 496, responses: 0)
the future belongs to process calculi deriving from the pi calculus

I think I would find this much easier to take if I didn't imagine the sound of cell phones ringing every time I read about the pi calculus. ;-)

Ehud Lamm - Re: Peter Van Roy here on LtU  blueArrow
10/21/2003; 4:40:57 AM (reads: 493, responses: 0)
Seems to me we still have a long way to go with sequential programming (see recent discussion of abstraction facilities etc.).

I wonder if distributed models can help us with these issues, or do they only add more issues that need to be addressed.

Peter Van Roy - Re: Peter Van Roy here on LtU  blueArrow
10/21/2003; 9:09:58 AM (reads: 437, responses: 0)
A well-chosen process calculus does not add more issues, it just makes it easier to think about the issues that you want to think about, without getting in your way.

A distributed model will not help with sequential programming AFAIK, but a concurrent model can be useful. As I mentioned before, a sequential program ties together its components too tightly. I.e., if one component needs to do something then all others have to wait for it.

Mark Evans - Re: Peter Van Roy here on LtU  blueArrow
10/21/2003; 7:20:48 PM (reads: 353, responses: 0)

Ehud, what a catch! Welcome, Peter Van Roy, and thank you for signing up. I second Ehud's exhortation to be opinionated. One thing that impresses me about your work is its attention to the problem of putting useful academic results into the hands of workaday programmers. LtU shares that laudable goal, maybe not as the prime directive, but in general. Many workaday programmers scoff at academic work, so part of the task includes clear-cut, but measured, opinions. Take Frank Atanassow as your model for opinionated style. (That's a compliment, Frank.)

Another part of the task is to create tools. It's good to see Flow Java on the LtU home page and more attention-grabbing LtU headlines about Alice ML and the rest of the family. Looking forward to more, -Mark

Peter Van Roy - Re: Peter Van Roy here on LtU  blueArrow
10/21/2003; 11:19:23 PM (reads: 363, responses: 0)
Flow Java is a nice piece of technology transfer. All Java programmers should look at it carefully and reflect on what Java could become in the future!