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.