|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 8297 (0x2069) Types: TextFile Names: »V«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦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 AUTHOR 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; ----------------------------------------------------------------------------