|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 10240 (0x2800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package Dyn, seg_028100
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
-------- SIMTEL20 Ada Software Repository Prologue ------------ -- -* -- Unit name : EXPERT -- Version : 1.0 -- Author : Alan McDonley -- : Texas Instruments -- : -- : -- DDN Address : N/A -- Copyright : (c) -- Date created : 11 Sep 85 -- Release date : 3 Dec 85 -- Last update : 3 Dec 85 -- Machine/System Compiled/Run on : VAX 11/785, VMS 4.1, DEC Ada -- -* --------------------------------------------------------------- -- -* -- Keywords : Expert System, Artificial Intelligence ----------------: -- -- Abstract : ----------------: -- EXPERT is a backward chaining or goal driven expert system. It is --based on two articles, first Sept 1981 BYTE (Duda and Gaschnig) --published the expert system in BASIC --skirting the use of recursion, second Jan/Feb 85 issue of --JOURNAL OF PASCAL,ADA, & MODULA-2 (Darrell Morgeson) --published in Modula-2 with recursion --implemented. The listing had one logic error which caused pointer --explosion on the last hypothesis in the GETRULE routine. This --implementation follows the MODULA-2 design completely and --was not designed from the ground up in Ada. Many improvements would --be possible if more time permitted my working on this. -- -* ------------------ Revision history --------------------------- -- -* -- DATE VERSION\x09AUTHOR HISTORY -- 12/3/85 1.0 Alan McDonley Initial Release -- -* ------------------ Distribution and Copyright ----------------- -- -* -- This prologue must be included in all copies of this software. -- -- This software is released to the Ada community. -- This software is released to the Public Domain (note: -- software released to the Public Domain is not subject -- to copyright protection). -- Restrictions on use or distribution: NONE -- -* ------------------ Disclaimer --------------------------------- -- -* -- This software and its documentation are provided "AS IS" and -- without any expressed or implied warranties whatsoever. -- No warranties as to performance, merchantability, or fitness -- for a particular purpose exist. -- -- Because of the diversity of conditions and hardware under -- which this software may be used, no warranty of fitness for -- a particular purpose is offered. The user is advised to -- test the software thoroughly before relying on it. The user -- must assume the entire risk and liability of using this -- software. -- -- In no event shall any person or organization of people be -- held responsible for any direct, indirect, consequential -- or inconsequential damages or lost profits. -- -* -------------------END-PROLOGUE-------------------------------- with Text_Io; use Text_Io; package Dyn is ------------------------------------------------------------------------------ -- This is a package of several string manipulation functions based on -- -- a built-in dynamic string type DYN_STRING. It is an adaptation and -- -- extension of the package proposed by Sylvan Rubin of Ford Aerospace and -- -- Communications Corporation in the Nov/Dec 1984 issue of the Journal of -- -- Pascal, Ada and Modula-2. Some new functions have been added, the -- -- SUBSTRING function has been modified to permit it to return the right -- -- part of a string if the third parameter is permitted to default, and -- -- much of the body code has been rewritten. -- ------------------------------------------------------------------------------ -- R.G. Cleaveland 07 December 1984: -- -- Implementation initially with the Telesoft Ada version -- -- This required definition of the DYN_STRING type without use of a -- -- discriminant; an arbitrary maximum string length was chosen. This -- -- should be changed when an improved compiler is available. -- ------------------------------------------------------------------------------ -- Richard Powers 03 January 1985: -- -- changed to be used with a real compiler. -- -- Some of the routines removed by my whim. -- ------------------------------------------------------------------------------ -- Richard Powers 26 January 1985: -- Added UPPER_CASE function ------------------------------------------------------------------------------ -- Alan McDonley 28 AUG 1985; -- Added overload for GET_LINE, PUT, OPEN ------------------------------------------------------------------------------ type Dyn_String is private; String_Too_Short : exception; function D_String (Char : Character) return Dyn_String; -- Creates a one-byte dynamic string of contents CHAR. function D_String (Str : String) return Dyn_String; -- Creates a dynamic string of contents STR. function D_String (Int : in Integer) return Dyn_String; -- Creates a dynamic string of contents INT. -- The following four functions convert from dynamic strings to the -- desired representation: function Char (Dstr : Dyn_String) return Character; function Str (Dstr : Dyn_String) return String; function Int (Dstr : Dyn_String) return Integer; function Flt (Dstr : Dyn_String) return Float; function Length (Dstr : Dyn_String) return Natural; function "<" (Ds1, Ds2 : Dyn_String) return Boolean; function "&" (Ds1, Ds2 : Dyn_String) return Dyn_String; function Substring (Dstr : Dyn_String; -- Returns a subpart of this string Start : Natural; -- starting at this position Length : Natural := 0) -- and of this length. return Dyn_String; -- if LENGTH is zero or not specified, the remainder of the -- string is returned (eg the "RIGHT" function). function Index (Source_String, --If this string contains Pattern_String : Dyn_String; --this string starting at or AFTER Start_Pos : Integer) --this position, the position of return Integer; --such start is returned. -- If the string lengths prohibit the search -1 is returned. -- If no match was found, 0 is returned. -- (This is like the INSTR function of BASIC). function Rindex (Source_String, --If this string contains Pattern_String : Dyn_String; --this string starting at or BEFORE Start_Pos : Integer) --this position, the position of return Integer; --such start is returned. -- If the string lengths prohibit the search -1 is returned. -- If no match was found, 0 is returned. function Upper_Case (Strg : in Dyn.Dyn_String) return String; -- Return the input string in upper case procedure Get_Line (Filename : in Text_Io.File_Type; Item : out Dyn.Dyn_String; Last : out Natural); procedure Get_Line (Item : out Dyn.Dyn_String; Last : out Natural); procedure Put (Filename : in Text_Io.File_Type; Item : in Dyn.Dyn_String); procedure Put (Item : in Dyn.Dyn_String); procedure Open (Filename : in out Text_Io.File_Type; Mode : in Text_Io.File_Mode; Filenm : in Dyn_String); private type String_Contents (Size : Natural := 0) is record Data : String (1 .. Size); end record; type Dyn_String is access String_Contents; end Dyn; ----------------------------------------------------------------------------
nblk1=9 nid=0 hdr6=12 [0x00] rec0=1d rec1=00 rec2=01 rec3=006 [0x01] rec0=10 rec1=00 rec2=02 rec3=010 [0x02] rec0=13 rec1=00 rec2=03 rec3=012 [0x03] rec0=14 rec1=00 rec2=04 rec3=024 [0x04] rec0=0c rec1=00 rec2=05 rec3=07e [0x05] rec0=19 rec1=00 rec2=06 rec3=062 [0x06] rec0=14 rec1=00 rec2=07 rec3=056 [0x07] rec0=17 rec1=00 rec2=08 rec3=078 [0x08] rec0=15 rec1=00 rec2=09 rec3=000 tail 0x21722212e83be7c456cc7 0x42a00088462060003