Path: lrz-muenchen.de!uni-regensburg.de!news.uni-stuttgart.de!news.ruhr-uni-bochum.de!news.dfn.de!scsing.switch.ch!swidir.switch.ch!in2p3.fr!univ-lyon1.fr!jussieu.fr!math.ohio-state.edu!howland.reston.ans.net!swrinde!gatech2!news.mathworks.com!news.kei.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv From: nikki@trmphrst.demon.co.uk (Nikki Locke) Newsgroups: comp.lang.c++,comp.answers,news.answers Subject: Available C++ libraries FAQ Supersedes: Followup-To: poster Date: 7 Dec 1995 19:06:50 GMT Organization: Trumphurst Ltd. Lines: 3542 Approved: news-answers-request@MIT.Edu Expires: 20 Jan 1996 19:04:05 GMT Message-ID: Reply-To: cpplibs@trmphrst.demon.co.uk NNTP-Posting-Host: bloom-picayune.mit.edu Summary: Contains a list of available C++ libraries, both PD and commercial. X-Last-Updated: 1995/10/09 X-Mailer: cppnews $Revision: 1.43 $ Originator: faqserv@bloom-picayune.MIT.EDU Xref: lrz-muenchen.de comp.lang.c++:146686 comp.answers:15300 news.answers:58718 Archive-name: C++-faq/libraries Comp-lang-c++-archive-name: C++-faq/libraries --------------------------------------------------------- CHANGES SINCE LAST SUBMISSION (August 23 1995) Hans Boehms free Garbage Collector added. C++SIM entry updated. Arjuna 3.2 entry added. ILOG addresses changed. ZINC entry updated. C++/Views entry updated. Objective Edge URL added. ViewKit ObjectPak entry added. NeoAccess Developer's Toolkit entry added. GreenLeaf entries expanded. --------------------------------------------------------- Here is the latest draft of a list of available C++ libraries I am compiling. I intend to post this once a month or so (unless there are any complaints). Sorry about the long gap since the last posting. It is also submited to news.answers, and is available for public ftp (along with all the other Usenet FAQ lists) at rtfm.mit.edu (18.70.0.209), in pub/usenet-by-group/comp.lang.c++/C++_FAQ/libraries. Rtfm.mit.edu also has a mail server - send a mail message containing "usenet-by-group/comp.answers/C++-faq/libraries" to mail-server@rtfm.mit.edu. If you want to find out more about the mail server, send a message to it containing "help". Marshall Cline's C++ FAQ is also available from rtfm - the files are called _posting_#1_4, _posting_#2_4, _posting_#3_4 and _posting_#4_4, and they are in the same directory. I have not included a credits list, because it would be nearly as large as the rest of the file! Many thanks to all those who contributed, and I hope you won't be offended that I haven't mentioned you. Entries are in the order I received them, i.e. totally random. Some future version might have the entries in alphabetical order, but don't hold your breath :-) If your library isn't mentioned, or you wish to update your entry in this list, feel free to mail me the new entry. Please note that entries will be restricted to a couple of paragraphs - if you send me a 100k text file giving minute details, I will have to summarise it. It is much easier for me if you just send me an entry which is the right size to start with. Suggested points to include in your entry are ... Name of package. Brief summary of purpose. Short list of features. Supported compilers, operating systems etc. Licence restrictions. Vendors may care to give an idea of prices. E-mail addresses for more details. Ftp site(s). Postal address/telephone/FAX numbers. Please mail comments, criticisms, additions and amendments to me at cpplibs@trmphrst.demon.co.uk. However, please DO NOT mail me with requests for assistance in finding files mentioned in the list. I am unable to provide such a service. Definite information such as "file xyz is no longer at site xxx" IS welcome - even better if you can tell me an alternative site where it can be found. If you are new to the Internet, try to find out about tools such as archie, whois, www, gopher etc. I recommend the newsgroups "news.announce.newusers" and "news.answers" for starters. *** *** *** *** *** NOTE TO VENDORS *** *** *** *** *** This FAQ contains details of both free and commercial libraries. Vendors who have sent me details of their libraries for inclusion in the FAQ have been pleasantly surprised by the level of interest generated. Please remember, I only allow 2 or 3 paragraphs describing the product, and no advertising hype ! Libraries available via ftp ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ------------------------------------------------------------------- Arjuna 3.2 - a suite of C++ classes and libraries for writing fault- tolerant (distributed) applications. Arjuna provides a set of tools (C++ classes and libraries) for writing fault-tolerant distributed applications using persistent objects, atomic actions, and replication. Included in the system is a C++ stub generator (and associated RPC mechanism) which takes a C++ class definition for an object and generates client and server stub code. Using these stub classes occurs in a relatively transparent manner: the differences between a local and distributed application are typically only a single line. The system has been ported to a wide range of architectures and C++ compilers, both by the authors and other users, and has been in use for several years. A comprehensive manual is available with the distribution. Available for research, evaluation, or teaching only. (Commercial usage is possible: contact the authors). ftp from arjuna.ncl.ac.uk or http://arjuna.ncl.ac.uk --------------------------------------------------------- Hans Boehms free Garbage Collector implements much of the Detlefs/Ellis C++ GC proposal. This is a garbage collecting storage allocator that is intended to be used as a plug-in replacement for C's malloc. Since the collector does not require pointers to be tagged, it does not attempt to ensure that all inaccessible storage is reclaimed. However, in our experience, it is typically more successful at reclaiming unused memory than most C programs using explicit deallocation. Unlike manually introduced leaks, the amount of unreclaimed memory typically stays bounded. The library includes a header file "gc_cpp.h", to interface with C++, replacing the standard "new" and "delete" for selected classes. The library has been through many revisions and is supported on many machines. (Some assembly code is required to check for references from e.g. CPU registers.) For details of the proposal, see "Safe, Efficient Garbage Collection for C++", by John R. Elis and David L. Detlefs (ftp.parc.xerox.com:/pub/ellis/gc). It is available from: ftp.parc.xerox.com:/pub/gc --------------------------------------------------------- valarray (versions 1.0, 1.1, 2.0) [ Author is David Vandevoorde ] Attempts at providing the functionality described in Chapter 26 of the draft C++ standard. None of the releases stick perfectly to the specifications of the proposed standard. Version 2.0 is a very deliberate step away from the draft as released in April 1995 for public comments in the USA: it is used as a proof of concept to support a revision of the original specs. Some characteristics: . heavy usage of templates and their automatic instantiation; . avoidance of temporary arrays in array expressions; . production of fast compact loops, but some overhead before entering those loops. Release 2.0 has been lightly tested with the following compilers: . various EDG based compilers (Apogee CC 3.0 on Sun, NCC on SGI and a few experimental compilers on other platforms) . Borland C++ 4.5 . Sun CC 4.x . Sun CC 3.x (cfront-based) . CRI C++ on Cray (cfront based) . IBM xlC It will probably not work with g++ 2.7.0 or earlier. Free usage, copy and distribution if not commercial. Downloadable from: ftp://ftp.cs.rpi.edu/pub/vandevod/Valarray Contact: David Vandevoorde (vandevod@cs.rpi.edu) Department of Computer Science Rensselaer Polytechnic Institute Troy, NY12180 USA --------------------------------------------------------- XRLCAD -- CXrL CAD toolset This package contains a C++ class library to manipulate Structure (as in Calma/CIF) hierarchies. There is also loaders for CIF and Calma, as well as output drivers for these formats. A bunch of demo programs are included which I wrote when I was testing the library, and these programs turned out be quite useful tools. The library is still in its infancy, but it's reasonably solid; in a few months I'll take another look at it and probably overhaul it. I've successfully built a recent snapshot on the following platforms: sparc-sunos-4.1.3: SC2.0.1, Cfront-3.0.1, GCC-2.6.3 sparc-sunos-5: SC2.0.1, GCC-2.6.3 rs6000-aix-3.2: Cfront-3.0.1, GCC-2.6.3 decstation-ultrix4.2: Cfront-3.0.1, GCC-2.6.3 (and I think it worked!) hppa1.1-hpux9.05: gcc-2.6.3 This code is copyrighted (read: NOT in the public domain), so please respect the copyrights when modifying/redistributing this code. If you make modifications/bug-fixes, please let me know so I can incorporate it into the main release. WARRANTY: None whatsoever. Use at your own risk. AUTHOR: Mumit Khan FTP SITE: http://www.xraylith.wisc.edu/~khan/software/xrlcad/xrlcad.html Mumit Khan khan@xraylith.wisc.edu Research Staff Phone: +1 608 265 6075 Center for X-ray Lithography FAX: +1 608 265 3811 University of Wisconsin-Madison http://www.xraylith.wisc.edu/~khan/ --------------------------------------------------------- Matthew's GAlib: A C++ Genetic Algorithm Library Copyright 1994-5 Massachusetts Institute of Technology mbwall@mit.edu 7jul95 GAlib is a C++ library that contains a set of genetic algorithm objects. With GAlib you can add genetic algorithm optimization techniques to your program using any data representation and many different genetic algorithm operators. The library includes genomes based upon binary string, array, tree, and list data structures, and you can create your own genomes by simply deriving a new class from the base genome and any data structure that you may be using already. Many scaling, selection, termination, initialization, mutation, and crossover methods are included in the library, and you can override any of the defaults with operators of your own design. Free for non-profit use. GAlib has been used on the following systems: SGI IRIX 4.0.x Cfront SGI IRIX 5.x DCC 1.0, g++ 2.6.8, 2.7.0 IBM RSAIX 3.2 g++ 2.6.8, 2.7.0 DEC MIPS ultrix 4.2 g++ 2.6.8, 2.7.0 SUN SOLARIS 5.3 g++ 2.6.8, 2.7.0 HP-UX g++ MacOS MetroWerks CodeWarrior 5 MacOS Symantec THINK C++ 7.0 DOS/Windows Borland Turbo C++ 3.0 ftp://lancet.mit.edu/pub/ga/ http://lancet.mit.edu/ga/ --------------------------------------------------------- SIMEX - Provides classes that help a user develop discrete-event simulation models, with an emphasis on epidemiology and biology. Classes for random number generation, event and process management, user interface (commandline arguments, TTY, or Tcl/TK), aggregate statistics, basic data structures (list, strings, weighted ordered sets). Many examples. Known to work with g++ 2.6.x SunOS. Some problems with HP. Freely available via ftp. Copyrighted. email: michael@simvax.labmed.umn.edu jan@simvax.labmed.umn.edu ftp://ftp.nmsr.labmed.umn.edu http://www.nmsr.labmed.umn.edu Box 511 UMHC Div of Health Computer Sciences U Minn MPLS, MN 55455 phone: (612) 625-3241 (Jan Marie Lundgren) fax: (612) 625-7166 --------------------------------------------------------- FFTPACK++ VERSION: 1.0 FFT_Pack is a C++ wrapper for FFTPACK complex routines using LAPACK++ Matrix and Vector classes. FFTPACK routines were converted to C using f2c and also modified to use double precision complex using -r8 to f2c. Most of this code was lifted directly from GNU OCTAVE v1.1.0, hence the copyright notice at the top. the forward FFT takes you to freq domain (ala direction == -1), and backward the other way. Passing LaVectorComplex/Double or LaGenMatComplex/Double with one dimension set to 1 will implicitly perform 1D FFT on the data. The members of the FFT_Pack class are declared static, since they really need no private member storage. There are two types of transform routines: ones that return a new complex matrix and the ones that change the matrix in place. For example: LaGenMatComplex cmat; // ... // initialize cmat. // ... // the following computes the forward FFT of Matrix cmat and returns // a new matrix which then initializes a new matrix cmat2. LaGenMatComplex cmat2 = FFT_Pack::forward(cmat); // The following simply overwrites itself by reinitializing with the // anonymous matrix returned by FFT_Pack::forward. cmat = FFT_Pack::forward(cmat); // in-place example. In case of large matrices, it is best to try to // optimize memory usage using IP (in-place) routines. Note that you // can only use Complex matrices in this case. FFT_Pack::forward_IP(cmat); Prerequites/Installation: compiler: you'd need a C++ compiler (I've used both cfront 3.0.1 and gcc-2.6.3) on a variety of platforms. LaMatrix++: You'd need LaMatrix++ class library from LAPACK++. Check out ftp://netlib.att.com/netlib/c++ if you don't have it. FFTPACK: you can use the f2c'd fftpack routines I've provided with the package, or you can use the original FORTRAN version from netlib. F2C: If your system does not have F77 compiler environment installed, then you would need libf2c.a (ie., libF77.a + libI77.a), also available from netlib. LICENSE AND COPYRIGHT: FFTPACK++ is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. FFTPACK++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file COPYING for more details. SITE: http://www.xraylith.wisc.edu/~khan/software/fftpack/ AUTHOR: Mumit Khan Center for X-ray Lithography University of Wisconsin - Madison Voice: 608 265 6075 FAX: 608 265 3811 --------------------------------------------------------- Types 1.0 Types is a Shareware library used to support the creation of reusable software components in C++. Full source code and documentation and examples are included. Types provides:Garbage Collector,recursive data estructures,encode and decode of polymorfic objects,encode and decoding to and from files or memory using external or local data representation, exceptions,... Types also include some classes implemented using types a double linked list, stack, btree, storage class, string and others. You can use and XDR representation for encode and decode objects this feature enable your data to be ported to other plataforms. This version is for Borland C++ 4.0 but it can be ported to other C++ compilers that fully implement templates and exceptions. E-mail: malpica@mailer.main.conacyt.mx ftp://oak.oakland.edu/SimTel/msdos/cpluspls/typesc10.zip --------------------------------------------------------- Diffpack is a large and comprehensive C++ package aiming at quick prototyping of simulators solving partial differential equations by FEM. Under development at SINTEF Applied Mathematics and the University of Oslo, Norway. Version 1.0 of Diffpack is released for free non-commerical use and is distributed by netlib. For further details refer to the Diffpack WWW home page http://www.oslo.sintef.no/avd/33/3340/diffpack --------------------------------------------------------- YACL - Yet Another Class Library YACL includes data type classes (String, Date, TimeOfDay), container classes (Sequence, Set, Map, Tree, BTree), data storage and retrieval classes, and GUI classes based on the Model-View-Controller paradigm. The data type, container and storage classes do not rely on any particular platform, and have been tested under DOS/Windows, OS/2 and several flavors of Unix. The GUI classes are available under Microsoft Windows and X windows with the Motif toolkit. ftp from ftp.cs.scarolina.edu (129.252.131.11) in directory /pub/sridhar Contact: M. A. Sridhar Department of Computer Science University of South Carolina Columbia, SC 29208 USA e-mail: sridhar@usceast.cs.scarolina.edu Phone: (803) 777-2427 Fax: (803) 777-3767 --------------------------------------------------------- CBMT - Collaborative BioMolecular Tools CBMT provides a number of easy-to-use fundamental classes for biologists, chemists and crystallographers. They include: Molecular Structure, Sequence, Standard Formats (PDB, CIF, GCG, etc), Geometry, Statistics, TextParsing, and a single container class (a dynamic Array). All documentation is in HTML, and member functions have *.c examples. I hope that the system can be extended as a communal effort and am piloting this idea in the C++ course at the Globewide Network Academy (http://info.desy.de/gna/html/cc/index.html) Version 1.3 will be posted shortly including an experimental script language (generated automatically from the *.h files) providing support for persistent objects manipulatable by other languages such as tcl or csh. Free, but not resellable. email: Peter Murray-Rust (pmr1716@ggr.co.uk or mbglx@seqnet.dl.ac.uk) Extensive WWW documentation: http://www.dl.ac.uk/CBMT/HOME.html ftp from s-ind2.dl.ac.uk in /cbmt/democ12.tar.Z --------------------------------------------------------- ISC366.ZIP -- Interrupt Service Class (v. 3.66) Allows hooking of interrupts (software and hardware) into classes, comes with classes for staying resident, for serial communication (interrupt driven), and like-wise classes. Comes with full source code! Is DOS specific (current version works only under BC++ 3.0 and higher). This class in PD, current version for registered users is version 4. ftp from oak.oakland.edu in /pub/msdos/cplusplus or /pub/msdos/cluspls ? --------------------------------------------------------- Objtran and Objdce Objtran is a set of C++ class libraries that provide a higher-level abstraction for programmers developing applications using OSF's DCE and Transarc's Encina. Objtran actually consists of two separate libraries -- Objdce and Objtran. Objdce makes it easier to write DCE applications by abstracting some of the more complex aspects of DCE. A class is included that can manage an RPC server, interacting with the DCE Name Service and Security Service as desired. Another class manages a client's binding to a server and encapsulates Name Service lookups. Other classes allow the programmer to use threads and various forms of mutual-exclusion locks, report errors consistently, utilize Access Control Lists, handle timestamps from the DCE Time Service, and perform UUID manipulation. Objtran is built on top of Objdce, and adds support for the Encina distributed transaction service. It is intended to be used with C++ programs instead of the "Transactional C" macro package. It fully encapsulates the Encina TRAN and TRPC facilities with a few easy-to-use classes. It also provides an efficient recovery service for proper control of distributed transactions, and has support for the TM/XA service, allowing interoperability with XA-compliant databases. Support for the Encina Monitor is being implemented so programs may, with very few code changes, use either the smaller and more efficient bare Objtran environment or the more sophisticated Monitor. This software is Copyright 1993-1994 by Citibank, N.A. Permission is granted to use, copy, modify and distribute the software and its documentation without fee. The software is distributed with no warranty of any kind. mail: objtran-comment@fig.citib.com ftp from wilma.cs.brown.edu in /pub/Objtran.tar.Z --------------------------------------------------------- RTTI library Till RTTI becomes a part of regular compilers (BC 4.0 is the sole implementor I think) these RTTI libraries provide an excellent tool for the same purpose. The library is claimed to be portable. No licence restrictions. Arindam Banerji (219)-631-5273 (Voice) (219)-631-9260 (FAX) mail: axb@defender.dcrl.nd.edu axb@cse.nd.edu ftp from invaders.dcrl.nd.edu in /pub/software/rtti.tar.Z --------------------------------------------------------- Aisearch - a package to make writing problem solving programs easier. Offers the programmer a set of search algorithms that may be used to solve all kind of different problems. The following search algorithms have been implemented: - depth-first tree and graph search. - breadth-first tree and graph search. - uniform-cost tree and graph search. - best-first search. - bidirectional depth-first tree and graph search. - bidirectional breadth-first tree and graph search. - AND/OR depth tree search. - AND/OR breadth tree search. Although this package is meant as a tool for developing problem solving software it is not meant exclusively for programmers that are familiar with the concept of problem representation and search techniques. The document accompanying this package first describes (though condensed) the theory of problem solving in AI and next explains how the search class library must be used. Furthermore, as the source code is richly commented and as also some demo programs are included the package should also prove useful to people that want to get acquainted with the subject. ftp from obelix.icce.rug.nl in /pub/peter/aisearch.zip or /pub/peter/aisearch.tar.Z --------------------------------------------------------- DOSTmUit - DOS Text Mode User Interface Toolkit Enables C++ programmers to add a CUA-compliant user interface to their DOS programs without getting involved in screen coordinates and other messy details. The programmer merely states which interface objects are required, and how they are to be placed on the screen in relation to each other. Those familiar with the ET++ toolkit for the X windows system under Unix will get the general idea. Includes a class documentation facility (DocClass) which will generate a large text file from the source code giving details of every class, structure, enum and extern in the toolkit. This program will also work on your own C++ source code. Source is provided. Supported compilers are Zortech C++ 3.0r4, Borland C++ 3.1. The toolkit is free for non-commercial use. Commercial licences may be obtained from the author. mail: uit@trmphrst.demon.co.uk ftp from ftp.demon.co.uk[158.152.1.65] in pub/trumphurst/dosuit??.zip Also uitbor??.zip for Borland C++ users --------------------------------------------------------- Lapack++ Description : C++ version of some of lapack fortran code. Author : J. Dongarra, R. Pozo, D. Walker Version : 0.9 beta Comments : Developmental version of proposed C++ version of lapack. Contains blas.h++ etc, but needs Fortran library to link. Documents : Overview paper (9 pages postscript), release notes (7 page ps) ftp from netlib2.cs.utk.edu in lapack++/* --------------------------------------------------------- MatClass Description : a C++ class for numerical computation Author : Chris Birchenhall (chris.birchenhall@mailhost.mcc.ac.uk} Comments : Very complete. * Offers a general purpose dense, real matrix class * Has a family of decomposition classes based on LU, Cholesky, Householder QR and SVD * Has a family of OLS regression classes based on above decompositons * A family of special function classes * Random number class * Has a simplified I/O structure Documents : Very thorough tex manual, with discussion of design philosophy. Currently the manual does not cover all the features of the I/O. ftp from ftp.mcc.ac.uk pub/matclass/pc and pub/matclass/unix --------------------------------------------------------- Blas.cpp.shar.z Author : Damian McGuckin (damianm@eram.esi.com.au) Description : a BLAS in C++ ftp from usc.edu in pub/C-numanal --------------------------------------------------------- Texas Persistant Store Paul R. Wilson and Sheetal V. Kakkad Object-Oriented Programming Systems research group (oops@cs.utexas.edu) Computer Sciences Dept., University of Texas at Austin Texas is a free persistent store that can be used with standard C++ compilers, and works efficiently with very little modification to most C++ programs. It runs on several varieties of UNIX and should be very easy to port to most modern operating systems, such as OS/2, Windows NT, Mach, Windows 4.0, etc. (If things we hear are correct, Linux will provide the necessary virtual memory features soon, too, and Texas will be ported about fifteen minutes later. :-) Texas uses "pointer swizzling at page fault time", an address translation techique that converts pointers from an abstract format to actual virtual memory addresses when pages are first touched and brought into memory. (A similar technique, invented independently, is used in the market-leading persistent store/OODB, ObjectStore from Object Design Inc.) This allows Texas to be highly portable, avoiding any assumptions about where a page of data will be an a process' virtual memory address space; it can also support very large addresses spaces efficiently on stock 32-bit hardware. (It could also be used to efficiently provide shared address spaces across networked heterogenous machines with different hardware address sizes, e.g., across 32- and 64-bit machines.) mailing list : oops@cs.utexas.edu ftp from cs.utexas.edu in pub/garbage/texas More info in pub/garbage/swizz.ps and pub/garbage/texaspstore.ps --------------------------------------------------------- wxWindows is a C++ class library for building Motif, Open Look, Windows 3.1 and NT applications from the same source code. One simple API is provided for all platforms. wxWindows supports objects such as frames, subwindows, buttons, list boxes, icons, and bitmaps, and supports drawing into canvases, PostScript files, Windows printers, metafiles and bitmaps using the same drawing primitives. wxWindows provides a hypertext help facility, and a utility for maintaining documentation in printed and three hypertext formats. It also provides an interprocess communication API based on DDE, that works under both Windows 3.1 and UNIX. Documentation is available in PostScript, RTF, Windows Help, wxHelp and HTML formats. Julian Smart Artificial Intelligence Applications Institute University of Edinburgh 80 South Bridge Edinburgh Scotland EH1 1HN EMAIL: J.Smart@ed.ac.uk TEL: 031 650 2746 ftp from ftp.aiai.ed.ac.uk in directory pub/packages/wxwin --------------------------------------------------------- CNCL Universal classes: * Tree structured class hierarchy, similar to NIHCL. * Classes for general purposes such as arrays, linked lists, strings. * Interface classes for UNIX system calls: pipes, select. Simulation: * Event driven simulation. * Statistical evaluation. * Random number generators and distributions. Fuzzy logic: * Fuzzy sets, fuzzy variables, fuzzy rules and inference engine for building fuzzy controllers and expert systems. EZD: * Interface classes for DEC's ezd graphics server. This version of CNCL is known to compile and run on the following systems: * SUN SPARCstation, SUNOS 4.1.3, GNU g++ 2.3.3/2.4.5, libg++ 2.3/2.4 * SUN 3/60, SUNOS 4.1.3, GNU g++ 2.3.3/2.4.5, libg++ 2.3/2.4 * LINUX 0.99.13, GNU g++ 2.4.5, libc 4.4.1, libc 4.4.4 + libg++ 2.4 Distributed under the GNU Library General Public License. Communication Networks Aachen University of Technology D-52056 Aachen Germany Email: mj@dfv.rwth-aachen.de (Martin Junius) ftp from ftp.dfv.rwth-aachen.de (137.226.4.111) in directory pub/CNCL --------------------------------------------------------- RTTI implementation ftp from invaders.dcrl.nd.edu (129.74.18.54) in /pub/software/rtti.tar.Z Arindam Banerji axb@cse.nd.edu 384 FitzPatrick Hall Dept. of Computer Science & Engg. University of Notre Dame Notre Dame, IN 46556 (219)-631-5273 (219)-631-5772 --------------------------------------------------------- Lily (LIsp LibrarY) C++ class library which gives C++ programmers the capability to write LISP-style code. I think Lily will be useful in academia for instructors who want to teach artificial intelligence techniques with C++. The garbage collection mechanism employed by Lily is slow which will make it unattractive for commercial use. Documentation is minimal. The "Lily User's Guide" (in file lily.txt) provides a good overview of the architecture of Lily -- the document is unfinished. All of the example programs are from Winston's book "LISP Second Edition" so you will be much better off if you have a copy. Steele's "Common LISP" describes the behavior of the LISP functions. Lily uses the GNU Library General Public License. Lily works well with GNU g++ version 2.4.5 (and probably earlier releases). Lily works with Turbo C++ for Windows but not with Turbo C++ (though the current version hasn't been tested with Turbo C++ for Windows). Lily does *not* work with AT&T's cfront because cfront does not handle temporary objects very well. ftp from sunsite.unc.edu (152.2.22.81) in /pub/packages/development/libraries/lily-0.1.tar.gz --------------------------------------------------------- DiamondBase is a library of C++ routines and utilities that allow you to add Relational Database functionality to your C++ programs. It is written entirely in C++, and great pains have been taken to ensure it compiles under a variety of compilers including gcc, cfront and Borland's C++ compiler for OS/2. It runs on a wide variety of Unix platforms and OS/2. There are no plans to support DOS or Windows at the moment. It comes with a 47 page manual. Contact: darrenp@dibbler.cs.monash.edu.au kevinl@bruce.cs.monash.edu.au davison@molly.cs.monash.edu.au ftp from pippin.cs.monash.edu.au in pub/export/? --------------------------------------------------------- GINA++ - An O-O application framework for C++, X11R5, and OSF/Motif Requires: AT&T 3.0 based C++ compiler (Sun C++ 2.0.1), X11R5, Motif 1.2 Platforms supported: Sun Sparc, HP GINA++ (The Generic INteractive Application for C++) is an object- oriented application framework that facilitates the development of applications with a graphical user interface. It is written in C++ and uses OSF/Motif and X for the user interface parts. GINA++ comes as a library of C++ classes, 10 small to medium demo applications, and it is fully documented. Components of GINA++ are: (1) A C++ encapsulation of OSF/Motif providing easy-to-use mechanisms for deriving new widget classes completely in C++, (2) Support for object-oriented graphics (rectangles, arrows, circle, etc), (3) An unlimited undo/redo history mechanism, (4) supporting classes for data structures (list, arrays, etc), run-time type information, and a notification mechanism. The classes of GINA++ constitute an executable program - the generic application - which possesses the basic functionality and the user interface components common to all interactive graphical applications, but lacks any application-specific behavior. The predefined functionality and behavior is inherited by deriving subclasses from the existing GINA++ classes. Application specific behavior is implemented by adding new classes and member functions. Differences to the standard application are coded by refining virtual member functions inherited from GINA++. Author: Andreas Baecker (baecker@gmd.de), GMD, P.O. Box 1316, D-53731 Sankt Augustin ftp from ftp.gmd.de: in /gmd/ginaplus or ftp.x.org: in /contrib --------------------------------------------------------- Motif++ - Ronald van Loon. A wrapper-library, that encapsulates Motif widgets in C++ classes. All resources of these Widgets can now be set through member-functions, while objects can be used in callback-functions. The July 93 release offers: - Easy configuration (even for non-imake-gurus) - Full support for X11R4 as well as X11R5 - Full support for Motif 1.1 and Motif 1.2 (including Drag and Drop) - Support for Xbae widgetset - Support for the xpm library - Percentage widgets - Generic Widget - Support for WCL Table Widget - A library for easy manipulation of Visuals - A library that reads PBMPLUS files, as well as providing an extension to 3D of the format. - Lots of demos and testfiles (even somewhat useful programs) - An article I wrote on the usage of Motif, X and C++, previously posted on Usenet. - all filenames smaller than 14 characters Requires: X11R4 or any later version Motif 1.1 or any later version C++ compiler, compatible with cfront 2.0 or later imake a bourne shell (sh, bash, ksh ...) that supports shellfunctions. sed mail "rvloon@motif.hacktic.nl". Tel: +31 33 758 293 (if desparate !) mailing list : motif++@motif.hacktic.nl subscriptions : motif++-request@motif.hacktic.nl ftp from decuac.dec.com: in /pub/X11/motif++.28.jul.93.tar.gz or from nrcnet0.nrc.ca (132.246.160.2): in /pub/motif++/motif++.28.jul.93.tar.gz or from ftp.wg.omron.co.jp: in /pub/X11/misc/MOTIF.AND.WIDGETS/Motif++.tar.Z or from src.doc.ic.ac.uk: in /packages/motif++/motif++.28.jul.93.tar.gz --------------------------------------------------------- OATH (Object-oriented Abstract Type Hierarchy) was designed as an experiment in increasing object-oriented reuse. It has a fairly high learning curve, but potentially higher gains if you are looking for a more flexible and robust abstraction. It is completely unsupported. ftp from csc.ti.com (192.94.94.1) in pub/oath.tar.Z --------------------------------------------------------- NIHCL (National Institute of Health's C++ Library) is essentially a mapping of part of Smalltalk's library into C++. It lies somewhere between OATH and COOL. It is a little better supported and there is a textbook by the author, Keith Gorlen, that is fairly good documentation. However, the Smalltalk hierarchy is not completely consistent (IMO) with the C++ strong typing nature. It is weakly supported. ftp from alw.nih.gov (198.231.128.251) in pub/nihcl.tar.Z --------------------------------------------------------- libg++ (GNU's C++ library) is probably only relevant if you are using g++; and if so, you already know about it. It does have some good implementations of bignum's and of regular expressions and strings. ftp from aeneas.mit.edu (18.71.0.38) in pub/gnu/libg++-* --------------------------------------------------------- InterViews is an excellent GUI class library developed by Stanford University. Make sure you get v3.1 or later. This library contains excellent examples of multiple inheritance used profitably. I understand that InterViews development will not continue past the current version; author Mark Linton is concentrating his efforts on the X Consortium Fresco project, which should show up in X11R6. ftp from interviews.stanford.edu Also available from: ftp://ftp.informatik.uni-kiel.de/pub/graphics/X/InterViews --------------------------------------------------------- Unidraw is a graphical editor building library based on top of InterViews. ftp from interviews.stanford.edu --------------------------------------------------------- ET++ is a large GUI library and other C++ tools developed in Europe. The Authors of the Library are Andre Weinand and Erich Gamma both with Taligent now. ftp from ftp.inria.fr in gnu/et++-2.0.tar.Z or from ftp.ubilab.ubs.ch --------------------------------------------------------- LEDA, A Library of Efficient Data Types and Algorithms, by Stefan N"aher from Germany. It is available for educatioal purposes but its NOT in the public domain. Provides basic data-types like lists, stacks, queues, trees, sets, partitions, priority queues and a few others. These are parameterizable classes, you may add your own datatype and have a priority queue ... An important datatype is a graph, these are also parameterizable and there are useful algorithms for them like shortest path, transitive closure, matching, maximum flow, spanning tree and others, we have implemented a few algorithms for dealing with perfect graphs, but these ar not part of the standard library. The latest part deals with computational geometry. It can be used with C++ compilers which understand templates, such as cfront 3.0 and g++ 2.4.5. Stefan Naeher Max-Planck-Institut fuer Informatik Im Stadtwald, 6600 Saarbruecken, Germany (stefan@mpi-sb.mpg.de) ftp from ftp.mpi-sb.mpg.de in /pub/LEDA/LEDA-.tar.Z --------------------------------------------------------- Brent's univariate minimizer and zero finder. by Oleg Kiselyov ref G.Forsythe, M.Malcolm, C.Moler, Computer methods for mathematical computations. prec double see c++/serv_cc.shar ftp from netlib@research.att.com in c++/brent_cc.shar --------------------------------------------------------- Radix-2 Fast Fourier Transform by Oleg Kiselyov prec single/double see c++/lin_alg.shar, c++/serv_cc.shar ftp from netlib@research.att.com in c++/fft.shar --------------------------------------------------------- High level vector operations Contains the Aitken-Lagrange interpolation over the table of uniform or arbitrary mesh, and the Hook-Jeevse multidimensional minimizer. by Oleg Kiselyov prec single/double see c++/lin_alg.shar, c++/serv_cc.shar ftp from netlib@research.att.com in c++/hl_vector.shar --------------------------------------------------------- basic linear algebra classes by Oleg Kiselyov prec single/double see c++/serv_cc.shar ftp from netlib@research.att.com in c++/lin_alg.shar --------------------------------------------------------- A couple of functions that ought to be in the standard C++ environment; - Updated G++ class File that allows now for the file name to include pipes, say, File in_file("zcat aaa.Z |","r"); - Resource facility, or managing global "private" parameters that specify various program "options". It helps keep reasonable number of arguments in function calls. by Oleg Kiselyov ftp from netlib@research.att.com in c++/serv_cc.shar --------------------------------------------------------- C++ implementation of differential algebra by Leo Michelotti This is temporarily unavailable while we resolve the question of whether inclusion of codes from Numerical Recipes makes distribution illegal. ftp from netlib@research.att.com in c++/mxyzptlk.shar --------------------------------------------------------- ParLib++, Parallel Programming Classes for C++: David Greco David.Greco@crs4.it --------------------------------------------------------- P++, Parallel Programming Classes for C++: Dan Quinlan danq@lemond.colorado.edu --------------------------------------------------------- "C* in C++", Parallel Programming Classes for C++: Terry Bossomaier terry@arp.anu.edu.au --------------------------------------------------------- pC++ is a preprocessor for C++ that implements a data parallel extension. Machines currently supported are CM5, paragon, KSR-1, sequent, BBNTC2000 (and soon ibm sp1, and cray t3d), as well as in uniprocessor mode on most workstations. gannon@cs.indiana.edu --------------------------------------------------------- DoPVM - a class built on PVM, for message passing environments. Skip Hartley skip@mathcs.emory.edu --------------------------------------------------------- The SPLASH c++ class library (Small Perl-like List And String Handling class library) SPLASH is a c++ class library that implements many of the Perl constructs and data types, including extensive regex regular expression pattern matching. For those not familiar with Perl, it is an excellent scripting language by Larry Wall and is available for most platforms. This Class library provides List, String, Regular Expression, and text manipulation handling capabilities based on those provided in Perl. This is available as a compressed tar file for Unix, or .zip format for MSDOS compatible names. contact: morris@netcom.com ftp from ftp.netcom.com in pub/mo/morris/splashxxx.tar.Z and pub/mo/morris/splashxxx.zip where xxx is the version number, currently 190 (for version 1.90) --------------------------------------------------------- OSE is a collection of programming tools and class libraries for C++. The core of the environment is the C++ class libraries, of which three are provided. These are: OTCLIB - A library of generic components, including support for error handling, error message logging, error recovery, program debugging, memory management, resource management, generic collections, text manipulation, date/time, operating system interfacing and event driven systems. OUXLIB - A library of components which primarily extends classes in the OTCLIB library to support features specific to the UNIX operating system. OTKLIB - A library of components which builds on the OTCLIB and OUXLIB libraries to allow integration of the TCL/TK library into applications using the event driven systems framework provided by the OTCLIB library. The C++ libraries are portable to a wide range of C++ compilers on the UNIX platform. Supported C++ compilers include those from ATT/USL (CFRONT), CenterLine, DEC, HP, IBM, Lucid, ObjectStore, SGI (CFRONT), SGI (DELTA), Sun (CFRONT) and Sun (NATIVE), as well as the freely available GNU C++ compiler. If your C++ compiler does not support templates, it is possible to use a template preprocessor which is supplied with OSE. If your C++ compiler support exceptions, they will be used. Portability to all the major variants of UNIX has been achieved. Supported platforms include AIX, BSD, HPUX, IRIX, Linux, NeXT, OSF, SCO, Solaris, SunOS, SYSV and Ultrix. In addition to being available under UNIX, the OTCLIB library has been ported to DOS, OS/2 and Windows NT using Borland, Watcom and Microsoft C++ compilers. The C++ libraries have been fully integrated with the ObjectStore OODBMS, allowing instances of classes from the C++ libraries to be made persistent. The C++ libraries can also be used in conjunction with applications using Versant, although in this case instances of classes from the C++ libraries cannot be made persistent. In addition to the C++ libraries, a build environment is provided. The build environment greatly simplifies the writing of makefiles, making the the task of building applications, as well as the generation and installation of both static and shared libraries easy. The details of template instantiation for many of the C++ compilers is also hidden, making it possible to write makefiles which are portable between different C++ compilers as well as different platforms. The build environment also supports tasks such as schema generation for the ObjectStore and Versant OODBMS, and testing of applications using tools such as Purify, Quantify, PureCoverage, TestCenter and Sentinel. Comprehensive documentation for the C++ libraries and build environment is provided. Documentation for the C++ libraries comes in the form of a UNIX style manual page for each class and higher level documentation giving examples of how to use the classes. The UNIX style manual pages are generated from the class header files using documentation extraction tools. These tools are provided with OSE and are capable of generating both UNIX style manual pages and Frame documents. Development of OSE commenced in 1990, being made freely available via the Internet in 1993. OSE was winner of CODA'94, the ComputerWorld Object Developer Awards, held in conjunction with ObjectWorld in Sydney, Australia. The category in which OSE was a winner was "Best implementation of a reusable development environment for company deployment". OSE (source code and documentation) can be obtained via anonymous ftp from: Europe: ftp.th-darmstadt.de [130.83.55.75] directory pub/programming/languages/C++/class-libraries/OSE United States ftp.odi.com [198.3.16.26] directory pub/OSE Australia: csis.dit.csiro.au [192.41.146.1] directory pub/SEG/ose Documentation for OSE is also available online via WWW at: http://www.telstra.com.au/docs/ose/doc/ose-home.html Questions about OSE can be directed to the author (Graham Dumpleton) at: ose@nms.otc.com.au A mailing list for discussion of OSE, and a mail server providing a list of known problems and fixes also exists. OSE is made freely available by Dumpleton Software Consulting Pty Limited. OSE contains licensed program materials which are the copyright of Telstra Corporation Limited and which are licensed to Dumpleton Software Consulting Pty Limited by Telstra Corporation Limited. --------------------------------------------------------- COOL - Texas Instrument's "C++ Object Oriented Library". COOL includes classes like AVL_Tree, Association, Bignum, Binary_Tree, Bit_Set, Complex, Date_Time, Envelope, Gen_String, Handle, Hash_Table, Iterator, List, M_Vector, Matrix, N_Tree, Pair, Quaternion, Queue, Random, Range, Rational, Regexp, Set, Shared, Stack, String, Timer, Value, Vector. COOL uses a special "template" syntax which is preprocessed by a special cpp (distributed with COOL). This enables it to be used with compilers which do not support templates. fto from csc.ti.com in ~ftp/pub/COOL.tar.Z --------------------------------------------------------- GECOOL 2.1 is a reworking and enhancement of Texas Instrument's "C++ Object Oriented Library" (at csc.ti.com in ~ftp/pub/COOL.tar.Z) by some programmers at General Electric. Also available is JCOOL. Its main difference from COOL and GECOOL is that it uses real C++ templates instead of a similar syntax that is preprocessed by a special 'cpp' distributed with COOL and GECOOL. ftp from cs.utexas.edu in pub/COOL --------------------------------------------------------- SOCKET++ C++ iostream like library for sockets and pipes. ftp from from uvaarpa.virginia.edu: in /public_access/socket++-XX.tar.gz (XX - version no) or from cs.ucl.ac.uk [128.16.5.31] in coside/gnu/sockets++.tar.z --------------------------------------------------------- PDBlib is a class library written in C++ for modeling a macromolecular structure at the level of detail (excluding symmetry information) found in a Protein Data Back (PDB) file. A class is supplied to read a PDB file into a PDBlib representation. This class is independent of the actual representation and other forms of input, for example from a relational database like SESAM, are possible. The library is made extensible by a close coupling between intrinsic and external classes. By writing only to the external classes you will remain compliant with future versions of the library. You don't get source code. This is a temporary situation while we attempt to centralize bug fixes and additions to the library. If you find this situation unworkable source code is available by signing a copyright agreement which is available with the distribution. Platforms: PDBLib.1.0.SGI.tar.Z Compressed tar file of PDB object classes library and header files for SGI. AT&T C++ release 2.1 & 3.0 compatible. PDBLib.1.0.Sun.tar.Z Compressed tar file of PDB object classes library and header files for Sun Sparc station. AT&T C++ release 2.1 & 3.0 compatible. PDBLib.1.0.Cvx.tar.Z Compressed tar file of PDB object classes library and header files for Convex. AT&T C++ release 2.1 compatible. PDBLib.1.0.Alpha.tar.Z Compressed tar file of PDB object classes library and header files for Dec 3000 (Alpha AXP) with OSF1. Dec C++ (cxx) release 1.2 compatible. Address specific programming questions on PDBlib to Weider Chang, the author of most of the code (weider@cuhhca.hhmi.columbia.edu). Address questions concerning PDBview to Ilya Shindyalov (shindyal@cuhhca.hhmi.columbia.edu) Address general comments, criticisms, questions about future directions etc. to Phil Bourne (system@cuhhca.hhmi.columbia.edu). ftp from cuhhca.hhmi.columbia.edu (128.59.98.1) in pub/programs/PDB/PDBlib --------------------------------------------------------- molbio++ is a C++ library for molecular biosequence analysis. Major features include: classes and services for reading and writing sequence data in the following formats: Genbank Flatfile EMBL / SwissProt GCG / Wisconsin Fasta / Pearson PIR NCBI Retrieve Server (read-only) limited parsing of fields and features in biosequence files storing amino acid or nucleic acid sequences iterating over a biosequence calculating and storing counts or frequencies of amino acids or nucleotides device-independent graphics, via GCG's FIGURE program translating nucleotide sequences into proteins using the universal genetic code or modifications thereof. parsing BLAST output calculating pI and molecular weight of proteins amino acid hydropathy values of Kyte & Doolittle ftp from golgi.harvard.edu (128.103.161.55) pub/CONTRIBUTIONS/molbio++ --------------------------------------------------------- SESAME, by C. Tietz, Neural net software ? ftp from ftp.gmd.de in /gmd/as/sesame. --------------------------------------------------------- TOLKIEN (TOoLKIt for gENetics-based applications). The tool contains objects for both GA and classifier system applications." It's in some kind of alpha-status. tang028@cs.cuhk.hk --------------------------------------------------------- GAME - Parallel Genetic Algorithms Theory and Applications Edited by: J. Stender Publisher: IOS Press Frontiers in Artificial Intelligence and Applications series 1993, 225 pp; hard cover; w/ disk ISBN: 90 5199 087 1 Price: $85, 59 pounds sterling The first version of the GAME Virtual Machine software and two examples that come with the book can be obtained also by ftp. ftp from bells.cs.ucl.ac.uk in papagena/game/version1 directory --------------------------------------------------------- The Generic Linked List Package is a package to define, create, update query and delete one or more (nodes of) linked lists, to sort linked lists, and so on. The user doesn't have to take care of allocating a number of bytes for a node, inserting on the right place, deleting and freeing a node and so on. ftp from ftp.tno.nl or hermes.bouw.tno.nl in /pub/TNO/BOUW/Bouwinf/linkedlist0.10.shar --------------------------------------------------------- Newmat : a very thorough matrix class Author : Robert Davies (robertd@kauri.vuw.ac.nz) This library supports classes Matrix, UpperTriangularMatrix, LowerTriangularMatrix, DiagonalMatrix, SymmetricMatrix, BandMatrix, UpperBandMatrix, LowerBandMatrix, SymmetricBandMatrix, RowVector, ColumnVector. Only one element type is supported. It includes the operations *, +, -, concatenation, elementwise product, inverse, transpose, conversion between types, submatrix, determinant, Cholesky decomposition, QR triangularisation, singular value decomposition, symmetric eigenvalue analysis, fast Fourier transform, sort, print, an interface to "Numerical Recipes in C" programs, and an emulation of exceptions. It works with Borland, Watcom, Microsoft and Gnu C++ compilers. ftp oak.oakland.edu (or any Simtel mirror) in /SimTel/msdos/cpluspls/newmat08.zip --------------------------------------------------------- nlmdl : a library for estimation of nonlinear models Nonlinear maximisation, estimation, includes a real matrix class Systems : Unix, MS-DOS (Turbo C++) Author : A. Ronald Gallant, arg@ccvr1.cc.ncsu.edu ftp from ftp.uu.net in /usenet/comp.sources.misc/volume16/nlmdl or from ccvr1.cc.ncsu.edu (128.109.212.20) in pub/arg/nlmdl --------------------------------------------------------- Octave : Matlab-like interactive system for numerical computations Includes C++ classes for matrix manipulation, numerical integration, and the solution of systems of nonlinear equations, ODEs and DAEs. Distributed under the GPL. Systems : Compiles and runs on SPARC, RS/6000, DEC/Ultrix, i386/Linux and probably most Unix-like systems that have a working g++/libg++. Author : John W. Eaton ftp from ftp.che.utexas.edu in /pub/octave/octave-M.N.tar.Z --------------------------------------------------------- Andy Register has a matrix library ... It is still under development so there is no documentatin and some functions have not been throughly tested. It is a departure from most matrix libs in that it includes things like UpperTriangular different >from Diagonal, from Row, from Col, etc. ftp from ftp.cerl.gatech.edu in pub/c++/gtmatrix --------------------------------------------------------- Awesime : a C++ task library explicitly designed for simulation. Author : Dirk Grunwald (grunwald@foobar.cs.colorado.edu) ftp from ftp.cs.colorado.edu in pub/cs/misc/Awesime --------------------------------------------------------- BLAS in C++ Author : Damian McGuckin (damianm@eram.esi.com.au) ftp from usc.edu in pub/C-numanal/blas.cpp.shar.z --------------------------------------------------------- Cvmath.cc An include file to make complex math look like regular math. Author : Leonard Kamlet, lik@engin.umich.edu Comments : The file uses a lot of operator overloading, so that if x=a+ib and y=c+id, the code for multiplying the two together looks like z = x*y; Also, the file includes nrutil from Numerical Recipes, and adds the complex versions for vectors and matrices. ftp from usc.edu in pub/C-numanal/cvmath.cc --------------------------------------------------------- Gnans : Simulation of stochastic and deterministic dynamical systems System : SunOS 4.1.x, IRIX, AIX; X11 Release 4-5 incl. Athena Widgets Author : Bengt Martensson Comments : A program (and language) for dynamical systems. Includes simple scripting language. Graphical user interface. Copyleft. ftp from ftp.mathematik.uni-Bremen.de in /pub/gnans --------------------------------------------------------- Kalman : A class library for Kalman filtering Author : Skip Carter (skip@taygeta.oc.nps.navy.mil) Description : A class library for Kalman filtering Comments : Contains lumatrix.c++ etc. Language : g++ 2.4.2 tested OK. ftp from usc.edu in pub/C-numanal/kalman.tar.gz --------------------------------------------------------- Matrix A C++ Matrix class, including a matrix implementation of the backward error propagation (backprop) algorithm for training multi-layer, feed- forward artificial neural networks Author : E. Robert (Bob) Tisdale, edwin@cs.ucla.edu Comments : A C++ interface to existing C and FORTRAN matrix libraries. Documents : LaTeX manual. ftp from ftp.cs.ucla.edu in pub/Matrix.tar.Z --------------------------------------------------------- Presto : C++ routines for fine-grained parallel programming (lightweight threads) on multiprocessors. Tuned for the Sequent machines, but highly adaptable and customizable. Systems : Unix-like OS on (moderate) multiprocessor machines Author : Brian N. Bershad, Edward D. Lazowska, Henry M. Levy frp from cs.washington.edu in pub/presto1.0.tar.Z --------------------------------------------------------- Range : C++ class for range arithmetic. Associated with article in TOMS, Dec 1992 title "Precise computation using range arithmetic, via C++" Author : Oliver Aberth and Mark J. Schaefer ftp from math.tamu.edu in pub/range/range.tar.Z --------------------------------------------------------- SA : library for simulated annealing Author : Skip Carter (skip@taygeta.oc.nps.navy.mil) ftp from usc.edu in pub/C-numanal/sa.zoo --------------------------------------------------------- Sdeint A Runge-Kutta like class for integrating systems of Stochastic Differential Equations Author : Skip Carter, skip@taygeta.oc.nps.navy.mil ftp from usc.edu in pub/C-numanal/sdeint.tar.z --------------------------------------------------------- Simpack : tools for writing simulations with a EECS bias Author : Paul A. Fishwick, fishwick@cis.ufl.edu ftp from bikini.cis.ufl.edu in pub/simdigest/tools/simpack See also cis/tech-reports/tr92/tr92-022.ps.Z --------------------------------------------------------- PARODY : C++ DATABASE LIBRARY Al Stevens has written a book on the subject called `Database programming in C++' or something. An article on the subject was printed in Doctor Dobbs Journal some time ago. The nice thing is that Stevens also wrote a C++ library adding persistence to C++, and the source is available. The library is called PARODY and compiles under most DOS-based C++ compilers. A slight rewrite of the GUI- routines has to be done to make it compile under GNU C. ftp from ftp.mv.com in pub/ddj/1992.12/parody.zip pub/ddj/1992.12/parody.dir (directory of zip) --------------------------------------------------------- SMURPH : A C++ library which could be useful for building a network simulator.It comes withextensive documentation and examples. ftp from menaik.cs.ualberta.ca (129.128.4.241) in /pub/smurph* --------------------------------------------------------- C++ FEM (Finite Element Method) Library In addition to FEM related classes, this library also has: 1) Some simple garbage collection stuff 2) An automatic differentiation library 3) A sparse matrix library This is an initial release and people should *expect* to have to do some work to get it running on their system. If you have gcc-2.3.3, libg++-2. 3[.1], Gnu make and makedepend you shouldn't have too much difficulty however. The code is unsupported, and is distributed under the terms of the GNU Public License. Michael Tiller University of Illinois (Urbana-Champaign) (tiller@solace.me.uiuc.edu) ftp from usc.edu int /pub/C-numanal/femlib-1.1.tar.gz --------------------------------------------------------- Ode Object database v2.0 Ode is an object-oriented database based on the C++ database model. The primary interface to Ode is the database programming language O++ which is based on C++. Ode is now available to Universities. The current version of Ode runs on Sun (Sparc) workstations and users must have C++ release 2.0 or a later release. If you are interested in using Ode and giving us feedback on your experience with Ode, please send mail to nhg@research.att.com with the appropriate information. Narain Gehani AT&T Bell Labs 3D-414 600 Mountain Ave Murray Hill, NJ 07974 ftp from research.att.com. in dist/ode2.0/2.0.oppbin.tar.Z --------------------------------------------------------- C++SIM 1.5.2 - a simulation package written in C++. C++SIM provides discrete process based simulation similar to that provided by the simulation class and libraries of SIMULA. The linked list manipulation facilities provided by SIMSET are also included in the package, and there is support for a variety of statistics gathering classes. The simulation package requires the use of a threads package and currently only works with the following: Sun's lwp threads and Solaris threads C++ task library NT threads Posix threads cthreads Rex threads It has been build on a number of different architectures and C++ compilers, and porting to other systems should be relatively easy. Available for research, evaluation, or teaching only. ftp from arjuna.ncl.ac.uk or http://arjuna.ncl.ac.uk ----------------------------------------------------------------- ADAPTIVE Communication Environment (ACE) C++ IPC wrappers (C++Wrapper). This release contains contains the source code, documentation, and example test drivers for a number of C++ wrapper libraries and higher- level distributed application frameworks developed as part of the ADAPTIVE project at the University of Calfornia, Irvine. The C++ wrappers encapsulate many of the user-level BSD and System V Release 4 IPC facilities such as sockets, TLI, select and poll, named pipes and STREAM pipes, the mmap family of memory-mapped file commands, System V IPC (i.e., shared memory, semaphores, message queues), and explicit dynamic linking (e.g., dlopen/dlsym/dlclose) using type-secure, object-oriented interfaces. The higher-level distributed application frameworks integrate and enhance the lower-level C++ wrappers to support the configuration of concurrent network daemons composed of monolithic and/or stackable services A relatively complete set of documentation and extensive examples are included in the release. A mailing list is available for discussing bug fixes, enhancements, and porting issues regarding ACE. Please send mail to ace-users-request@ics.uci.edu if you'd like to become part of the mailing list. ftp from ics.uci.edu (128.195.1.1) in gnu/C++_wrappers.tar.Z --------------------------------------------------------- CB++ (CommonBase Database Access Library for C/C++) This library was written in 1989 as a basis for storing C++ objects in a relational database. The development of such a system was stopped in 1990 because of problems with the MS-DOS environment used in this time. My involvement in various user interface projects here in the institute and otherwhere made it sleep until last week. Okay, here is it. It is only the database access layer of the projected object storage system but it has some useful features which are provided by commercial tools out there: * Builds on the C language interface of a database, there is no need for a precompiler (like embedded SQL - which is totally unusable in combination with C++, at least it was three years ago...) * Very simple to use. Unlike the native C interfaces of the databases it is as simple as embedded SQL or some 4th generation languages. * Makes applications portable among different SQL databases. The library itself is relatively easy to port as the database vendor specific code ftp from ftp.x.org in /contrib/CB++.0.1.* --------------------------------------------------------- OBST - persistent object management system The persistent object management system OBST was developed by Forschungszentrum Informatik (FZI) as a contribution to the STONE project. Sites interested in getting information about new OBST developments are welcome to register in their mailing list by sending a mail with subject "obst-mailing-list" to stone@fzi.de. Forschungszentrum Informatik FZI STONE Projekt Haid-und-Neu-Strasse 10-14 D-7500 Karlsruhe 1 Germany Tel : ++49-721-9654-601 Fax : ++49-721-9654-609 Teletex : 721 190 fziKA email : stone@fzi.de ftp from gate.fzi.de [141.21.4.3]. in /pub/OBST. --------------------------------------------------------- GRAS - A Graph-Oriented Database System for SE Applications Copyright (C) 1987-1992 Lehrstuhl Informatik III, RWTH Aachen This library is free software under the terms of the GNU Library General Public License. The system GRAS with interfaces for the programming languages Modula-2 and C is available as public domain software for Sun3/Sun4 workstations (the GRAS system itself is implemented in Modula-2 and consists of many layers which might be reusable for the implementation of other systems): There are several files contain documentation, sources, binaries, and libraries. All binaries are for Sun/4 machines. Sun/3 binaries are shipped only if explicitly requested. Lehrstuhl f"ur Informatik III University of Technology Aachen (RWTH Aachen), Ahornstr. 55, D-5100 Aachen Contact : Dr. Andy Sch"urr (or Richard Breuer), andy@rwthi3.informatik.rwth-aachen.de ricki@rwthi3.informatik.rwth-aachen.de (for technical support) ftp from tupac-amaru.informatik.rwth-aachen.de (137.226.112.31) in /pub/unix/GRAS522_3 --------------------------------------------------------- MTL110JE.ZIP -- multithreading class library DOS PC/Borland C++ specific. ftp from oak.oakland.edu in /pub/msdos/cplusplus or garbo.uwasa.fi in /pc/c-lang --------------------------------------------------------- CCL110JE.ZIP -- coroutine class library DOS PC/Borland C++ specific. ftp from oak.oakland.edu in /pub/msdos/cplusplus or garbo.uwasa.fi in /pc/c-lang --------------------------------------------------------- TSR100JE.ZIP -- TSR class library DOS PC/Borland C++ specific. ftp from oak.oakland.edu in /pub/msdos/cplusplus or garbo.uwasa.fi in /pc/c-lang --------------------------------------------------------- XMS200JE.ZIP -- XMS array class library Wrapper classes to access XMS, UMBs and the HMA, as well as a templated XMS array class. Test suites and timing programs provided for each class. Source included. Free. DOS PC/Borland C++ specific. ftp from oak.oakland.edu in /pub/msdos/cplusplus or garbo.uwasa.fi in /pc/c-lang --------------------------------------------------------- Source code from books available for ftp ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --------------------------------------------------------- Thinking in C++ by Bruce Eckel eckelt03.zip contains the source code for Bruce Eckel's book "Thinking in C++" (Prentice-Hall 1995, ISBN: 0-13-917709-4). This is the complete set of source code files from the book, including corrections after the book was published. The package only contains ASCII text files. They were prepared and tested with a number of compilers under DOS/Windows, and are intended to represent the correct language implementation at the time of their creation, rather than a particular compiler. However, please be aware that the C++ language is still a draft standard, and some language elements are still subject to small changes. The package is distributed as copyrighted freeware (you can use the code, and redistribute the package, but you cannot distribute modified versions of the package or portions of the package). Special requirements: Compressed from the original DOS directory structure using PKZIP 2.04g. When you unzip the package, use the -d flag to create directories and maintain the directory structure. Changes: Includes errata sheets for the first printing of the book (corrected in the second printing). eckelt03.zip has replaced eckelt01.zip (distributed on CIS & AOL). Copyrighted FreeWare. Uploaded by the author, Bruce Eckel . ftp://oak.oakland.edu/SimTel/msdos/cpluspls/eckelt03.zip or other Simtel mirrors. --------------------------------------------------------- Code from Hansen's C++ Answers book by Tony L. Hansen ref "The C++ Answer Book", Addison-Wesley, 1990, ISBN 0-302-11497-6 ftp://netlib.att.com/netlib/c++/answerbook --------------------------------------------------------- Code from Coplien's, "Advanced C++ Programming Styles and Idioms" by James O. Coplien ref "Advanced C++ Programming Styles and Idioms", Addison-Wesley, 1992, ISBN ftp://netlib.att.com/netlib/c++/idioms --------------------------------------------------------- Source to the Book: Object-Oriented Software in C++ by Michael A. Smith (mas@unix.brighton.ac.uk) ref "Object-Oriented Software in C++", Chapman & Hall, London. 1993. ISBN 0 412 55380 5. ftp from unix.brighton.ac.uk in /pub/mas --------------------------------------------------------- Useful ftp sites ~~~~~~~~~~~~~~~~ If you don't have ftp access, send email to ftpmail@decwrl.dec.com saying "help". You will get instructions on how to do ftp via email. European users might like to try ftpmail@grasp.insa-lyon.fr instead. --------------------------------------------------------- ftp.th-darmstadt.de A major repository of C++ stuff, mostly under the directory tree starting at /pub/programming/languages/C++. Includes a product list (from which some of the information in this document was taken) in various formats in sub-directory c++-products. /pub/programming/languages/C++/... --------------------------------------------------------- ftp.luth.se /pub/languages/c++/ClassLibs/... --------------------------------------------------------- netlib@research.att.com. send mail with the text "send index" or "send index from C++" --------------------------------------------------------- Simtel The primary Simtel site is oak.oakland.edu, but there are many mirror sites all over the world. msdos/cplusplus --------------------------------------------------------- Current CUG Library Catalog The CUG CD-ROM file listing offers the most comprehensive look at the programming tools and utilities available from CUG. The complete annotated listing (about 1 megabyte) is available through anonymous ftp as follows: ftp from cdrom.com in /pub/cdrom/cdroms/cug/capsule.txt --------------------------------------------------------- source-code newsgroups: ftp.uu.net (e.g. usenet/comp.sources.reviewed archives the comp.sources.reviewed newsgroup). --------------------------------------------------------- Netlib: research.att.com email, ftp ornl.gov email, xnetlib nac.no email, xnetlib for Europe (e.g. send email to netlib@ornl.gov to access by email) unix.hensa.ac.uk is a mail server useful for Europe. ci.cs.uow.edu.au (130.130.64.3) in Australia --------------------------------------------------------- Libraries for which I don't know an ftp site ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --------------------------------------------------------- DCE++: A C++ API for Programming Distributed Systems William Leddy, Arjun Khanna (arjun@hal.com) HaL Computer Systems, Austin, Texas. DCE++ is a set of ANSI C++ classes that enable the rapid prototyping of distributed programs. The goal of DCE++ is to provide a platform independent C++ API to the significant components used in distributed computing. Namely: RPC, threads, Security and Naming across the widely used distributed computing platforms such as DCE, ONC and WNT. It is expected that by encapsulating platform dependencies inherent in setting up rpcs, security etc. in DCE++ base classes, program development time can be drastically reduced. Moreover, a foundation can be provided for developing *portable* distributed program development tools. The second *evaluation* version of DCE++, version 0.4, has been released on Dec 2'93. The release includes C++ bindings for remote procedure calls over DCE and ONC. A C++ threads api for programming DCE threads. A C++ threads api for programming DCE distributed Time Service. The release is available free of charge upon signing a very liberal license agreement. The license agreement is obtainable by anonymous ftp from hal.com. It is in the directory dce++. The same directory also contains the release notes for the 0.4 version and plans for 0.5 features. To obtain the code, please send the signed license agreement to: Arjun Khanna, FAX (U.S country code) 512-794-8737 --------------------------------------------------------- GenTools: A Computational Genomic Tool Suite The University of Texas System CHPC and collaborators are addressing the problems of high performance platforms by developing GenTools, an interactive, distributed, loosely integrated, set of tools for DNA and protein sequence data analysis, phylogenetic analysis, and restriction mapping which combines different algorithm implementations, machines, and databases through a "bio-user" friendly set of graphical user interfaces. Sarah Barron GenTools Project Leader Computational Molecular Biology and Genetics Group University of Texas System Center for High Performance Computing Balcones Research Center, CMS 1.154 10100 Burnet Road Austin, TX 78758-4497 Internet: sarah@chpc.utexas.edu Bitnet: s.barron@uthermes Voice: (512)471-2434 FAX: (512)471-2445 --------------------------------------------------------- Commercial libraries ~~~~~~~~~~~~~~~~~~~~ --------------------------------------------------------- NeoAccess Developer's Toolkit Cross-platform object database engine for C++ development NeoAccess(TM) is a full-featured object database engine for use in Windows, Macintosh, Unix and DOS based applications. NeoAccess's feature set include: Blobs, part lists, iterators, swizzlers, temporary objects, multiple indices on a class, a powerful relational object query mechanism, a very small memory and file footprint and a streams-based I/O model. NeoAccess has the complete set of features that in-house and commercial developers need and an easy to use programming interface that hides internal complexity to keep C++ developers productive. In much the same way that application frameworks are used to construct the front-end of an application, NeoAccess is the framework developers use to build an application's back-end. NeoAccess is a set of C++ classes that naturally extends standard application frameworks such as Metrowerks' PowerPlant, Symantec's THINK Class Library and Apple's MacApp on the Macintosh and Microsoft's Foundation Classes, Inmark's zApp and Borland's ObjectWindows in Intel-based environments. NeoAccess is very portable and can also be used without an application framework. NeoAccess comes complete with full source code. The same NeoAccess source code can be used to build Windows ('95, NT and 3.x), Macintosh, Unix (all platforms) and DOS applications. The programming interface is virtually identical in all environments. NeoAccess-based applications produce single file documents that are binary-compatible across platforms. That is, a database built on one platform can be used on any other platform without conversion. The NeoAccess Developer's Toolkit is priced at $749 per developer with no runtime licensing fees. It includes full source code, numerous sample applications, 450+ pages of documentation, and 30 days of online technical support. NeoLogic Systems, Inc. 1450 Fourth St., Suite 12 Berkeley, CA 94710 USA Vox: (510) 524-5897 Fax: (510) 524-4501 Email: neologic@neologic.com FTP: ftp://ftp.neologic.com/users/neologic/ Web: http://www.neologic.com/~neologic/ --------------------------------------------------------- ViewKit ObjectPak ================= ViewKit ObjectPak is an application framework for developing OSF/Motif and CDE applications using C++. ViewKit includes generic application classes, menu, dialog, and preference classes; as well as ToolTalk and UNIX process control systems. ViewKit ObjectPak builds on the C++/Motif programming methods established by Doug Young in his book "Object-Oriented Programming with C++ and OSF/Motif". ViewKit ObjectPak provides a variety of ready-to use components and enables developers to easily extend ViewKit by creating new component classes. With these high-level components, ViewKit ensures consistency throughout a family of applications, and promotes enterprise-wide software reuse. In addition, ViewKit supports easy and effective communication between applications by using ToolTalk(tm), the CDE standard for inter-application messaging. ViewKit ObjectPak is available in binary and source form. Originally developed by Silicon Graphics, ViewKit is now available through ICS for most UNIX platforms. Binaries are available for SunOS, Solaris, HP-UX, Digital UNIX, AIX, and SCO Open Desktop. For Irix, contact Silicon Graphics directly. For more info, contact: Integrated Computer Solutions, Inc. 201 Broadway Cambridge, MA 02139 (617) 621-0060 (617) 621-9555 Fax info@ics.com http://www.ics.com/ ICS has distributors in the U.K., France, Germany, Italy, Spain, Sweden, Israel, Korea, Japan, and Australia. --------------------------------------------------------- ObjectBuilder includes the Object Interface (OI) class library which is a C++ object-oriented implementation of both Motif and Openlook interfaces. Note that interested parties can read more about the OI library in the 1300 page "OI Programmer's Guide" by Gary Aitken and Amber Bensen published by Prentice-Hall. ObjectBuilder is a GUI that offers developers a complete C++ implementation of Motif. ObjectBuilder allows developers to rapidly design, test, modify and implement sophisticated object-oriented graphical user interfaces by using ObjectBuilder to manipulate C++ objects found in its Object Interface (OI) C++ class library. ObjectBuilder features a drag-and-drop user interface that allows developers to immediately visualize the results of their user interface design. ObjectBuilder is owned and supported by Openware Technologies, Inc.. Formerly owned by ParcPlace Systems, Openware recently acquired ObjectBuilder. ObjectBuilder is currently available on Sun/Solaris, HP 9000/700 and IBM AIX RS6000. We will also be supporting SGI, DEC Alpha, Sco UNIX, Unysis Unixware and NCR SVR4. Contact: Kris Gottschalk Openware Technologies, Inc. Object Technologies Business Unit 1-800-933-5558 x4224 --------------------------------------------------------- C++ Data Object Library has a wide variety of data structures combined with automatic persistence (storage to disk). In many applications, using the library is like building your own OO database. The emphasis is on high performance and protection against allocation and pointer errors. The library can help practically any C++ project, but is especially useful for large and complex software projects designs such as VLSI CAD. Uses a code generator. Data relations are represented as objects. Protection against pointer errors is achieved by using rings instead of NULL ending lists. Smart iterators permit to delete objects while travering lists. Several methods of storing data to disk, including memory blasting (storing entire pages of memory). Portable programs and data, schema migration. Data organizations: lists, collections, aggregates, trees, graphs, dynamic arrays, hash tables, pointer links, reference counting, many-to-many relation, dynamic properties (like in LISP), virtual (disk access is if a large array), run-time access to type tables. The library is build on ideas described in "Taming C++: Pattern Classes and Persistence for Large Projects", by Jiri Soukup, Addison-Wesley 1994. Sells in full source, and runs with all major compilers, just to name a few: Sun, HP, AT&T, Borland, Microsoft, Zortech, Watcom, Digital, GNU, UNIX, Windows, OS2, Macintosh System 7. A C version with similar features but with a less elegant interface is also available. No licence restrictions and no marketing tricks. You can ship the source of the library with your programs, except for the code generator. A complete regression test, documentation and support comes with the basic price. We are one of the oldest class libraries in business, and we stand behind our software. Prices in US$: $299 DOS,WINDOWS, or MAC $599 UNIX workstations Postage included in North America, $25 for overseas. email: jiri@debra.dgbt.doc.ca Code Farms Inc 7214 Jock Trail, Richmond, Ont., K0A 2Z0, Canada tel 613-838-4829, fax 613-838-3316 --------------------------------------------------------- CommonPoint Application System is a comprehensive C++ class library for writing portable GUI applications. It includes a GUI builder, a development environment, full international language support, full 2D and 3D graphics, multi-media, collection classes, customizable text and graphics editors, a compound document architecture, a workspace/finder, etc.. It is fully supported. CommonPoint is currently available for IBM AIX RS6000 workstations. Future versions will run on additional platforms. Company: Taligent, Inc., Cupertino, CA URL: http://www.taligent.com/ --------------------------------------------------------- Memory Tuning System (MTS) - Fast, efficient memory allocator specifically designed to minimize paging and data fragmentation Improves run-time performance by: -- Minimizing virtual memory paging -- Providing faster malloc/free calls -- Minimizing memory fragmentation Improves programmer productivity with: -- Standard C library malloc interface -- Works with C, C++, FORTRAN -- Availability on Unix, OS/2, Win32s and Windows NT -- Consistent performance across multiple machines -- MTS shipped as portable C source code Corporate Headquarters: 1.800.NEWCODE (1.800.639.2633) E-mail: info@newcode.com Eastern Office: NewCode Technology, Inc. Tel: 508.454.7255 650 Suffolk Street Fax: 508.454.7559 Lowell, MA 01854 Email: zeev@newcode.com Western Office: NewCode Technology, Inc. Tel: 303.416.0784 2406 Newport Court Fax: 303.416.0753 Fort Collins, CO 80526 Email: al@newcode.com --------------------------------------------------------- Warne's Garbage Collector (WGC) WGC is a full-featured high-performance C++ memory manager that includes: - an incredibly fast explicit memory manager (drop-in new/delete) - a parallel incremental generational non-copying collector - a transparent just-in-time heap-checker WGC's fast explicit memory manager provides a drop-in accelerated new/delete. Using a multi-tiered parallel algorithm with the first tier inline, WGC can allocate most objects inline in less than 10 instructions! To enhance space efficiency WGC uses address-aligned storage algorithms with no per-object overhead (no linked lists!). To reduce fragmentation, WGC maintains a single process free store for all threads, modules, and DLLs. WGC's collector implements both conservative and accurate scanning and fully supports C++ code. Classes, arrays, scalars, interior pointers, unions, cross-heap pointers, anonymous unions (really!), large objects, library code you have no control over, etc. are all supported. Plus, you can incrementally deploy automatic memory management in existing or new applications, making some classes or objects collected and some not. WGC's just-in-time heap-checker stays active during the entire development cycle, transparently checking every new and delete. If a check fails, WGC will spawn your debugger and take you live to the line in question. To complement the live access to the line that failed a delete check, WGC provides detailed pointer/object info (allocating thread/line/file/pass count, object allocation time in microseconds, etc.) Debugging extensions allow interactive display/logging of object/pointer status and process stats. WGC is currently available for all major C++ compilers under Windows NT, Windows 95, and OS/2. WGC is priced at $895 per developer for all platforms, with no royalties. Team & Volume discounts apply. Source available. Ports to other platforms in progress. Reflective Software Corp 2660 Estevan Ave. Victoria, BC, CANADA, V8R 2T4 (800) 707-7171 (604) 683-0977 (604) 598-9546 (fax) Contact: Kevin Warne (kevinw@reflective.com) --------------------------------------------------------- The fACTs++ Class Library (financial Application Construction Tools in C++) is a homogeneous tool-box of more than 300 C++ classes and templates. fACTs++ provides programmers with design patterns for distributed client-server applications supporting multi-currency securities and transactions, along with associated international conventions. The library includes a complete set of foundation classes, parallel processing and communication classes, extendible financial instrument hierarchy and financial modeling classes. fACTs++ features include: - Dynamic Object Type Identification with Smart Pointers - Streams Interface - Container Templates - Time, Date, Calendar and Timer classes - String and Regexp Classes - Mathematics and Financial Modeling Classes - Internationalization Support - Interface To Persistence Storage and Extendible Objects - Application Configuration Framework - Human-Computer Interface Tools, including Model-Viewer Controller Classes - Distributed Processing Primitives and Client-Server Framework - CashValue, CashFlow, Payment, Yield and DayCount, Market classes - Comprehensive and extendible set of instrument definitions, such as Swap, Bond, Basket and Derivative - Portfolio, Position and Transaction Classes - Yield Curve, Volatility and Time Series Classes fACTs++ is available, on a per-project basis, as part of Objective Edge's custom software engineering service. The company's training program allows clients to quickly "ramp-up" their object-oriented development projects, providing early, visible results while reducing development costs. Upon project completion, clients are left with a technology base and application architecture which they are able to leverage in future development activities. fACTs++ is currently supported on Solaris 2.X and x86, and may be ported to any POSIX compliant platform on a custom development basis. fACTs++ is a trademarks of Objective Edge Inc. Copyright(c) 1994, 1995 Objective Edge Inc. All rights Reserved. For more information, please contact: Objective Edge Inc. Suite 401, 194 Merton Street Toronto, Canada M4S 1A1 Telephone: 416-485-7186 Facsimile: 416-485-6473 e-mail: info@objectiveEdge.com http://www.objectiveEdge.com/ --------------------------------------------------------- WinSockets++ 1.1: A C++ class library for WinSockets. The poster sent me the following paragraph. It has a little too much hype for my taste. (S)he also included a complete copy of the Programmers Guide - I am afraid I don't have time to read and summarise it here. This is more than just a wrapper for the WinSockets calls. It provides higher-level functions that make reading/writing to sockets very easy. Additionally, the Async aspect of the library makes using the asynchronous functionality of WinSockets *very* easy and your code *very* clean. It costs $50 which includes full source. email: troy@cais.com. --------------------------------------------------------- Distinct TCP/IP for Windows Software Development Kit C++ Class Libraries for FTP, Telnet and Windows Sockets. Allows developers to develop TCP/IP applications without making calls directly to a C Dynamic Link Library (DLL). Applications are created using the Distinct C++ Class Libraries, which take care of establishing the connection between the client and server side of the application. All functionality normally associated with calling a TCP/IP application is taken care of by setting data members and by handling upcall events. Applications are notified of errors, connection changes and incoming data by an upcall posted by the library to the applications window, by providing a callback function to the library or by making polling calls to the library at frequent intervals. Supported compilers: Microsoft C++ version 7 and Visual C++ 1.0 and 1.5. Standard Edition:$495.00 Professional Edition:$695.00 Distinct TCP/IP Run Time: $100.00 Distinct Corporation 12901 Saratoga Avenue, #4 Saratoga, CA 95070 Tel: (408) 366-8933 Fax: (408) 366-0153 Fastfacts: (408) 366-2101 email: mktg@distinct.com --------------------------------------------------------- Generic++ Class library with container classes and basic data types for the development of portable, object-oriented applications This C++ library is completely new. It is aimed at commercial users and implements a generous selection of application-independent basic classes. Its use frees the user from error-prone and time-con- suming specific tasks (e.g. main memory management). All libraries previously available on the market are targeted more or less specifically on a particular system environment. However, it is becoming more and more urgent to make as many application mod- ules as possible independent of a specific target platform. What gives Generic++ its competitive edge is the portability of its com- ponents and the way it takes account of other software engineering aspects. Advantages: * Implementation of the most important application- independent basic classes * Availability on all standard operating systems and platforms * Accommodation of the latest C++ exten- sions such as templates and exception handling * Co-existence with other libraries * High degree of runtime efficiency and low resource consumption * Integrated debugging support * Template-based, typesafe container classes with interchangeable implementation data structures * Suitability for use in the development of client/ server applications in heterogeneous networks. Unix (cfront, IBM xlC), WindowsNT, OS/2 (Watcom, IBM CSet++), Windows/DOS (Borland, Watcom, Symantec) (Price: 782 DM) Contact: Paul.Micke@mch.sni.de Paul Micke SNI SU AP 443 MchP/Lz Siemens Nixdorf Informationssysteme AG Otto-Hahn-Ring 6 D-81739 Muenchen Tel.: (49) 89 636-42756 Fax.: (49) 89 636-43461 --------------------------------------------------------- DiaViews++ Class library for the development of graphical user interfaces (GUI) in OSF/Motif and C++ This library combines the power of the OSF/Motif toolkit with the advantages of the C++ language by means of completely encapsu- lating the Motif objects (widgets/gadgets). This means there is a C++ class for every Motif object. DiaViews supports the structured, object-oriented development of Motif interfaces. C++ features such as rigorous type checks and virtual functions, etc. enhance the efficiency of the development process. Advantages: * Uniform C++ interface with OSF/Motif * Frame- work for generating reusable UI components * Use of callback objects * Interface with Dialog Builder, the interactive tool from Siemens Nixdorf for OSF/Motif user interfaces * Simple and relia- ble handling of Motif resources * Automatic generation of make- files * Minimal training overhead. (Price: 1750 DM) Contact: Paul.Micke@mch.sni.de Paul Micke SNI SU AP 443 MchP/Lz Siemens Nixdorf Informationssysteme AG Otto-Hahn-Ring 6 D-81739 Muenchen Tel.: (49) 89 636-42756 Fax.: (49) 89 636-43461 --------------------------------------------------------- BCM Class library for the support of inter-process communication (IPC) The class library BCM (Base Communication Module) supports both general communication (local and network-wide) and an inte- grated name service. BCM implementation is based on Internet Sockets, which use the TCP/IP protocol. This means that the C++ input/output streams can be made transparent for use in inter-proc- ess communication. Advantages: * The user does not have to bother about platform-spe- cific details * Classes are available for transport, the dispatcher, data representation, the message header and the name service. (690 DM) Contact: Paul.Micke@mch.sni.de Paul Micke SNI SU AP 443 MchP/Lz Siemens Nixdorf Informationssysteme AG Otto-Hahn-Ring 6 D-81739 Muenchen Tel.: (49) 89 636-42756 Fax.: (49) 89 636-43461 --------------------------------------------------------- OSQLIF Class library for the development of SQL database applications This library connects an SQL database with an application written in C++. The new options offered by the object-oriented language make it possible to implement a considerably more efficient user interface than is possible with the traditional `embedded' SQL. The aim is to set up a simple and efficient connection between an SQL database and an application developed in C++. SQL data types and both dynamic and static SQL are supported. This means that all the features of an SQL database can be accessed from a C++ applica- tion. Advantages: * The user can forget about a large number of data- base-specific details with regard to communication * Secure inte- gration in object-oriented C++ applications * When ANSI-SQL is used, the application can be ported between various databases. Contact: Paul.Micke@mch.sni.de Paul Micke SNI SU AP 443 MchP/Lz Siemens Nixdorf Informationssysteme AG Otto-Hahn-Ring 6 D-81739 Muenchen Tel.: (49) 89 636-42756 Fax.: (49) 89 636-43461 --------------------------------------------------------- Extended C++ Standard Components Foundation class library for the development of object-oriented software This standard library for C++ programming consists of C++ Stand- ard Components Rel. 3.0 (UNIX System Laboratories) and SNI Extensions. It contains universal classes that can be used under UNIX by any C++ programmer. Advantages: * The generic container classes were implemented using templates * Systematic approach: "you get what you need" * Efficient memory managementu The generated code is fast and concise and can be compiled quickly. Contact: Paul.Micke@mch.sni.de Paul Micke SNI SU AP 443 MchP/Lz Siemens Nixdorf Informationssysteme AG Otto-Hahn-Ring 6 D-81739 Muenchen Tel.: (49) 89 636-42756 Fax.: (49) 89 636-43461 --------------------------------------------------------- SOFTPRO TOUCH-GUI C++ class library for OS/2: SOFTPRO GmbH has announced its new 32bit C++ class library TOUCH-GUI 2.1 for OS/2 2.x. The product contains more than 140 classes which support windows, menu bars, multi-threading, controls (including all OS/2 2.x controls: slider, value set, notebook, container), dialog boxes, graphics, printer control, MDI, DDE, Drag and Drop, loadable resources, and management of profiles (.INI files). Other features include auxiliary classes for data manipulation and storage management. Additionally, TOUCH- GUI 2.1 contains high-level classes like formatted entry fields, tables, and complete NLS. Furthermore, TOUCH-GUI 2.1 is fully integrated in STAR CASE++, an OOA/OOD case tool (method: Coad/Yourdon), and Intersolv's PVCS (a version control system). Supported C++ compilers are: Borland, GNU (emx), IBM, and WATCOM The product includes online (.INF) and printed documentation, a demo program, and samples. Planned availability: April, 1994 TOUCH-GUI 2.1 costs DM 1.720,00 excl. VAT (ca. US $990), the runtime DLL's may be distributed royalty free. For upgrade prices and special project licenses (including source code of TOUCH-GUI) contact the supplier. NOTE: TOUCH-GUI 2.1 single license will be available at a special price of DM 199,00 excl. VAT (ca. US $120) during 04/01/94 - 06/30/94. Printed documentation is not shipped with the special price product, it is available for another DM 99,00 excl. VAT (ca. US $60). However, full online documentation is included. SOFTPRO GmbH, Stadtgrabenstr. 21, D-71032 Boeblingen, Germany, Tel.: +49 7031 6606-0 Mr. Frank Fuchs (extension -50) Fax: +49 7031 6606-66, email: ffu@softpro.de, IBMMAIL (IEA): DEJP9SK9 --------------------------------------------------------- Persistence is supposed to give access to a relational database from a C++ object model. Persistence Software Inc 1700 Sourth Amphlett Blvd, Suite 250 San Mateo, Ca 94402 415.341.7733 --------------------------------------------------------- Tools.h++ is the basic Rogue Wave tools library. Tools.h++ consists mostly of a large and rich set of concrete classes that are usable in isolation and do not depend on other classes for their implementation or semantics. Components include Collections, String processing, Time & date handling, File space manager, B-Tree disk retrieval, bit vectors, virtual I/O streams, caching managers, virtual arrays, etc. email: info@roguewave.com Rogue Wave Software, Inc., 1325 NW 9th Street Corvallis OR, 97330 (503) 754-2311 Fax: (503) 757-6650 --------------------------------------------------------- Matrix.h++ includes all the functionality of Math.h++. For example: general matrices, vectors, statistics, complex numbers, Fast Forier Transformation (FFT's), etc. Matrix.h++ adds specialized matrix classes such as banded, symmetric, positive-definite, Hermitian, tridiagonal, etc. Because Matrix.h++ includes Math.h++, it can take advantage of Math.h++'s highly optimized low-level assembly routines, making it fast as well as graceful. Prices range from $199 to $995 email: info@roguewave.com Rogue Wave Software, Inc., 1325 NW 9th Street Corvallis OR, 97330 (503) 754-2311 Fax: (503) 757-6650 --------------------------------------------------------- Linpack.h++ is the jewel of C++ math classes. Linpack.h++ includes all of Matrix.h++, plus all of the functionality in the original and well- established Fortran version; including solutions of systems of equations for a variety of matrix types, solutions of over- and under-determined systems of equations, incremental least squares solvers, etc. But, Linpack.h++ is a tru object-oriented library, not just a C version that compiles under C++: the traditional messiness of the Fortran version has been replaced with high-level, yet efficient, objects that make code far easier to write and maintain. Prices range from $299 to $1195 email: info@roguewave.com Rogue Wave Software, Inc., 1325 NW 9th Street Corvallis OR, 97330 (503) 754-2311 Fax: (503) 757-6650 --------------------------------------------------------- Classix In addition to Rogue Wave, Empathy offers a good general-purpose library called Classix. I do not have confirmed information, but I have been told that this library is no longer available. Empathy --------------------------------------------------------- USL C++ Standard Components Formerly developed and marketed by AT&T Bell Laboratories and UNIX System Laboratories, these are now developed and licensed by Novell Systems Group. A binary version is bundled with the UnixWare SDK (UnixWare 2 and up); this version is currently at Release 3.1. A source version is available for all other platforms (primarily UNIX-based); this version is currently at Release 3.0, and no new releases are planned. C++ Standard Components include : Args - argc/argv command line parser. Bits - bit manipulation to arbitrary-length bitstrings. Block - dynamic arrays. Array_alg - efficient algorithms for searching, sorting, inserting etc. Fsm - finite state machines. G2++ - message formatting for inter-process communication. Graph - maintain arbitrary relationships between arbitrary entities. Graph_alg - including searching, cycle and component detection. ipcstream - inter-process streams. List - doubly-linked lists. Map - like arrays, except that the subscripts can be non-integral. Objection - like UNIX software signals. Path - facilities for manipulating UNIX path names and UNIX search paths. Pool - optimise memory allocation. Regex - regular expressions. Set - including Sets, Bags, and pointer sets. Stopwatch - for timing critical sections of code String - variable-length character strings. Strstream - iostreams for Strings. Symbol - efficient symbol table handling & sorting. Time - Time, Duration (time difference) and Place (geographical location). Also included are the following tools : c++filt - demangles C++ names in standard input. dem - demangles C++ names in an argument list. demangle - demangles C++ names in a.out for easier debugging. fs - a tool and library to help find freestore bugs. g2++comp - compiles G2++ record definitions. hier - displays the inheritance hierarchy in a program. incl - displays the hierarchy of include files used in a program. publik - displays the public interface of a class. For product, sales, and licensing information about the source version of C++ Standard Components: Novell, Inc. 2180 Fortune Drive San Jose, CA 95131 attn: Larry Bouffard phone: 408-577-7983 e-mail: larry_bouffard@novell.com --------------------------------------------------------- Booch Components Rational markets the C++ Booch objects which are a somewhat bizarre, but possibly quite innovative, set of library objects. It appears quite complete (unless you have some specific, uncommon needs); Booch may have an edge in supporting concurrency. USL may have more installations and greater maturity. Rational OO products 408-496-3700 --------------------------------------------------------- StarView - A Portable C++ Class Library for Graphical User Interfaces StarView is a portable C++ Class Library for Graphical User Interfaces. StarView is one of the major parts of our total Object Oriented programming environment (we call it SOLAR system). - portability between the operating systems MS-DOS, OS/2, Macintosh and different UNIX flavours - at least portable between the GUI's MS-WINDOWS, MS-Presentation Manager, MacApp and OSF/Motif - fulfillment of the requirements of the different GUI Style Guide's - data exchange and direct communication between the applications in homogeneous and heterogeneous networks (groupware approach) StarView will support the following GUI's / Compilers: Windows 3.x Borland C++ Zortech C++ Presentation Manager Zortech C++ OSF Motif Sun C++ Zortech C++ Glockenspiel C++ Macintosh MPW C++ Author: Andreas Meyer, STAR DIVISION STAR DIVISION GmbH Andreas Jahnke Sachsenfeld 4 D-20097 Hamburg Germany Phone: ++49 40 23646 500 Fax: ++49 40 23646 550 Email: svinfo@stardiv.de Star Division 2180 Sand Hill Road, Suite 320 Menlo Park, CA 94025 (800) 888-8527 (415) 233-0142 (fax) svinfo@starlab.uucp --------------------------------------------------------- Open Dialogue HP/Apollo --------------------------------------------------------- MacApp (application development toolkit) Apple --------------------------------------------------------- ICpak101, ICpak201 Stepstone --------------------------------------------------------- NeXTStep (application development toolkit) NeXT --------------------------------------------------------- CommonView (Iconic user interface) Glockenspiel --------------------------------------------------------- CommonView Glockenspiel This is a C++ UI library. In addition, it comes with container classes. The down-side is that some of the features are not supported across all platforms. Computer Associates International One CA Plaza Islandia, NY 11788 (516) 342-2308 (516) 342-6947 (fax) --------------------------------------------------------- Galaxy This is a C UI library, but it's written in an object-oriented style and is type safe for C++ use. The package includes a WYSIWYG GUI builder. The tools are, reportedly, pretty full-featured. User-interface items have extensive abstraction (for example, they have a confirmation-type dialog that resolves to a push-pin and 'apply' button under openlook, but 'ok', 'apply', 'cancel' buttons under motif). Objects can be positioned relative to each other (rather than merely absolute position on the screen). Also, errors are handled with an abstract exception handling framework. They support internationalization of fonts (at least Japanese), money, and data formatting. Some extra-cool features include memory leak detection and C-language objects for text (multi-styled, multi-font text with embedded graphics), list (spreadsheet-like for handling up to 2^31 x 2^31 cells with customizable displays), and graphics processing. Visix 11440 Commerce Park Drive Reston, Virginia 22091 (800) 832-8668 (703) 758-2711 galaxy@visix.com --------------------------------------------------------- Guild This is a C-language UI library, but they're type-safe for C++ compatibility. The package includes a GUI builder and an event occurrence monitor. Additional features in the library includes support for international character sets, portable file system support and nifty C-language classes for pie-charts, 3d bars, x-y plots, and the like. OPTIONS: Graphic Modeling $995 Oracle Database Bridge $395 ODBC Database Access $495 Guild 1710 S. Amphlett 2nd Fl. San Mateo, California 94402 (415) 513-6650 (415) 349-4908 (fax) --------------------------------------------------------- MainWin Machine Independent Software --------------------------------------------------------- ObjectViews I believe this is a commercial version of InterViews. Quest Windows --------------------------------------------------------- Open Interface Version 3.0 This is a C-based UI library, but type-safe for C++ compatibility. The software also comes with a WYSIWYG GUI builder. They include tons of extra widgets like business graphics (bar, pie, and line charts), images (all standard formats), and hypertext help. Other software in Open Interface includes international character support, multi-font support, full printer support, memory management, file I/O support as well as Windows DDE support (the latter is, of course, non- portable). They also have a product called Nexpertobject, which is an expert systems tool intended for GUI development. Neuron Data 156 University Avenue, Palo Alto, California 94301 (800) 876-4900 (415) 321-4488 --------------------------------------------------------- Wind/U-MFC Wind/U-MFC - A Unix version of the popular Microsoft Foundation Classes shipped with Visual C++ (a 16-bit MFC 2.5 and a 32-bit MFC 2.1). Bristol Technology Inc. 241 Ethan Allen Highway Ridgefield, CT 06877 USA phone: (203) 438-6969 fax: (203) 438-5013 email: info@bristol.com URL: http://www.bristol.com --------------------------------------------------------- WNDX WNDX 1550 8th Street S.W. Suite 305 Calgary, Alberta Canada T2R 1K1 (403) 244-0995 --------------------------------------------------------- XVT Portability Toolkit This is a C-language library of functions (although, you can pay extra for C++). They have a WYSIWYG GUI builder, but they charge for that, too. OPTIONS: C++ capability $200 XVT-Design (a WYSIWYG GUI builder) $1200 ($2900 for non-PC UNIX) Source Code (call) XVT Software Incorporated 4900 Pearl East Circle Box 18750 Boulder, CO 80308 (800) 678-7988 (303) 443-4223 (phone) (303) 443-0969 (fax) info@xvt.com --------------------------------------------------------- zApp Developer's Suite V2.2 The zApp Developer's Suite is a set of libraries and a designer containing over 300 object classes that provide GUI and other capabilities. It is the single solution to the problem of quickly writing commercial quality applications that run on multiple platforms. The zApp Developer's Suite consists of zApp, the industry leading C++ application framework; zApp Factory, a visual designer and code generator for the zApp environment; and the zApp Interface Pack, a set of powerful custom controls for zApp. Applications generated using the zApp Developer's Suite are single source portable to Windows, Win32 (Windows NT, NT on the DEC Alpha, and Chicago), DOS Text, DOS Graphics, OS/2 and X/Motif (Sun Solaris 2.x, Sun SunOS 4.1.x, IBM RS/6000 AIX, HP HPUX 9.x, SCO UNIX, SGI IRIX 5.2, Unixware and Sun Solaris x86.) The software comes with about 2500 pages of documentation and complete on-line help. It costs between $1,000 and $5,000 per developer, depending on the platforms needed. Inmark 2065 Landings Drive, Mountainview, CA 94043 (800) 3-inmark (415) 691-9000 (415) 691-9099 (fax) sales@inmark.com --------------------------------------------------------- Zinc V4.1 This is a full C++ class library that comes with the Zinc Designer (a WYSIWYG GUI builder). Their classes include some graphic capabilities, a rather nice error system, and a portable, if rudimentary, help system. Also included is the source for the library (and for the Designer!). In addition to the usual GUI stuff, Zinc also provides international character support (an extended version, for extra bux, is in the works), some container classes, and filesystem portability. They also allow you to incorporate platform-specific stuff (e.g., system messages) into their API; but, of course, you're on your own when it comes to porting any additions. The main new feature for 4.1 is object persistence. ZINC Software Incorporated 405 South 100 East 2nd Floor Pleasant Grove, UT 84062 (800) 638 8665 (801) 785-8900 (801) 785-8996 (fax) (801) 785-8997 (bbs) tech@zinc.com http://www.zinc.com --------------------------------------------------------- OpenUI is another GUI builder This interface supports C, Pascal, and (ish) COBOL. Open Software Associates P.O. Box 3599 Sunnyvale, CA 94088-3599 (408) 730-2626 --------------------------------------------------------- NetClasses++, C++ classes for message passing environments: NetClasses is a set of C++ class libraries that is organized as an object- oriented software toolkit for distributed, message-passing based programming. Facilities include : Transporting objects over a network. NetClasses can transport: Arbitrary C++ objects derived from PostModern's TransObject class, arbitrary NIH- derived objects, and NetClasses Typed Objects. NetClasses Typed Objects provide an object-oriented data transport in which the structure and organization of objects is specified externally in configurable files using a simple, programming language independent abstract syntax notation, the NetClasses Abstract Syntax Notation (NASN). Remote method invocations (RMI). Using RMI, an application on machine B can invoke a method on machine A. RMI makes fault tolerance and connection management transparent to the application programmer. The RMI layer is built on top of the distributed services package that is described below. Reading and writeing all three varieties of NetClasses-transportable objects on streams using machine-independent external representations. Currently available on Sun SPARC; currently testing on HP workstations. NetClasses Development License $1995 NetClasses Runtime License $495 NetClasses Source Code License $7995 (includes 3 runtime licenses) NetClasses training class $2000 NetClasses consulting and porting services (ask for quote) Qualix Group 1900 S. Norfolk St. Suite 224 San Mateo, CA 94403 info@qualix.com 1-800-245-UNIX (voice) (415) 572-1300 (fax) (415) 572-0200 (voice) --------------------------------------------------------- Aspect This is a C library, though they're type safe for C++ compatibility. A GUI builder is provided with the library. They're coming out with a C++ class library soon. OPEN Inc. 655 Southpointe Court, Suite 200 Colorado Springs, CO 80906 (719)527-9700 (sales, customer service, tech support) (719)576-3835 (fax) --------------------------------------------------------- C++/Views 3.0.5 Cross-platform C++ class library designed for use by experienced commercial C++ developers. Originally written in Smalltalk, it was rewritten in C++ to provide greater performance and also to appeal to a greater number of developers. Includes the following features; o Cross-platform object-browser o GUI Painter o Portable Resource Files o Persistent Object Support o Fully portable o Available on MS-Windows, MS-Windows NT, OS/2, and Unix Motif o Supports Visual C++, Borland C++, Symantec, IBM C-Set, Sparcworks Available on a per user, per platform basis, $995. Full support is available. For more product information, contact peter_ambrose@intersolv.com General Addresses Internet : idsinfo@intersolv.com Web Page : http://www.intersolv.com USA / Canada INTERSOLV, Inc. 9420 Key West Avenue Rockville MD 20850 Tel. 800 547 4000 Fax. 301 838 5064 Europe INTERSOLV, Ltd Abbey View Everard Close St Albans, Herts AL1 2PS Tel. +44 (0)1727 812 812 Fax. +44 (0)1727 869 804 --------------------------------------------------------- Presentation Services Manager UI library No WYSIWYG GUI builder exists, but they do include a script language. Lancorp Pty Ltd 33 Nott St Port Melbourne 3207 Australia +61 3 646 7100 (phone) +61 3 646 8610 (fax) --------------------------------------------------------- ILOG C++ Software Components ILOG VIEWS 2:C++ library and editor to design Very Graphical User Interfaces ILOG VIEWS 2 high-level C++ class library is fully extensible and portable across Windows, OS/2, and Unix platforms. It includes: - portable resources, event management, and PostScript support - a portable multi-look gadget library - extensive 2D graphic object library including charts and gauges - PowerObjects such as graph layout, spreadsheet, and Gantt chart - management of multiple views & layers (for cartographic applications) - double buffering, infinite undo, zooming, and other editing operations The development of portable VGUI applications is accelerated through ILOG PowerEdit, an extensible VGUI builder that generates standard C++ code. PowerEdit reusable components are provided with ILOG VIEWS 2 so that developers can create and distribute their own custom editors. ILOG VIEWS 2 Dynamic Variable mechanism offer an interpretor for writing C formulae between variables to control the attributes of objects. This allows for code-free animation and control of graphics objects. ILOG VIEWS 2 provides a message translation mechanism so that messages used in the interfaces may be translated dynamically. The look and feel of ILOG VIEWS 2 applications can be changed dynamically from Motif to Windows on all platforms. Platforms: DEC OSF/1, HP, IBM, Silicon Graphics, and Sun workstations (both SunOS and Solaris) as well as on PCs running Microsoft Windows 3.1, Windows NT, and OS/2 Presentation Manager. Demonstration CD-ROM available upon request. ILOG BUILDER: is a GUI builder that generates OSF/Motif interfaces in C and C++. It offers UIL read/write capabilities and tight integration with ILOG VIEWS. ILOG DB LINK: is a C++ library to connect RDBMS such as Sybase, Oracle, Ingres, Informix, or SQLBase to C++ applications. ILOG SERVER: C++ object server implementing real-time groupware applications ILOG SERVER is a C++ library and preprocessor for building reactive servers of C++ objects. It offers a client-independent external abstraction of the data, which ensures the coherence of the shared objects. Each client: - has its own API (Application Programming Interface) - only has to be concerned with the objects it manipulates - does not have to worry about other clients sharing the same objects ILOG SERVER is an extension of the SmallTalk Model View Controller (MVC) architecture to manipulate custom C++ objects instead of fundamental data types. Developers describe object models by annotating their header files using about 15 predefined keywords. Once the header files have been annotated, ILOG SERVER's C++ preprocessor automatically generates the appropriate C++ code. By extending the notion of a C++ pointer as a data member, ILOG SERVER makes it possible to easily build relationships with cardinalities between C++ classes that will automatically be maintained. This extension to C++ supports inheritance and relationships based on smart pointers. Platforms: DEC OSF/1, HP, IBM, Silicon Graphics, and Sun workstations (both SunOS and Solaris) Cost: $5,000 per Unix-based development license. Preferred university rates available upon request. Demonstration CD-ROM available ILOG BROKER: C++ library and preprocessor that extend the C++ language to transparently support Distributed Object Computing environments. Developers can make any existing linked C++ application distributed, by minimally changing their header files. A set of about 15 keywords enable ILOG BROKER's preprocessor to generate standard C++ code. Once the header files have been annotated, the preprocessor automatically generates the C++ source code to build the distributed application. Communication between objects is performed through the use of local surrogates calling methods on the real implementation objects across a network. The current implementation relies on RPC for the transportation layer. ILOG BROKER annotations have also been designed to generate IDL code for CORBA 2 specifications. ILOG BROKER does not impose the use of a dedicated server. Each object in the distributed application can be both a client and a server to and for other objects, therefore providing a true peer-to-peer programming tool. Platforms: DEC OSF/1, HP, IBM, Silicon Graphics, and Sun workstations (both SunOS and Solaris) Cost: $5,000 per Unix-based development license. Preferred university rates available upon request. ILOG SOLVER: is a C++ constraint reasoning library for solving complex resource management problems such as scheduling, configuration, and planning. ILOG SCHEDULE: is an add-on library to ILOG SOLVER dedicated to solving scheduling problems. ILOG RULES: is a C++ tool for data monitoring in real-time environments. ILOG RULES embeddable inference engine applies rules directly on native C++ application objets. ILOG TALK: is an object-oriented dynamic language offering a seamless integration with C++ class libraries. Contact: ILOG, Inc., 2005 Landings Drive, Mountain View, CA 94043, USA tel: +1 415-390-9000, fax: +1 415-390-0946, net: info@ilog.com url: http://www.ilog.fr Europe: ILOG SA, BP 85, 9 rue de Verdun 94253 Gentilly Cedex France tel: +33 1 4908 3500 fax: +33 1 4908 3510 net: info@ilog.fr Asia: ILOG Pte Ltd. 02-05 Cintech Building 3 Science Park Drive SINGAPORE 118254 tel: +65 773 06 26 fax: +65 773 04 39 net: info@ilog.com.sg --------------------------------------------------------- ImageSoft's Object/Engineering C++ class library supports simulation. The library provides a natural approach to solving discrete-event simulation problems. Modularity is reinforced by implementing the process objects as concurrent tasks. Support is provided for dynamic systems; transaction operators; transaction messages; as well as queuing network thread with polymorphic scheduler (timer for discrete-event simulation; tracer for simulation run; processes in discrete-event simulation with services delay; conventional/unconditional blocking, pre-emption, etc.; shared queues/links in network with LIFO, FIFO & arbitrary queuing discipline; producing node and source; consuming node and sink; generic queuing network nodes and servers. And full source code is provided together with extensive documentation, examples and tutorial. There are also an enourmous number of other class libraries included with source that are of interest to the scientific and engineering community. ImageSoft Inc. 2 Haven Avenue Port Washington, NY 11050 (516) 767-2233 (516) 767-9067 (Fax) (516) 767-9074 (BBS) email: mcdhup!image!object --------------------------------------------------------- POET : Object Oriented Database POET runs on the SPARC, NeXT, DOS, MS-Windows, Novell, OS/2, and Macintosh. Other ports are in the works. Pricing starts at about $500. 00 for the DOS version, to a little over $1000.00 for the Unix versions. BKS Software One Kendall Square Suite 2200 Cambridge, MA 02139 Phone: 617 / 621 7047 Fax: 617 / 621 7097 In Germany : BKS Software Guerickestr. 27 1000 Berlin 10 Germany Phone: +49 30 / 342 3066 Fax: +49 30 / 342 8413 BKS Software 4633 Old Ironsides Drive Suite 110 Santa Clara, CA 95054 Tel: 408 / 748 - 3403 Fax: 408 / 748 - 9060 European Office: BKS Software Fo_redder 12 2000 Hamburg 67 Germany Tel: +49 40 / 60 99 011 Fax: +49 40 / 60 39 851 Internet: poet@bks.de UK Office: Silicon River, Ltd. 106-108 Powis Street London, SE18 6LU England Tel: +44 81 / 317 7777 Fax: +44 81 / 316 7778 BBS: +44 81 / 317 2310 Internet: acourt@cix.compulink.co.uk --------------------------------------------------------- ORION/ITASCA - Object Oriented Database Itasca Systems, Inc. 2850 Metro Drive Suite 300 Minneapolis, MN 55425 Tel: 612-851-3158 Fax: 612 851 3157 A slightly different address from another poster ... Itasca Systems, Inc. 7850 Metro Parkway Minneapolis, Minn 55425 Tel: (612) 851-3155 Technical Contact : Doug Barry (doug@itasc.com) --------------------------------------------------------- OS Object Oriented Database O2 technology Suite 2200 1 Kendall Square Cambridge MA 02139 U.S.A. Tel: +1 617 621 7041 Fax: +1 617 577 1209 France : O2 Technology 7, Rue du Parc de Clagny 78035 Versailles Cedex France Tel: +33 1 30 84 77 91 Fax: +33 1 30 84 77 90 Email: o2@o2tech.fr Contact: Didier Plateau Email: didier@o2tech.fr --------------------------------------------------------- G-BASE/GTX (MATISSE) Object Oriented Database ODB, an Intellitic Intl Co. 238 Broadway Cambridge, MA 02139 phone: (617) 354-4220 fax: (617) 547-5420 e-mail: info@odb.com Contact: Christina Bernard, Marketing and Communications --------------------------------------------------------- OBJECTSTORE Object Oriented Database email address for their distributor in France: bchavonnet@elsa.fr Object Design Main office California address One New England Executive Park 101 El Camino Real, Suite 300 Burlington, MA 01803 Menlo Park, CA 94025 Tel: 617-270-9797 (415) 327 - 5191 Fax: 617-270-3509 UK Office: Object Design (UK) Ltd. 604 Delta Business Park Welton Road Swindon Wiltshire SN5 7XP 44-793-486111 44-793-491177 (fax) --------------------------------------------------------- Objectivity/DB Object Oriented Database Objectivity/DB runs on the SPARC, as well as all sun platforms, all dec platorms (and operating systems), hp 9000 series (68k and risc), ibm risc, sgi, and some others, all in a mixed fully distributed and heterogeneous environment. Objectivity Inc. West coast East coast 800 El Camino Real 67 South Bedford Street Fourth Floor Suite 400W Menlo Park, CA 94025 Burlington, MA 01803 Tel: 415-688-8000 Tel: 617 229 5817 Fax: 415-325-0939 Fax: 617 272 0558 11050 Strathmore Dr., #316/300B Los Angeles, CA 90024 (310) 208-6117 (310) 208-5677 fax email: info@objy.com European General Manager : Remy Malan (remy@objy.com) For Germany: Dr. Matthias Frei Micram Microelectronic GmbH & Co. KG Universitatsstrabe 142 4630 Bochum Germany ph: +49 234 97 08-304 fax: +49 234 97 08-301 e-mail: frei@micram.de For Sweden, Norway, Finland and Denmark: Mr. Kjell Hegerin Norsys Technology AB Finlandsgatan 12 Box 1239 S-164 28 Kista Sweden phone: +46 8 750 75 75 fax: +46 8 703 92 72 For The United Kingdom: Valbecc Object Technology Ltd. 115 Wilmslow Road Handforth, Wilmslow Cheshire SK9 3ER United Kingdom contact: Fred Peel ph: +44 625 539903 fax: +44 625 539905 --------------------------------------------------------- ONTOS Object Oriented Database Ontologic, Inc. Three Burlington Woods Burlington, MA 01803 Tel: 617-272-7110 Fax: 617-272-8101 UK distributor: VALBECC SOFTWARE Mr. Fred Peel 115 Wilmslow Road Handforth, Wilmslow, SK9 3ER U.K. tel +44 625 539 903 fax +44 625 539 905 --------------------------------------------------------- KALA Object Oriented Database Kala(tm) is a Persistent Data Server managing distributed, shared, arbitrarily complex and evolving persistent data. Kala is highly efficient and secure. Kala manages the visibility of persistent data elements to its clients, thus supporting any types of transactions, versions, access control, security, configurations. Kala does not restrict you to any particular model. Kala provides the mechanism, but imposes no policy. o Kala is available now on Sun platforms (SunOS / 68K & SPARC). A 80x86/DOS version is now available to alpha and early beta sites. Ports to Windows and MacOS are also likely in the near future. Any port is possible as NRE. o Kala's interface is ANSI C, also callable from C++. Penobscot Development Corporation 50 Princeton Road Arlington, MA 02174-8253 USA Tel: +1-617-646-7935 Fax: +1-617-646-5753 Contact: Sergiu S. Simmel Email: sss@world.std.com Information: kala-request@world.std.com --------------------------------------------------------- IDB Object Databases Persistent Data Systems P.O. box 38415 Pittsburgh, PA 15238-9929 Tel: 412-963-1846 Fax: 412-963-1843 --------------------------------------------------------- GEMSTONE Object Oriented Database Briefly, GemStone is a full featured OODBMS with transaction control, multiple users, multiple platforms supported, client server architecture, active objects (ie, behavior can occur in the database as well as in the application using it), multiple language support, etc. GemStone is actually quite a bit more than just a data repository - it is a full-fledged DBMS that is pure OO. You can access the same database just as easily from C, C++, or SmallTalk, or you can build entire database applications inside the database server, because it is an active server that runs methods written in our DML, OPAL, which is a dialect of SmallTalk. There are also high-level tools to aid application building. Servio Corporation 950 Marina Village Parkway Suite 110 Alameda CA 94501 Tel: 510-814-6200 Tel: 800-243-9369 Fax: 510-814-6227 Contact : marcs@slc.com UK Office: Servio-UK Ltd Criterion House Beauchamp Court Victors Way Barnet EN5 5TZ England Tel: (81) 447-0800 --------------------------------------------------------- VERSANT Object Oriented Database Versant markets a full-function OODBMS together with associated DBA and application developer tools. Versant is currently available on Sun-3, Sun-4, IBM RS/6000, HP 9000/400,700, DEC Ultrix, SGI, NCR, NeXT and Sequent platforms. An OS/2 port has just been released. Other platforms will be announced soon. A Windows/NT port is in progress. Interfaces to 'C', 'C++' and Smalltalk-80 are supported. Versant Object Technology 4500 Bohannon Drive Suite 200 Menlo Park, CA 94025 Attn: Mike Mooney Tel: 1-800-VERSANT Tel: (415) 329-7500 Fax: (415) 325-2380 Tel: 415-325-2300 Fax: 415-325-2380 Contact: Mary Foussourier Email:info@versant.com, Email:info@osc.com Email:aflynn@osc.com European Office: Versant Europe Siriusdreet 2 P.O. Box 333 2130 All Hoofddrop The Netherlands Tel: (31) 2503-66373 Tel: +31 - (0)2503 - 66851 Fax: +31 - (0)2503 - 66855 UK Distributor: Admiral Software Ltd Admiral House 193-199 London Road CAMBERLEY Surrey GU15 3JT. Tel: 0276 692269 Contact: Kevin Adams Contact: Clive Harris --------------------------------------------------------- M++ M++ isn't as well known as the RogueWave math.h++ libraries, but it has been around for many years. It has a number of features that distinguish it from the RogueWave classes, notably improved handling of temporaries. M++ was explicitly designed to provide the functionality of an array language like Matlab or Gauss and it contains the Linpack, Eispack stuff found in RogueWave's Linpack.h++. Dyad Software, also sell modules written in M++ for doing statistical work, including linear and nonlinear least squares estimation, as well as optimization, numerical integration, and differential equations. Dyad Software 6947 Coal Creek Pkwy, Suite 361 Renton, WA 98059-3159 206-637-9426 (voice) 206-637-9428 (fax) 206-271-9486 (bbs) --------------------------------------------------------- Greenleaf Comm++ Comm++ is an synchronous RS-232 communications library that provides interrupt-driven, circular buffered service for 35 ports at baud rates to 115,200 baud. Classes are provided for: serial port controls, modem controls, file transfer protocols and calculation of check values. Features include: XMODEM, YMODEM, ZMODEM, CompuServe B+, Kermit and ANSI file transfer support XON/XOFF, RTS/CTS flow control Support for Novell's NASI interface VT52 and VT100 (subset) terminal emulation support 286/386 Dos extender support Operating Systems supported: MSDOS, Microsoft Windows, Windows NT, Win32s, Windows 95 and OS/2 Compilers Supported: Visual C++, Borland C++, Symantec, WATCOM, IBM C/Set++, Borland C++ for OS/2 The price is $279 and this includes full source code. There are no royalties when distributed in executable format. Greenleaf Software, Inc. 16479 Dallas Pkwy. STE 570 Dallas, TX 75248 (214)248-2561 (800)523-9830 (214)248-7830 FAX (214)250-3778 BBS http:\\www.gleaf.com\~gleaf.com email: info@gleaf.com --------------------------------------------------------- Greenleaf ArchiveLib C/C++ library for data compression/archiving. Greenleaf ArchiveLib provides the developer a set of classes and functions to compress and store ASCII and binary data into an archive for storage, as well as to retrieve and expand the stored data from the archive. Features include: PKZip 2.0x archive support - insert, extract, delete, list and more 3 compress and decompress engines: PKZip 2.0x compatible Greenleaf engine: lossless, dictionary-based Copy engine as alternative for small files Portable data compression engines are fast and efficient Progress meter & message classes Functions to add, replace, delete, update and retrieve objects of compressed data within the archive Operating Systems Supported: MS/DOS, Windows 3.x, Windows NT, Win32s, Windows '95, OS/2 Compilers Supported: Visual C++, Borland C++, Symantec, Watcom, Borland C++ for OS/2, IBM C/Set++ The price is $279 and this includes full source code. There are no royalties when distributed in executable format. Greenleaf Software, Inc. 16479 Dallas Pkwy. STE 570 Dallas, TX 75248 (214)248-2561 (800)523-9830 (214)248-7830 FAX (214)250-3778 BBS http:\\www.gleaf.com\~gleaf.com email: info@gleaf.com --------------------------------------------------------- Other Commercial sources of C++ code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --------------------------------------------------------- The USL UNIX Toolchest is an electronic catalog for browsing and ordering source software. This catalog provides unsupported software products, developed within AT&T, for the commercial UNIX world. As you browse through the online catalog, you'll find descriptions of all the tools, complete with information on memory and disk requirements, documentation, and license fees. United States and Canada, may access the Toolchest by dialing 1-908-522- 6900(e-7-1) and logging in as "guest". Note : The USL UNIX Toolchest is no longer marketed by USL or Novell; it has reverted back to AT&T. The only contact info I have for it is the US number 800-462-8146, option #2. --------------------------------------------------------- Checkout the ISCL CD ROM from ImageSoft, it contains the largest collection of C++ source code ever compiled in one place. It's available from ImageSoft ... ImageSoft Inc. 2 Haven Avenue Port Washington, NY 11050 (516) 767-2233 (516) 767-9067 (fax) (516) 767-9074 (bbs) email: mcdhup!image!iscl --------------------------------------------------------- This is not a code CD but it has many libraries & some code (all msdos) brought together into a CD. EMS Professional Software, Specialized Software Libraries Baker Enterprises 20 Ferro Drive Sewell, NJ 08080 Fax: 609-582-9204 Internet: rbakerpc@aol.com --------------------------------------------------------- Other places to look for details of C++ libraries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The index of resources for numerical computation in C or C++. ftp from usc.edu in pub/C-numanal/numcomp-free-c.gz --------------------------------------------------------- comp.object FAQ --------------------------------------------------------- comp.windows.misc portable-GUI-software FAQ --------------------------------------------------------- ftp.th-darmstadt.de /pub/programming/languages/C++/c++-products/* --------------------------------------------------------- ASSET is currently populating a library of reusable components and systems, and documents on software reuse, called the Worldwide Software Reuse Discovery library (WSRD, pronounced "wizard"). Included are assets in numerous languages including C++, C, and Ada. Visit our on-line catalog at http://source.asset.com/ For more information on supplying products and advertisements for the WSRD, please contact: ASSET Attn: Patrick A. Theeke P.O. Box 3305 1350 Earl L. Core Rd. Morgantown, WV 26505 e-mail: theeke@source.asset.com voice: (304) 284-9000 For more information on obtaining an ASSET account or accessing the WSRD library, please contact: ASSET Attn: Account Administrator P.O. Box 3305 1350 Earl L. Core Rd. Morgantown, WV 26505 e-mail: info@source.asset.com voice: (304) 284-9000 --------------------------------------------------------- Tools for C++ Programmers ~~~~~~~~~~~~~~~~~~~~~~~~~ This section is just here because there isn't a separate Tools FAQ yet. I'm hoping someone will volunteer to maintain one. If you don't know how to maintain a FAQ, I'm willing to help get you started. --------------------------------------------------------- Cback - Optimizes C source from the cfront C++ translator to create easy to read, smaller, faster and portable C source, while maintaining or improving compile times Improves run-time performance by: -- Minimizing object code size (especially in debug) -- Minimizing cfront output code size -- Simplifying cfront data structures and expressions Improves programmer productivity with: -- Easier to read C source from cfront output -- Portable C source from cfront output -- Faster link times, reducing the debug cycle -- Seamless integration into existing compile paths -- Availability on a broad range of Unix platforms Corporate Headquarters: 1.800.NEWCODE (1.800.639.2633) E-mail: info@newcode.com Eastern Office: NewCode Technology, Inc. Tel: 508.454.7255 650 Suffolk Street Fax: 508.454.7559 Lowell, MA 01854 Email: zeev@newcode.com Western Office: NewCode Technology, Inc. Tel: 303.416.0784 2406 Newport Court Fax: 303.416.0753 Fort Collins, CO 80526 Email: al@newcode.com ---------------------------------------------------------