ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (10/17/90)
I've been asked to help someone with a Turbo Prolog program. I believe it used to work under 1.3 (there's an object version running), but the 2.0 compiler doesn't like it at all. I have hunted through the Turbo Prolog 2.0 Reference Guide and the Turbo Prolog 2.0 User's Guide, but I cannot find a grammar for the language, not even a clear description of the tokens. Some specific points: it appears that Turbo Prolog accepts \n, \t, \", \', and \\ escapes in characters and strings, but that it also accepts \ddd -- one to three DECIMAL digits. That's what I infer from the code, however the manual is quite explicit that anything other than \n or \t will be mapped to itself, so \9 should be 9, not a tab. some parts of the code are sloppy with variable names, e.g. a clause will have "Text" and "TEXT". Now the Turbo manual is explicit (when you find it!) that case doesn't matter in predicate names, but I cannot find anything about whether case is significant in variable names. Declarations in 2.0 are more complex than they used to be, but I can find no summary of their syntax. One thing I have learned from this program is that Turbo Prolog's static typing appears to have played a significant part in shaping a very inefficient program. (That was very carefully worded.) -- Fear most of all to be in error. -- Kierkegaard, quoting Socrates.