|
|
1.1 root 1: ReadMe file for the distribution of the Franz implementation of PEARL.
2: 8/9/83 by Joe Faletti
3:
4: PEARL is an AI programming language implemented on top of Franz Lisp
5: by Joseph Faletti and Michael Deering under the direction of Robert
6: Wilensky at the Berkeley AI Research Project (BAIR).
7:
8: DOCUMENTATION
9: For more information on PEARL's capabilities, see the following:
10:
11: [1] Deering, M., Faletti, J., and Wilensky, R. 1981. PEARL: An Efficient
12: Language for Artificial Intelligence Programming. In the Proceedings
13: of the Seventh International Joint Conference on Artificial Intelligence.
14: Vancouver, British Columbia. August, 1981.
15:
16: [2] Deering, M., Faletti, J., and Wilensky, R. 1982. The PEARL Users Manual.
17: Berkeley Electronic Research Laboratory Memorandum No.
18: UCB/ERL/M82/19. March, 1982.
19:
20: [3] Faletti, J., and Wilensky, R. 1982. The Implementation of PEARL.
21: Unpublished memo.
22:
23: The last two are included in vtroff source form in this distribution
24: but the page numbers of [2] may be off by a bit (sorry! -- if someone
25: bothers to convert the manual for automatic table of contents and
26: index generation, we'd be happy to use it!). (More below).
27:
28: The manual [2] may be printed and distributed to users with no fear
29: of copyright infringement. However, for those without suitable printing
30: facilities, a single photocopy of the manual suitable for auto-feed copying
31: for local distribution of the manual may be acquired from:
32: Berkeley AI Research Project
33: Robert Wilensky, Director
34: Computer Science Division
35: 553 Evans Hall
36: University of California, Berkeley
37: Berkeley, CA 94720
38: This version will include an addendum summarizing the changes
39: described in the file ChangeLog.
40:
41: BUG REPORTS:
42: Bug reports should be mailed to Pearl-Bugs@Berkeley by ARPANET or
43: ucbvax!pearl-bugs by USENET. PEARL is being provided as is for the
44: cost of distribution with Franz and as such carries no warranty or
45: guarantee.
46:
47: CONTENTS OF THIS DIRECTORY:
48: The files in this directory fall into two categories: A) the source and
49: make file for building a version of PEARL in Franz and B) documentation.
50:
51: A) Source and make file for building a version of PEARL in Franz.
52: These files are described briefly after the following description of
53: how to make a version of PEARL.
54:
55: To Make PEARL:
56: A version of PEARL may be made by changing to this directory and
57: executing a "make pearl". As delivered, this makes "small" which compiles
58: PEARL in two pieces, and builds "pearl.o" (which loads the two pieces
59: into a lisp) and then executes the "savepearl" function which dumps a
60: lisp called "pearl" in the current directory containing all of PEARL
61: with the PEARL top level installed and ready to start up from scratch.
62: This form is necessary on machines with less than about 2.5Mb of memory.
63: If your installation is larger, you can change "pearl" to make "big"
64: instead of "small" and change "install" to make "biginstall" instead
65: of "smallinstall". This will compile PEARL in one piece, creating
66: "pearl.o" simply by compiling the file "pearl.l" which "includes" all
67: the other source files described below.
68: Making PEARL from scratch takes about 13 minutes of CPU time, or about
69: 15 minutes of real time (times the load average) on a VAX 780.
70: To install the executable pearl in the usual object directory,
71: /usr/ucb, and the load module pearl.o in the Franz library /usr/lib/lisp,
72: execute a "make install". If you change where the library is you must
73: also change the absolute path names in the file "pearllib.l" (which is used
74: in a "make small" to make it easy to load the two halves of PEARL with a
75: single file).
76:
77: The Source for PEARL:
78: The source for PEARL is described below in the order that it is
79: included in "pearl.l".
80:
81: ucisubset.l --- PEARL was originally implemented in UCILisp. This file
82: defines those functions from UCILisp still used in PEARL.
83: franz.l --- Franz version of functions that are likely to need
84: to be redefined for a particular lisp.
85: lowlevel.l --- Lowest level functions (mostly macros) in PEARL
86: used to access the various data structures.
87: db.l --- Functions for creating databases.
88: vars.l --- Functions to handle pattern-matching variables.
89: symord.l --- Functions for creating symbols and ordinals.
90: hook.l --- Functions used by everything else to handle hooks (demons).
91: create.l --- Functions to create PEARL structures.
92: scopy.l --- Functions to copy PEARL structures.
93: path.l --- The PATH function.
94: print.l --- Functions to print PEARL objects.
95: hash.l --- Functions using hashing info in structures to insert and
96: fetch from data bases.
97: match.l --- Functions to match and/or compare structures.
98: history.l --- Functions used to implement the history mechanism in the
99: toplevel loop.
100: toplevel.l --- Variation on the Franz toplevel loop for PEARL,
101: including functions for dumping various versions of a running PEARL.
102: fix.l --- Variation on the "fixit" debugger adapted for PEARL.
103: alias.l --- Code to save various functions under alternative names.
104: inits.l --- Code which must run at load time to initialize a PEARL
105: environment.
106:
107: Documentation included in this directory:
108:
109: manual.ms --- The -ms source of the PEARL manual as published in the
110: reference [2] above. This should be vtroffable to produce a copy
111: of the PEARL manual, although the page numbers were done by hand
112: and thus may be off by a bit if anything is changed. It may also
113: be nroffed, although the page numbers will most certainly be off.
114: update.ms --- The -ms source for an update to the manual covering PEARL
115: up through Version 3.9 paginated for appending to the manual.
116: ChangeLog --- A listing in reverse date order of things changed in
117: PEARL since the manual was published.
118: template --- Visual representation of the allocation of information in
119: the hunks used by PEARL for various internal data structures.
120: implement.ms --- An unfinished memo on the implementation of PEARL.
121: Includes a simple example of how to implement forward and backward
122: chaining in PEARL and a bit more detail on the hashing mechanism.
123: ltags --- A tags file for the various function and macro definition
124: mechanisms used in PEARL (more than standard Franz).
125: ptags --- A tags file for files which contain mixed Lisp functions and
126: PEARL structure definitions.
127:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.