marcel@uiucdcs.UUCP (11/18/83)
#N:uiucdcs:29700011:000:3285 uiucdcs!marcel Nov 17 11:13:00 1983 I'm not sure what the algorithm-izers are looking for; they seem to know more about what they DON'T want (no criticism intended, one has to start somewhere). What's people's opinion of systems like Prolog/KR (Japanese effort, published in "New Generation Computing", first issue); or of QUTE (IJCAI 83), which merges Prolog and Lisp (IJCAI 83 also contains another - similar - attempt)? At this point I'm not convinced that what Russ Abbott labels the "coat-tail" approach to Prolog algorithm is inherently evil. Granted, though, that there may be better ways to do it (eg come up with a more general formalism, one that includes an "implementation" of 1st-order logic as a subset, as the IJCAI 83 papers try to do). As far as I know the Edinburgh Prolog interpreters were designed to activate left-to-right just so that algorithms could be coded reasonably efficiently. But perhaps that ought to be viewed as a cop-out, ie as an admission of the lack of a better idea? In my opinion the "coat-tail" approach actually has a VERY strong point in its favour, namely that at least the procedures/algorithms are RULE-BASED. This against Richard O'Keefe: Dykstra, Wirth and Hoare do not necessarily have the last word in algorithmic programming. I would very much rather write small chunks of impure Prolog than have to wade through Pascal looking for a matching END that closes a block having 10 nested loops! Of course, Prolog doesn't have a patent on rule-based computing, and I would be even happier with a language that is more algorithmic AND declarative AND rule-based. So perhaps I should be using some novel form of production system. As it happens, that's exactly what I AM doing -- designing a language that borrows from both Prolog and production systems, to see if their marriage can solve some problems in both. At this point I'm receiving some very negative comments from some referees who consider that, even though there IS a uniform logical basis to my language (admittedly equivalence rather than implication), and though it contains Prolog as a subset, it also contains too much provision for procedure to be given the respect that only REAL logic deserves ... Interestingly enough, the Japanese seem to have adopted a different stance on that. Though (obviously) not everything they do is very aesthetic, they are manifesting (as I see it) a strong tendency toward pragmatics and (oh dear) "user-convenience". Perhaps TOO much of "whatever works". At which point the quote from Wirth on language simplicity (often consonant with logical purity) is applicable. The only way to please everybody is to come up with a pure formalism capable of supporting both logic interpretation and algorithms. Otherwise your paper will be rejected by approximately half its referees, and you'll never be seen in print except in Japan! Perhaps -- perhaps not -- we will eventually come to admit that too many ingredients spoil the language, and will settle for a few less general languages whose programs communicate by Unix pipes? Until then I tend to sympathise with the Japanese and their search for a programming tool that supports algorithms, pattern-matching, back-tracking AND rule-based knowledge representation. Marcel Schoppers U of Illinois @ Urbana-Champaign
marcel%Ucb-Vax@uiucdcs.UUCP (11/24/83)
I'm not sure what the algorithm-izers are looking for; they seem to know more about what they don't want (no criticism intended, one has to start somewhere). What's people's opinion of systems like Prolog/KR (Japanese effort, published in "New Generation Computing", first issue); or of QUTE (IJCAI 83), which merges Prolog and Lisp (IJCAI 83 also contains another - similar - attempt) ? At this point I'm not convinced that what Russ Abbott labels the "coat-tail" approach to Prolog algorithm is inherently evil. Granted, though, that there may be better ways to do it (E.g. come up with a more general formalism, one that includes an "implementation" of 1st-order logic as a subset, as the IJCAI 83 papers try to do). As far as I know the Edinburgh Prolog interpreters were designed to activate left-to-right just so that algorithms could be coded reasonably efficiently. But perhaps that ought to be viewed as a cop-out, I.e. as an admission of the lack of a better idea ? In my opinion the "coat-tail" approach actually has a very strong point in its favour, namely that at least the procedures/algorithms are RULE-BASED. This against Richard O'Keefe: Dykstra, Wirth and Hoare do not necessarily have the last word in algorithmic programming. I would very much rather write small chunks of impure Prolog than have to wade through Pascal looking for a matching end that closes a block having 10 nested loops ! Of course, Prolog doesn't have a patent on rule-based computing, and I would be even happier with a language that is more algorithmic AND declarative AND rule-based. So perhaps I should be using some novel form of production system. As it happens, that's exactly what I am doing -- designing a language that borrows from both Prolog and production systems, to see if their marriage can solve some problems in both. At this point I'm receiving some very negative comments from some referees who consider that, even though there is a uniform logical basis to my language (admittedly equivalence rather than implication), and though it contains Prolog as a subset, it also contains too much provision for procedure to be given the respect that only real logic deserves ... Interestingly enough, the Japanese seem to have adopted a different stance on that. Though (obviously) not everything they do is very aesthetic, they are manifesting (as I see it) a strong tendency toward pragmatics and (oh dear) "user-convenience". Perhaps too much of "whatever works". At which point the quote from Wirth on language simplicity (often consonant with logical purity) is applicable. The only way to please everybody is to come up with a pure formalism capable of supporting both logic interpretation and algorithms. Otherwise your paper will be rejected by approximately half its referees, and you'll never be seen in print except in Japan ! Perhaps -- perhaps not -- we will eventually come to admit that too many ingredients spoil the language, and will settle for a few less general languages whose programs communicate by Unix pipes ? Until then I tend to sympathise with the Japanese and their search for a programming tool that supports algorithms, pattern-matching, back tracking AND rule-based knowledge representation. -- Marcel Schoppers of Illinois @ Urbana-Champaign