FGCS Project Evaluation Report
Keith L. Clark
Imperial College
London, UK
5th June 1992
This report is an expanded version of the short presentation that I gave at the FGCS Project
Evaluation Workshop on June 3rd in Tokyo. It is based on knowledge of the project gained
since my first visit to ICOT in 1983, on the ICOT reports and associated presentations of
the first two days of the FGCS92 conference, and on the presentations and discussions of
the evaluation workshop.
Interest and involvement with the FGCS project
Let me say at the outset that I was very pleased and honoured to be invited to take part in
the evaluation workshop. As one of the originators of the concept of committed choice
concurrent logic programming I have had a vested interest in the project, which in the latter
stages became a huge experimental investigation into the utility of this variant of logic
programing. Your adoption of this special form of logic programming has been criticized.
It is said to be too low level, too far away from the ideal of high level declarative
programming. The retort I have always given is that at the time you made the decision to
fix on such a language as your kernel language for parallel machines, no other proposed
type of logic programming language, which one could hope to implement efficiently on a
multiprocessor machine, enabled one to program the concurrent communicating processes
needed in an operating system for a parallel machine. Quite correctly, you had the
programming of the operating system, in the LP language of the machine, as a major goal.
In addition, and as you have shown, I have argued that more declarative logic program
languages can be supported on top of such a language. (I am now inclined to agree with
the view expressed at the evaluation workshop by David Warren that the recently proposed
Andorra extension of Prolog, or the Pandora extension of Parlog, are higher level
languages which today would be a better starting point for a PIM kernel language than
FGHC. But that is with hindsight.)
Interestingly, three people (Giles Kahn, Alan Robinson and Tony Hoare), who had an
influence on the conception of committed choice concurrent logic programming, are
attending FGCS92. Giles Kahn, in his 1977 IFIP paper with Dave McQueen on a stream
communication model of parallel programming, set me and Frank McCabe on the track of
exploring coroutining and pseudo parallelism, with incremental communication via shared
variables, in IC-Prolog. It was our inability to see how we might efficiently implement IC-
Prolog on a multi-processor that was the motivation to find an alternative approach. Then,
on a semester visit in 1980 to Syracuse University, at the invitation of Alan Robinson,
Steve Gregory and I decided to look at Hoare's CSP for inspiration. The concept of
guards and committed choice non-determinism of that language (an idea previously
proposed by Dijkstra for his guarded command language) seemed to us just the concept
needed to allow efficient implementation of and-parallelism with stream communication in a
logic programming language. This lead to the so called Relational Language, which merged
the committed choice, communication only on committment, concept of CSP with the
equally elegant stream communication model of Kahn and McQueen.
Because of our early work on concurrent LP languages, Steve Gregory and I were invited
to ICOT in 1983. (I was pleased to hear in his Monday conference presentation, that Koichi
- 48 -