Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!husc6!seismo!elsie!nih-csl!keith From: keith@nih-csl.UUCP Newsgroups: comp.lang.c++ Subject: Re: C++ Packages Message-ID: <212@nih-csl.UUCP> Date: Mon, 11-May-87 09:57:00 EDT Article-I.D.: nih-csl.212 Posted: Mon May 11 09:57:00 1987 Date-Received: Thu, 14-May-87 05:13:46 EDT References: <903@vaxb.calgary.UUCP> <909@vaxb.calgary.UUCP> Organization: NIH-CSL, Bethesda, MD Lines: 85 Summary: OOPS Class Library has a class LinkedList > Could somebody e-mail me a really good linked list package > written in C++ (something like Simula's SIMSET would be fine > but if you have anything you think is better then send it too). > > While we're on the subject, does anyone have a really good package > and base classes for manipulating trees? > The Object-Oriented Program Support (OOPS) class library is a portable collection of classes similar to those of Smalltalk-80 that has been developed using the C++ programming language under the UNIX operating system. The OOPS library includes generally useful data types such as String, Date, and Time, and most of the Smalltalk-80 collection classes such as OrderedCltn (indexed arrays), LinkedList (singly-linked lists), Set (hash tables), and Dictionary (associative arrays). Arbitrarily complex data structures comprised of OOPS and user-defined objects can be stored on disk files or moved between UNIX processes by means of an Object I/O facility. Classes Process, Scheduler, Semaphore, and SharedQueue provide multiprogramming with coroutines. Here's the hierarchy of the OOPS classes implemented in Version 1, Release 2: Object -- Root of the OOPS Class Inheritance Tree Bitset -- Set of Small Integers (something like Pascal's type SET) Class -- Class Descriptor Collection -- Abstract Class for Collection Functions Arraychar -- Byte Array String -- Character String Arrayobid -- Array of Object Pointers Bag -- Unordered Collection of Objects Set -- Unordered Collection of Non-Duplicate Objects Dictionary -- Set of Associations IdentDict -- Dictionary Keyed by Object ID SeqCltn -- Abstract Class for Ordered, Indexed Collections LinkedList -- Singly-Linked List OrderedCltn -- Ordered Collection of Object Pointers SortedCltn -- Sorted Collection of Objects Stack -- Stack of Object Pointers Date -- Calendar Date Float -- Floating Point Number Object Fraction -- (Toy) Rational Arithmetic Link -- Abstract Class for LinkedList Links Linkobid -- Link Containing Object Pointer Process -- Co-routine Process Object LookupKey -- Abstract Class for Dictionary Associations Assoc -- Association of Object Pointers AssocInt -- Association of Object Pointer with Integer Integer -- Integer Number Object Nil -- The Nil Object Point -- X-Y Coordinate Pair Random -- Uniform Random Number Generator Rectangle -- Rectangle Scheduler -- Co-routine Process Scheduler Semaphore -- Process Synchronization Class SharedQueue -- Shared Queue of Objects Time -- Time of Day Vector -- Abstract Class for Math Vector Functions BitVec ByteVec ComplexVec DoubleVec FloatVec IntVec LongVec ShortVec Current Status: The Vector classes are still experimental and are not being distributed at this time. OOPS has been ported to MASSCOMP's Real-Time UNIX, Sun-3, 4.2 BSD on the VAX, and ACIS 4.2 on the IBM RT-PC. To get a copy of the "guru-only" version of OOPS, just send me a letter on your company or university letterhead requesting the "Object-Oriented Program Support (OOPS) class library for C++" and a reel of 1/2" mag tape (a small reel will suffice). I'll return the tape with a copy of OOPS recorded on it in tar format at 1600 bpi, and I'll include a copy of the (incomplete) OOPS reference manual. -- Keith Gorlen phone: (301) 496-5363 Building 12A, Room 2017 uucp: seismo!elsie!nih-csl!keith National Institutes of Health Bethesda, MD 20892