Pereira%SRI-AI@sri-unix.UUCP (05/26/84)
I feel that the recent discussion on Prolog syntax on this Digest has been less than illuminating, concentrating as it did on obscure points of Edinburgh Prolog syntax which I'm sure most users have never come accross. I think the discussion would be better continued in the more constructive direction suggested by Richard O'Keefe of designing an interchange format for Prolog programs. Having had to convert recently a very large Prolog program from DEC-20 Prolog to Waterloo Prolog, I feel that such an interchange mechanism would probably be the one single step that would most improve the cohesion of a fragmented Prolog world. Furthermore, syntax is the least of the interchange problems. Differences in the effect of evaluable predicates, often subtle, are a much bigger problem, at least judging by my recent experience. To make the interchange format really useful, a small kernel of common evaluable predicates should be defined into which most of the usages of particular systems could be mapped. Converters to the interchange format would warn of nonportable constructions (a bit like the Lint style checker for C). At first sight, the syntax of Richard's proposed format looks reasonable. For those who didn't wade through the syntax rules, it is essentially prefix Polish with every function symbol preceded by its arity. For those who still remember the old Fortran Marseille Prolog interpreter, this should bring fond memories of a convoluted bootstrap process... -- Fernando