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
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
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
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
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
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
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
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!
|
|
|
|