Directory UNIX_C/LANGUAGS Compilers, interpreters, cross referencers, and subroutine libraries for various programming languages. PCCTS.TAR 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 BERKYACC.TAR Berkeley Yacc, a public domain clone of AT&T UNIX Yacc. Conforms to the Yacc documentation, and generates LALR(1) parsers. Contributor: Robert Corbett Directory UNIX_C/LANGUAGS/ADA Also see the SIMTEL20 ADA archives. ADAFORM.TAR A filter for Ada programs to pretty-print them using Scribe. Features bold-facing of keywords, etc. Contributor: Dave Emery Directory UNIX_C/LANGUAGS/ASEMBLER ASM80.TAR An assembler for the Z-80 mocroprocessor. Contributor: David A. Klotzbach CROS6502.TAR Cross assembler for the 6502 microprocessor. Contributor: Eric C. Brown CROS6809.TAR Cross assembler for the 6809 microprocessor. Written in Pascal. Contributor: Jack Jansen DIS6502.TAR A disassembler for the (Atari) 6502. Contributor: Robert Bond DIS68000.TAR A disassembler for the MC68000. Contributor: John Collins DIS68K.TAR Another MC68000 disassembler. Includes patches to make it work on Sun workstations. Contributor: Jim Turner DIS88.TAR 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 A disassembler for the MC68000 which reads COFF (Common Object File Format) binaries. Contributor: Alex S. Crain DISZ80.TAR A Z-80 disassembler. Contributor: Luc Rooijakkers GENASM.TAR A generic assembler for the 6502, 8085, 6803, and 6809 microprocessors. Contributor: Lyle McElhaney HP41.TAR An assembler and bar code generator for the HP-41C calculator. These are Perl scripts, see UNIX_C/UTILS/PERL.TAR. Contributor: Mark Biggar ZMAC.TAR A Z-80 macro cross-assembler. Contributor: Colin Kelley Directory UNIX_C/LANGUAGS/BASIC BASIC.TAR 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 Directory UNIX_C/LANGUAGS/C ALLOC.TAR A clone of malloc written to replace the ones in SVr2 for the 80286. Contributor: Piercarlo Grandi ANSI_C.TAR A small portable parser and lexer for ANSI C written in lex and yacc. Contributor: Shankar Unni APML.TAR An arbitrary precision math library. Contributor: Lloyd Zusman ARGPROC.TAR An argument-processing routine in the same vein as getopt(). Contributor: Dan Kegel ARITH.TAR A uniform interface for multi-precision calculations in the rings of integers and polynomials over finite fields. Contributor: Kevin R. Coombes ARITHPRS.TAR A trivial parser for arithmetic expressions from Chapter 2 of the latest "dragon book". Contributor: Marty Fouts ARAYALOC.TAR A set of library routines to do dynamic run-time allocation of multi-dimensional arrays. Contributor: Roy Smith BITSTRNG.TAR 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 BPLUSTRE.TAR A variable-length key, variable page size B+ tree library. Includes a dbm(3)-like interface. Contributor: Marcus J. Ranum BSDGETUT.TAR An implementation of the getutent() routines from System V, for Berkeley UNIX. Contributor: Paul Sutcliffe Jr. BTREE1.TAR An implementation of B-trees. Contributor: Richard Hellier BTREE2.TAR 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 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 A yacc definition fo a C grammar. Contributor: C_STYLE.TAR A program to analyze the "style" of a C program. From CACM, Jan. 1985. Contributor: CALLS.TAR 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 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 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 A syntax checker to be used in conjunction with (not as a replacement for) "lint". Contributor: Nick Crossley CHECKBTS.C A program to intuit various things about the way a machine performs its arithmetic. Contributor: Marty Fouts CLASH.TAR 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 A replacement for the "system" library routine which avoids execing a shell by handling I/O redirection internally. Contributor: Rich Salz CMPLXRTH.TAR A library of complex arithmetic routines for C. Contributor: Doug Gwyn CONFIG.TAR A set of library routines for reading configuration files. Contributor: Conrad Kwok CPROTO.TAR A program to automatically generate C function prototypes and variable declarations from C language source code. Requires the "flex" lexical analyzer (see UNIX_C/UTILS/FLEX.TAR. Contributor: Chin Huang CTAGS.TAR A program to generate "tags" files from C programs, as well as generate cross reference listings. Contributor: Ken Arnold CURSWDGT.TAR 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 A much more robust C program cross referencer. Contributor: Arnold Robbins DBCR.TAR A program identifier database package which stores the locations of all uses of identifiers, pre-processor names, and numbers. Contributor: Greg Mcgary DBUG.TAR Debugging macros for C programs. Lots of functions to log debugging information, etc. Contributor: Fred Fish DEBUGMLC.TAR Drop-in replacements for malloc(3), memory(3), string(3) and bstring(3) functions with debugging facilities. Contributor: Conor P. Cahill DES.TAR 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 Library routines to perform dynamic linking (linking of subroutines at run-time). Contributor: Dave Jones DYNMCHSH.C Dynamic hashing after CACM April 1988 pp. 446-457. Contributor: Esmond Pitt EGETOPT.TAR An extended getopt() function for parsing command line arguments. Contributor: Lloyd Zusman EMITC.TAR 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 An error-table library for printing errors from program. Patchlevel 1. Contributor: Jonathan I. Kamens FDECS.TAR 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 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 A function to read an arbitrarily long line from a stream. Contributor: David Collier-Brown GETOPTAT.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 A set of library routines to read the "utmp" file much like the password file's "getpwent" routines. Contributor: Roger Levasseur HASH8.TAR A program to allow old C compilers to compile programs which use long identifiers. Contributor: Geoff Kuenning IDENTLST.TAR Programs to list external definitions and identifiers in C source files. Contributor: John Rupley INDENT.TAR 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 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 LIBCPRTH.TAR ANSI prototype include files for all the libc routines. Contributor: Clarence Dold LIBENV.TAR Routines for manipulating (setting and examining) environment variables. Runs on 4.xBSD; should run on System V. Contributor: David Herron LIBNDIR.TAR Public domain implementation of the 4.2BSD directory routines that works on all UNIXes. Contributor: Doug Gwyn LIBNDRPX.TAR A POSIX-compatible version of LIBNDIR.TAR (actually just a newer version of the same code). Contributor: Doug Gwyn LIBPW.TAR Routines for manipulating password and group file entries. Contributor: LINTPROT.TAR Patches to 4.2BSD (4.3BSD or Sun can be easily done by hand) "lint" to create a prototype generator. Contributor: Jon Leech LOCALTIM.TAR 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 A portable implementation of malloc. Also supports a tracing function which the author says is Sun-specific. Contributor: Mark Brader MEMLINTK.TAR 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 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 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 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 The Maryland Windows library. This is in the same vein as "curses", but has many more features. Contributor: Chris Torek PASSWDET.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 POSIXTST.TAR 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 An "almost-public-domain" implementation of the V8 regular expression matching routines. Contributor: Henry Spencer SCPP.TAR 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 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 A routine to maintain a list of environment variables for passing to other programs. Contributor: Maarten Litmaath SIMILRTY.TAR A program to detect stretches in C programs that are similar or just plain identical. Useful for locating "borrowed" code, etc. Contributor: Dick Grune SKIPLSTS.TAR A C implementation of skip lists as described in the June 1990 Communications of the ACM. Contributor: Bill Pugh SMALL_C.TAR 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 Safe Memory Allocator Package. A wrapper around malloc, calloc, realloc and free to check that they behave themselves. Contributor: Allistair G. Crooks SPLAYTRE.TAR 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 SPLAYTRE.TAR Another implementation of splay trees, this one from "Application of Splay Trees to Data Compression", CACM August 1988. Contributor: Bodo Rueskamp STRINGS.TAR A public domain strings package containing all the various string manipulation routines C programmers are used to. Contributor: Larry Campbell STRSED.TAR 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 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 An implementation of the strtod() (string to double) function. Contributor: TIMER.TAR Various routines to do delta time computations. Contributor: Gregg Wonderly TRIGRAPH.TAR 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 A routine to do formatting such as that done by database report generators. Contributor: Brandon Allbery UNCTIME.TAR A "yacc" parser for times and dates to return date strings in UNIX time format. Contributor: David MacKenzie UNIDESK.TAR UniDesk is a desktop user interface library package for UNIX systems with ASCII terminals. Contributor: Ben Konig VSPRINTF.TAR Portable versions of vprintf, vfprintf, vsprintf. Contributor: Robert A. Larson VSTR.TAR A dynamic strings package. Contributor: Jordan K. Hubbard XCP.TAR 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 A random number generator based on the linear congruential and additive congruential methods. Contributor: Andreas Nowatzyk Directory UNIX_C/LANGUAGS/CPLUSPLS GENMAN.TAR A program to generate documentation about a C++ class from the include and source files. Version 2.0. Contributor: Bob Mastors INTERVAL.TAR An interval arithmetic package. Contributor: Dan.McCue@newcastle.ac.uk SILO.TAR Routines to build event-based discrete event simulations. See "Simulating Computer Systems: Techniques and Tools" by M. H. MacDougall. Contributor: S. Manoharan Directory UNIX_C/LANGUAGS/FORTH C-FORTH.TAR 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 VAXFORTH.TAR An implementation of FORTH (called VFORTH) for Vaxes under 4.2BSD. Uses subroutine-threading and in-line code to improve speed. Contributor: Andy Valencia Directory UNIX_C/LANGUAGS/FORTRAN F2C.TAR 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 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 A linkage map generator and a cross reference generator for FORTRAN-77 programs. Contributor: Bill Silvert PREP.TAR 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 Library routines to generate PostScript drawings from FORTRAN. Contributor: B. Narasimhan RATFOR.TAR A public domain implementation of RATFOR (RATional FORtran). Generates FORTRAN-77, unlike UNIX "ratfor" which generates FORTRAN-66. Contributor: Ozan Yigit Directory UNIX_C/LANGUAGS/FP FP.TAR 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 A compiler for Backus' Functional Programming language. It translates FP to C, which you can then compile. Contributor: Edoardo Biagioni IFP.TAR A variant of Backus' Functional Programming language. Should run under any UNIX. Written in C. Contributor: Arch D. Robison Directory UNIX_C/LANGUAGS/ICON 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 Directory UNIX_C/LANGUAGS/LISP ELK.TAR 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 The Xlisp reference manual. For version 2.0 of Xlisp. Contributor: Tim I. Mikkelsen XLISP.TAR 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 Directory UNIX_C/LANGUAGS/LOGO LOGO-MAKEHELP.TAR A different "makehelp" for Logo (below). Contributor: Brian Harvey LOGO.TAR 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 MUSICLOG.TAR Dragon curves with music. Contributor: Gerald Edgar Directory UNIX_C/LANGUAGS/MODULA_2 PRETTYPRINT.TAR A pretty printer written in Modula-2. Contributor: Ken Yap Directory UNIX_C/LANGUAGS/OCCAM OCCAM.TAR A yacc/lex specification for OCCAM and OCCAM2. Contributor: Peter Polkinghorne Directory UNIX_C/LANGUAGS/OPS5 OPS5.TAR 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 Directory UNIX_C/LANGUAGS/PASCAL ISO-PASCAL.TAR Public domain "yacc" and "lex" grammar for ISO level 0 Pascal. Contributor: Arnold. D. Robbins KAREL.TAR 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 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 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 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 SFTWRTLS.TAR 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 TURBOTLS.TAR 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 Directory UNIX_C/LANGUAGS/PROLOG PTAGS.TAR A "tags" utility for Prolog. Contributor: Chriss Tweed Directory UNIX_C/LANGUAGS/SMALTALK SMALLTALK.TAR 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 Directory UNIX_C/LANGUAGS/SR 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 The SR programming language, including doumentation, checkout programs, and examples. VS.TAR Extended verfication suite. You only need this if you are modifying the system or porting to a new architecture.