[Simh] An obscure dialect of Pascal: MULTICS roots?
Adam Sampson
ats at offog.org
Sat Aug 26 18:30:32 EDT 2017
Leo Broukhis <leob at mailcom.com> writes:
> I'm specifically interested in the branch/back feature. What
> theoretical paper does it come from?
I think it's fairly likely that the designers of your 1979 dialect of
Pascal were thinking of this as a feature to support (what was then
called) "backtrack programming" for AI-like applications, rather than as
an exception handling mechanism...
There were several programming languages experimenting with approaches
to backtracking in the mid-late 70s, Prolog probably being the
best-known result ("branch" is equivalent to a Prolog predicate with
multiple rules, where failure inside one rule causes control flow to
backtrack to the next rule). Your branch/back construct would be pretty
handy if you were trying to write a tree search algorithm with pruning
(e.g. a classic board game AI), or a backtracking parser.
Here's a 1974 survey which sketches the backtracking idea (p157) and
describes some early implementations:
http://dl.acm.org/citation.cfm?id=356632
This 1977 paper gives a denotational semantics for backtracking, and is
fairly widely cited by later work:
https://link.springer.com/article/10.1007/BF00289245
(Note in particular that it calls its equivalent of "branch" the
"alternative" operator -- which might explain your "exit on ALT"
message?)
This 1979 paper takes the idea and generalises it to work with
coroutines (using Pascal for examples, although with different syntax):
http://dl.acm.org/citation.cfm?id=357062.357063
Thanks,
--
Adam Sampson <ats at offog.org> <http://offog.org/>
More information about the Simh
mailing list