Last updated: 23-Apr-92 PD6: Compilers, interpreters, cross referencers, and subroutine libraries for various programming languages. PCCTS.TAR-Z The Purdue (University) Compiler Construction Tool Set. Public domain software tools to facilitate the implementation of compilers. Is functionally similar to lex/yacc, but: generates lexer and parser from a single spec, extended BNF grammar, up and down inheritance, generates LL(1) parsers in C, includes sample grammars (e.g. Pascal). Contributor: Hank Dietz BERK-YACC.TAR-Z Berkeley Yacc, a public domain clone of AT&T UNIX Yacc. Conforms to the Yacc documentation, and generates LALR(1) parsers. Contributor: Robert Corbett PD6: Also see the SIMTEL20 ADA archives. ADAFORM.TAR-Z A filter for Ada programs to pretty-print them using Scribe. Features bold-facing of keywords, etc. Contributor: Dave Emery PD6: ASM80.TAR-Z An assembler for the Z-80 mocroprocessor. Contributor: David A. Klotzbach CROSS6502.TAR-Z Cross assembler for the 6502 microprocessor. Contributor: Eric C. Brown CROSS6809.TAR-Z Cross assembler for the 6809 microprocessor. Written in Pascal. Contributor: Jack Jansen DIS6502.TAR-Z A disassembler for the (Atari) 6502. Contributor: Robert Bond DIS68000.TAR-Z A disassembler for the MC68000. Contributor: John Collins DIS68K.TAR-Z Another MC68000 disassembler. Includes patches to make it work on Sun workstations. Contributor: Jim Turner DIS88.TAR-Z A symbolic disassembler for the Intel 8088 designed to run under PC/IX on an IBM PC/XT or clone. Compatible with the PC/IX assembler. Contributor: G. M. Harding DISASM.TAR-Z A disassembler for the MC68000 which reads COFF (Common Object File Format) binaries. Contributor: Alex S. Crain DISZ80.TAR-Z A Z-80 disassembler. Contributor: Luc Rooijakkers GENASM.TAR-Z A generic assembler for the 6502, 8085, 6803, and 6809 microprocessors. Contributor: Lyle McElhaney HP41.TAR-Z An assembler and bar code generator for the HP-41C calculator. These are Perl scripts, see PD6:PERL.TAR-Z. Contributor: Mark Biggar ZMAC.TAR-Z A Z-80 macro cross-assembler. Contributor: Colin Kelley PD6: BASIC.TAR-Z A BASIC interpreter which is a combination of Microsoft's BASIC 5 and RT-11 MU-Basic. Has been tested on PDP-11s under V6, V7, 2.8BSD and 2.9BSD, Vaxes under 4.xBSD, and Pyramid 98x under 4.xBSD. Should port to System V easily. Contributor: Phil Cockroft PD6: ALLOC.TAR-Z A clone of malloc written to replace the ones in SVr2 for the 80286. Contributor: Piercarlo Grandi ANSI-C.TAR-Z A small portable parser and lexer for ANSI C written in lex and yacc. Contributor: Shankar Unni APML.TAR-Z An arbitrary precision math library. Contributor: Lloyd Zusman ARGPROC.TAR-Z An argument-processing routine in the same vein as getopt(). Contributor: Dan Kegel ARITH.TAR-Z A uniform interface for multi-precision calculations in the rings of integers and polynomials over finite fields. Contributor: Kevin R. Coombes ARITHPARSE.TAR-Z A trivial parser for arithmetic expressions from Chapter 2 of the latest "dragon book". Contributor: Marty Fouts ARRAYALLOC.TAR-Z A set of library routines to do dynamic run-time allocation of multi-dimensional arrays. Contributor: Roy Smith BITSTRING.TAR-Z A package of library routines to provide a "string of bits" abstraction like the things you used to be able to do in PL/I. Contributor: Paul Vixie BPLUSTREE.TAR-Z A variable-length key, variable page size B+ tree library. Includes a dbm(3)-like interface. Contributor: Marcus J. Ranum BSDGETUT.TAR-Z An implementation of the getutent() routines from System V, for Berkeley UNIX. Contributor: Paul Sutcliffe Jr. BTREE1.TAR-Z An implementation of B-trees. Contributor: Richard Hellier BTREE2.TAR-Z A set of library routines to main B-trees on disk and store offsets into data files for the data. Contributor: Marcus J. Ranum C-GC.TAR-Z A general purpose garbage collecting storage allocator using algorithms from "Garbage Collection in an Uncooperative Env- ironment", H. Boehm & M. Weiser, Software Practice and Exper- ience, Sept. 1988. Contributor: Hans Boehm C-PARSER.TAR-Z A yacc definition fo a C grammar. Contributor: C-STYLE.TAR-Z A program to analyze the "style" of a C program. From CACM, Jan. 1985. Contributor: CALLS.TAR-Z A program to produce a call graph (what functions call what others) of a C program. CALLS.PATCHES contains various bug fixes. Contributor: Tony Hansen CCMD.TAR-Z A user interface package based on the COMND jsys found in TOPS-20. Has file name completion, command completion, command-line help, etc. Contributor: Howie Kaye CCS.SH A shell script to call "cc" for compiling with shared libraries on an AT&T 7300 (UNIX-PC). Contributor: Eric S. Raymond CDECL.TAR-Z A program which accepts English commands like "declare foo as pointer to int" and returns a C-language definition of "foo", e.g. "int *foo". It also goes the other way. Also understands C++ and ANSI C. Contributor: Tony Hansen CHECK.TAR-Z A syntax checker to be used in conjunction with (not as a replacement for) "lint". Contributor: Nick Crossley CHECKBITS.C A program to intuit various things about the way a machine performs its arithmetic. Contributor: Marty Fouts CLASH.TAR-Z A program to detect conflicting variable names in the first N significant characters for compilers which don't suuport the FLEXNAMES option. Contributor: Huch Redelmeir COMMAND.TAR-Z A replacement for the "system" library routine which avoids execing a shell by handling I/O redirection internally. Contributor: Rich Salz COMPLEX-ARITH.TAR-Z A library of complex arithmetic routines for C. Contributor: Doug Gwyn CONFIG.TAR-Z A set of library routines for reading configuration files. Contributor: Conrad Kwok CPROTO.TAR-Z A program to automatically generate C function prototypes and variable declarations from C language source code. Requires the "flex" lexical analyzer (see PD6:FLEX.TAR-Z). Contributor: Chin Huang CTAGS.TAR-Z A program to generate "tags" files from C programs, as well as generate cross reference listings. Contributor: Ken Arnold CURSES-WIDGETS.TAR-Z A "widget" library for curses(3X). Provides command, label, toggle, and input widgets. Contributor: Richard A. Culshaw CXREF.C A (rather unrobust) C program cross referencer. Contributor: John Fouts CXREF.TAR-Z A much more robust C program cross referencer. Contributor: Arnold Robbins DBCR.TAR-Z A program identifier database package which stores the locations of all uses of identifiers, pre-processor names, and numbers. Contributor: Greg Mcgary DBUG.TAR-Z Debugging macros for C programs. Lots of functions to log debugging information, etc. Contributor: Fred Fish DEBUG-MALLOC.TAR-Z Drop-in replacements for malloc(3), memory(3), string(3) and bstring(3) functions with debugging facilities. Contributor: Conor P. Cahill DES.TAR-Z DES library routines suitable for use with MIT's Kerberos. It was created in Finland and posted from Australia, so should in theory be entirely free of U.S. export controls. (I wouldn't test this without a lawyer present...) Contributor: Antti Louko DYNALINK.TAR-Z Library routines to perform dynamic linking (linking of subroutines at run-time). Contributor: Dave Jones DYNAMIC-HASH.C Dynamic hashing after CACM April 1988 pp. 446-457. Contributor: Esmond Pitt EGETOPT.TAR-Z An extended getopt() function for parsing command line arguments. Contributor: Lloyd Zusman EMITC.TAR-Z An inverse of the ctime(3) library routine. This routine takes a date/time string and returns the time in seconds. Contributor: Mike Marshall ET.TAR-Z An error-table library for printing errors from program. Patchlevel 1. Contributor: Jonathan I. Kamens FDECS.TAR-Z A shell script to extract ANSI C function prototype definitions for use in a .h file from C source files which contain old-style function definitions. Contributor: Michael Condict FILTER.TAR-Z A subroutin to construct filter programs like "sed", "awk", etc. It processes arguments, accepts "-" for standard input, etc. and then calls a user supplied routine to do the filtering. Contributor: Gary Perlman GDATE.C A routine to convert date strings into "struct tm" type structures. Accepts all sorts of date string formats. Contributor: Barry Shein GETLINE.TAR-Z A function to read an arbitrarily long line from a stream. Contributor: David Collier-Brown GETOPT-ATT.C AT&T's public domain release of the "getopt" function. This code was given out at the 1985 Dallas Winter USENIX Conference. Contributor: John Quarterman GETOPT.C A public domain version of the "getopt" library routine. This one strictly enforces the System V Command Syntax Standard. Contributor: Doug Gwyn GETUTMP.TAR-Z A set of library routines to read the "utmp" file much like the password file's "getpwent" routines. Contributor: Roger Levasseur HASH8.TAR-Z A program to allow old C compilers to compile programs which use long identifiers. Contributor: Geoff Kuenning IDENTLIST.TAR-Z Programs to list external definitions and identifiers in C source files. Contributor: John Rupley INDENT.TAR-Z The original version of "indent" (C program beautifier) with the changes from Berkeley and Sun, who have put their mods into the freely redistributable category. Contributor: Ozan Yigit KIFACE.TAR-Z A set of routines to allow mapping keys to return values. It allows a program to assign a return value to a key, or a string of keys, so that a single value can be checked after a set of keys is input. Contributor: Marcus J. Ranum LIBC-PROTO-H.TAR-Z ANSI prototype include files for all the libc routines. Contributor: Clarence Dold LIBENV.TAR-Z Routines for manipulating (setting and examining) environment variables. Runs on 4.xBSD; should run on System V. Contributor: David Herron LIBNDIR.TAR-Z Public domain implementation of the 4.2BSD directory routines that works on all UNIXes. Contributor: Doug Gwyn LIBNDIR-POSIX.TAR-Z A POSIX-compatible version of LIBNDIR.TAR-Z (actually just a newer version of the same code). Contributor: Doug Gwyn LIBPW.TAR-Z Routines for manipulating password and group file entries. Contributor: LINT-PROTO.TAR-Z Patches to 4.2BSD (4.3BSD or Sun can be easily done by hand) "lint" to create a prototype generator. Contributor: Jon Leech LOCALTIME.TAR-Z A System-V compatible localtime() library with enhancements to work in European timezones, etc. Will also run under Berkeley UNIX. Version 3.0. Contributor: David Olson MALLOC.TAR-Z A portable implementation of malloc. Also supports a tracing function which the author says is Sun-specific. Contributor: Mark Brader MEMLINTOK.TAR-Z A header file that can be used to politely shut lint up about casting results of memory allocation functions malloc, realloc, and calloc. It also stops complaints about the argument to free. Contributor: Bob Lewis MENU.TAR-Z A menu preprocessor. Uers construct files describing menus, and menu will display them to the user and allow him to pick items from them. Contributor: Richard Conn MKPROTO.TAR-Z A program for generating prototype declarations for all functions appearing in a C source file. The input code may be either K&R or ANSI C. Correctly handles prototype promotion. Contributor: Eric R. Smith MODEMCAP.TAR-Z A modem-independent dial(3) package with a termcap-like description file. Refer to the relevant System V manuals. Contributor: John F. Haugh MW.TAR-Z The Maryland Windows library. This is in the same vein as "curses", but has many more features. Contributor: Chris Torek PASSWDDET.C A routine to detect "obvious" passwords by examining them for English triples. Can be added to password changing programs to prevent people from picking easily guessed passwords. Contributor: John Nagle POSIX-H-TESTER.TAR-Z A program sorts through the POSIX and ANSI include files and reports missing items, additional items in the standard, additional items allowed by the standard, and items not allowed by the standard. References to the standards document are included in the report. Contributor: Barry Books PQSORT.C A version of "qsort" (Quick Sort) which claims to be faster than the library routine (although he doesn't specify which version of UNIX he means). Contributor: Duane Morse REGEXP.TAR-Z An "almost-public-domain" implementation of the V8 regular expression matching routines. Contributor: Henry Spencer SCPP.TAR-Z A selective C preprocessor which replaces macros and removes comditional code, leaving everything else the same. This is useful when trying to decipher heavily #ifdef'd code with lots of misleading macros. Contributor: Brad Needham SEARCH.TAR-Z An almost generic search table routine using binary search. Generates a search table, and then looks things up in it using 32-bit keys. Contributor: Chris Torek SETENV.TAR-Z A routine to maintain a list of environment variables for passing to other programs. Contributor: Maarten Litmaath SIMILARITY.TAR-Z A program to detect stretches in C programs that are similar or just plain identical. Useful for locating "borrowed" code, etc. Contributor: Dick Grune SKIPLISTS.TAR-Z A C implementation of skip lists as described in the June 1990 Communications of the ACM. Contributor: Bill Pugh SMALL-C.TAR-Z Ron Cain's original Small-C compiler, but highly extended. Included are code generators for the 8080, 6809, 68000, and Vax. Run-time support for 8080 CP/M, Flex 6809, and Vax 4.1BSD are also included. Contributor: Chris Lewis SMAP.TAR-Z Safe Memory Allocator Package. A wrapper around malloc, calloc, realloc and free to check that they behave themselves. Contributor: Allistair G. Crooks SPLAYTREE1.TAR-Z A library for working with splay trees as described in Tarjan's ACM Turing Lecture. Usable for symbol tables and the like. Contributor: Dave Brower SPLAYTREE2.TAR-Z Another implementation of splay trees, this one from "Application of Splay Trees to Data Compression", CACM August 1988. Contributor: Bodo Rueskamp STRINGS.TAR-Z A public domain strings package containing all the various string manipulation routines C programmers are used to. Contributor: Larry Campbell STRSED.TAR-Z A function which does regular expression search and replace like the ed/edit/ex editors, as well as tr(1)-like transliteration, in a string. Contributor: Terry Jones STRSTR.TAR-Z An implementation of the strstr() (find substrings in a string) function which uses a modified version of the quick search algorithm described in CACM V33 N8. Contributor: Doug Gwyn STRTOD.TAR-Z An implementation of the strtod() (string to double) function. Contributor: TIMER.TAR-Z Various routines to do delta time computations. Contributor: Gregg Wonderly TRIGRAPH.TAR-Z Programs which implement trigraphs as specified in the ANSI C draft standard. Trigraphs are an alternate way of writing certain characters. This archive contains two programs; one to do trigraphs-to-ascii, and one to do the reverse. Contributor: John P. Nelson UFORMAT.TAR-Z A routine to do formatting such as that done by database report generators. Contributor: Brandon Allbery UNCTIME.TAR-Z A "yacc" parser for times and dates to return date strings in UNIX time format. Contributor: David MacKenzie UNIDESK.TAR-Z UniDesk is a desktop user interface library package for UNIX systems with ASCII terminals. Contributor: Ben Konig VSPRINTF.TAR-Z Portable versions of vprintf, vfprintf, vsprintf. Contributor: Robert A. Larson VSTR.TAR-Z A dynamic strings package. Contributor: Jordan K. Hubbard XCP.TAR-Z A program to convert long C variable names to short ones (i.e. to "de-flexname" them) for C compilers without FLEXNAMES. Contributor: Mark Mendel XRAND.TAR-Z A random number generator based on the linear congruential and additive congruential methods. Contributor: Andreas Nowatzyk PD6: ET.TAR-Z[1-3], ETMAN.TAR-Z ET++ is a homogeneous object-oriented class library integrating user interface building blocks, basic data structures, and support for object input/output with high level application framework components. Works with AT&T C++, SUN C++ 2.0, and G++. ETMAN.TAR-Z is the documentation for the library. Version 2.2. GENMAN.TAR-Z A program to generate documentation about a C++ class from the include and source files. Version 2.0. Contributor: Bob Mastors INTERVAL.TAR-Z An interval arithmetic package. Contributor: Dan.McCue@newcastle.ac.uk LEDA.TAR-Z Library of efficient data types and algorithms. Version 2.1. SILO.TAR-Z Routines to build event-based discrete event simulations. See "Simulating Computer Systems: Techniques and Tools" by M. H. MacDougall. Contributor: S. Manoharan PD6: C-FORTH.TAR-Z A C-language implementation of figFORTH. Has been tested on PDP-11s under 2.9BSD, Vaxes under 4.2BSD, and Vaxes under EUNICE 3.0. Requires 32-bit ints and 16-bit shorts. Contributor: Allan Pratt VAX-FORTH.TAR-Z An implementation of FORTH (called VFORTH) for Vaxes under 4.2BSD. Uses subroutine-threading and in-line code to improve speed. Contributor: Andy Valencia PD6: F2C.TAR-Z A Fortran to C translator developed by folks from Bell Labs, Bellcore, and CMU. Derived from the original UNIX f77(1). Converts ANSI standard Fortran 77 to C without manual intervention. Can generate ANSI C or C++ compatible code as well. Runs on Sun, Vax, IBM RT, Apollo, SGI, MIPS, and Crays. Has been verified on the NBS tests, several large math libraries, floating point tests, etc. Contributor: Mark Maimone FLOPPY.TAR-Z A Fortran coding convention checker and code tidier. Understands F77, supports 44 different coding conventions. Runs under VMS, VM/CMS, and UNIX. Written in Fortran. Contributor: Julian Bunn FXREF.TAR-Z A linkage map generator and a cross reference generator for FORTRAN-77 programs. Contributor: Bill Silvert PREP.TAR-Z A preprocessor which supports macros, flow control extensions, vector statement shorthand, and automatic loop unrolling for certain classes of loops. Contributor: Roger Ove PSDRAW.TAR-Z Library routines to generate PostScript drawings from FORTRAN. Contributor: B. Narasimhan RATFOR.TAR-Z A public domain implementation of RATFOR (RATional FORtran). Generates FORTRAN-77, unlike UNIX "ratfor" which generates FORTRAN-66. Contributor: Ozan Yigit PD6: FP.TAR-Z A C implementation of Backus' Functional Programming language. This one closely follows the syntax of the one distributed with 4.3BSD (which is close to Backus' syntax). Contributor: Andy Valencia FPC.TAR-Z A compiler for Backus' Functional Programming language. It translates FP to C, which you can then compile. Contributor: Edoardo Biagioni IFP.TAR-Z A variant of Backus' Functional Programming language. Should run under any UNIX. Written in C. Contributor: Arch D. Robison PD6: The Version 7.0 Icon language distribution for UNIX from the University of Arizona. Icon is a high-level, general-purpose programming language with extensive facilities for handling strings and lists. In some senses it is the sucessor to SNOBOL4, and was devleoped by the same people. See the file README.TXT for a description of what the files in this directory contain. Contributor: Gregg Townsend PD6: ELK.TAR-Z A Scheme interpreter intended to be used as a general extension language. Can also be used as a stand-alone implementation of Scheme. Version 1.0. Contributor: Oliver Laumann XLISP.TXT-Z The Xlisp reference manual. For version 2.0 of Xlisp. Contributor: Tim I. Mikkelsen XLISP.TAR-Z Xlisp version 2.1. Runs on PCs under MegaMax C, Aztec C, Lattice C (Amiga). There are implementations for VMS, UNIX, MS-DOS, MC68000, Atari ST, Amiga, and Macintosh. Contributor: Gary Murphy PD6: LOGO-MAKEHELP.TAR-Z A different "makehelp" for Logo (below). Contributor: Brian Harvey LOGO.TAR-Z A LOGO interpreter. Has been tested on PDP-11s under V7 and Vaxes under 4.xBSD. Includes interfaces for many popular graphics terminals as well as the floor-turtle through a DW-11 Unibus device. Contributor: Brian Harvey MUSIC-LOGO.TAR-Z Dragon curves with music. Contributor: Gerald Edgar PD6: PRETTYPRINT.TAR-Z A pretty printer written in Modula-2. Contributor: Ken Yap PD6: OCCAM.TAR-Z A yacc/lex specification for OCCAM and OCCAM2. Contributor: Peter Polkinghorne PD6: OPS5.TAR-Z OPS5 in Common Lisp. Apparently it runs under lots of different Common Lisps; you'll have to look and see if yours is there. I think it runs on micros and stuff as well. Contributor: Eric Van Tassell PD6: ISO-PASCAL.TAR-Z Public domain "yacc" and "lex" grammar for ISO level 0 Pascal. Contributor: Arnold. D. Robbins KAREL.TAR-Z An interpreter for the Karel language as described in "Karel the Robot" by Richard E. Pattis. Intended as a gentle intro to Pascal. Contributor: Jan Miksovsky P2C.TAR-Z A Pascal to C translator. Understands HP, partial Turbo, and other Pascal dialects. Runs on at least HPs and Suns. Version 1.14. Contributor: Dave Gillespie PSTRINGS.TAR-Z An unbounded-length strings package for ISO Level 1 PASCAL. Will run under Sun PASCAL, but will NOT run under Berkeley "pc", according to the author. Contributor: Ian Cottam PTOC.TAR-Z A Pascal to C translator. It is written as a single huge Pascal program, although the "ptoc" translation to C is also provided. Contributor: Per Bergsten SOFTWARE-TOOLS.TAR-Z An implementation of the routines from "Software Tools in Pascal", by Kernighan & Plaugher. Should run under Berkeley Pascal; the text indicates it should run under VS/PASCAL on VM/CMS and MVS, also. Contributor: James Potter TURBO-TOOLS.TAR-Z Another implementation of K&P's "Software Tools in Pascal", this one for Turbo Pascal 3.0 under CP/M-86. The comments imply it should run under MS/DOS as well. Contributor: Chris Lewis PD6: PTAGS.TAR-Z A "tags" utility for Prolog. Contributor: Chriss Tweed PD6: SMALLTALK.TAR-Z Release 2.02 of the Little Smalltalk system. It's not Smalltalk-80 or Smalltalk-V. It is described in the book "Little Smalltalk" by Timothy A. Budd, from Addison-Wesley. Contributor: Timothy A. Budd PD6: SR (Synchronizing Resources) is a programming language which allows the writing of distributed programs, either distributing them on one machine or on several. This implementation comes from the SR Project at the University of Arizona, and runs on VAX 8650 under 4.3BSD/MtXinu, Sun 3/140 under SunOS3.4, Sun 2/120 under SunOS 3.4, and the Encore Multimax under UMAX. Version 1.1. SR.TAR-Z The SR programming language, including doumentation, checkout programs, and examples. VS.TAR-Z Extended verfication suite. You only need this if you are modifying the system or porting to a new architecture.