CMU Artificial Intelligence Repository
PTN: Parse Tree Notation
lang/prolog/code/tools/ptn/
Parse Tree Notation (PTN) facilitates the encoding of language
translators which transform programs written in high level languages
with extensions (e.g. a logic language with functional programming
features) into equivalent programs in the original unextended languages
(e.g. Prolog). PTN does this by offering a small set of operations and
built-in predicates for manipulating program parse trees. More
complicated actions can be readily coded by combining PTN with Prolog
predicates.
The main PTN operation augments unification with pattern matching
capabilities based on the Definite Clause Grammar (DCG) for the
language of the program being manipulated. This allows parse tree
searches to be specified, based on the terminal and nonterminal types
of the language, without the programmer having to augment the DCG or to
write specialized tree manipulation predicates.
There are numerous example translators in the distribution, including:
- a translator for a simple functional LP language
- a translator for a LP language with modules
- a text analyzer for grades
- a translator for an if-then rule-based system
- a text analyzer for phone lists
- a translator for a LP language with attribute/name arguments
- a translator that adds proof tree arguments to programs
PTN notation in a translator is itself translated into vanilla Prolog
using a PTN translator.
Origin:
turiel.cs.mu.oz.au:/pub/ptn/
Version: 25-MAY-94
Requires: NU-Prolog
Ports: Uses mostly ISO-standard Prolog built-ins, and so should
be easy to port.
CD-ROM: Prime Time Freeware for AI, Issue 1-1
Author(s): Andrew Davison
Elizabeth Haywood
Dept. of Computer Science
University of Melbourne
Melbourne, Victoria 3052
Australia
Fax: +61 3 348 1184
Tel: +61 3 287 9172 / 9101
Telex: AA 35185
Keywords:
Authors!Davison, Authors!Haywood, DCG, PTN,
Parse Tree Notation, Prolog!Code, Prolog!Tools, Tools,
Unification
References:
Andrew Davison and Elizabeth Haywood, "Parse Tree Notation", Technical
Report 94/6, Department of Computer Science, University of Melbourne,
1994.
Last Web update on Mon Feb 13 10:34:08 1995
AI.Repository@cs.cmu.edu