Contact: Dafydd Gibbon
Zdatr
Zdatr is an open source standard high-speed DATR implementation in ANSI C for Unix flavours and Windows, consisting of tokeniser and interpreter modules. Zdatr is fully Gazdar & Evans' DATR RFC 2.0 conformant with extension libraries.
- Zdatr Version 1.1, (21.03.1997):
- Zdatr tokeniser help text
- Zdatr inference machine help text
- Zdatr UNIX sources with Makefile in zdatr-v1.1.tar.gz, 141292 Bytes
- PATCH v1.1-1: Modifiable Makefile for gcc, and cc under Solaris and HP-UX (25.03.1997).
- Zdatr DOS Version - follow these instructions carefully:
- Study the README.TXT instruction file.
- Download the ZD12DOS directory in tar and gzip
compressed archive format (176984 Bytes, not including
the manual).
- Download DOS gzip (39910 Bytes) and DOS tar (51294 Bytes) in order to extract the ZD12DOS directory.
- Download the zdsetup DOS batch file for
automatic extraction. If you already know about tar and gzip and know how
to use them under UNIX, you may want to install by hand.
- Basic instructions for UNIX:
- gzip -d zdatr-v1.1.tar.gz
- tar xvf zdatr-v1.1.tar
- cd zdatr
- (Print docs/zdatr1.1.ps)
- make
- zdatrtok -i examples/engcomp.dtr
- zdatrinf -i examples/engcomp.dtr.tok -d examples/engcomp.dec
- Brief description:
- Full specifications and instructions in Zdatr manual
- Functional specification by Dafydd Gibbon (based on Sussex/CL specs)
- Implementation by Christoph Schillo, U Bielefeld
- ANSI C, developed under Solaris, Linux
- Very fast
- Declarative declarations in DATR theory file
- Procedural declarations (hide, show) in separate file
- Query list file option for arbitrary query lists
- Internal command line with manual query option
- Various other goodies...
- Known bugs in zdatr-v1.1:
- The old problem of incompatibility with SunOs 4.1 still exists.
We will try to include the missing routines (`getopt' and `gettimeofday')
in future releases.
- LHS paths may not contain a newline in theory and query list files. Paths in show declarations do not mind.
- Variable declarations must have a range of at least two atoms.
- Variables in evaluable paths are not correctly instantiated.
- Corrected bugs in zdatr-v1.0:
- Notes on V1.1 bug corrections and Zdatr semantics (also included in manual).
- If there were too many `# hide' declarations of nodes which did not occur in the theory, a segmentation fault occurred.
- Variables had not been thoroughly tested and there were some known errors:
- atom-variable conflicts were not always resolved correctly,
- only one RHS occurrence was instantiated,
- Note: the use of different variable names at the same path/attribute tree
is an error but is not flagged as such.
- The atom `==' was not treated correctly.
- Non-bugs:
- There is an issue with the unclear semantics of DATR on the fly variables: does the DATR `longest path principle' always override an `atom instantiation principle'? In Zdatr it doesn't; the variables thus have a default interpretation as `any other'. See Correspondence and the manual for Version 1.1.
- Undefined paths cause an exit with an error message by default. If the command line switch -u is set, the empty value is returned. Note that atomic error messages may be emulated explicitly by inserting the equation `<>==undefined' at nodes where the empty LHS path is not defined.
- There is no known semantics for the `Z' in `Zdatr' except that it is maybe the last in the series.
Dafydd Gibbon, 18.12.1996, 19.12.96, 01.01.97, 20.03.97, 21.03.97, 25.03.97