Hello Adam, Thank you for the references! May I copy your answer to my SE post, or would you like to answer there as well under your name?
I have a binary of a game (Mankala) written in that dialect of Pascal; I might get to decompiling it to see if the branch operator was used. Thank you, Leo On Aug 26, 2017 15:30, "Adam Sampson" <a...@offog.org> wrote: Leo Broukhis <l...@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 <a...@offog.org> <http://offog.org/>
_______________________________________________ Simh mailing list Simh@trailing-edge.com http://mailman.trailing-edge.com/mailman/listinfo/simh