Last update: Tue Jul 14 10:37:37 1998
This document enumerates the computer languages available on the local and Utah Supercomputing Institute facilities. Documentation on these languages can be found in:
In the following sections, languages are subdivided by computer architecture, operating system level, and CPU type. If you are unsure of what system you are running on, use the UNIX uname -a command to find out.
When a particular language is listed in the sections below as (not installed) on some system, this does not usually mean that one cannot purchase and install it on that system, but more likely that budgetary constraints prevent our making it available.
If (a) there is sufficient demand, (b) additional financial support can be found, (c) the language implementation on another local system is outdated or otherwise inadequate, and (d) the language is available from a vendor for the system on which it is currently missing, then it is possible to add it. See local systems staff for further information.
BibTeX is a bibliography database system for use with the TeX typesetting system. It is available on all local systems as the bibtex program. A small sample bibliography gives a flavor of the markup.
BibTeX collects citation commands, a bibliography style, and a list of bibliography databases from an auxiliary ( .aux ) file that is automatically created when TeX runs. It then extracts the cited bibliography entries from the database files, and formats them according to the requested bibliography style.
Because literature references tend to be cited many times, and because there is wide variation in both the style of citation, and the format of bibliography data in a reference list, BibTeX makes it possible to have bibliography data that is both reusable, and able to be expressed in a wide variety of formats (more than 50 bibliography styles are available). Large and growing collections of bibliography data are available in various Internet archives.
The best way to create BibTeX databases is with the excellent bibtex-mode support in GNU Emacs.
There are also programs that can convert output logs of various Internet library catalogs and CD ROM bibliography databases to BibTeX form; for details, look at the local bibliography index.
The American Mathematical Society Math Reviews Online service expected to be available in 1996 will be able to output bibliography data in BibTeX form.
Several BibTeX support tools are also available:Local copies of the evolving draft C9X standard are available in HTML, PDF, PostScript, and text forms.
There is an online version of Steve Summit's book C Programming FAQs: Frequently Asked Questions, ISBN 0-201-84519-9, Addison-Wesley 1996 with lots of useful commentary on the finer points of the C programming language.
C-language prettyprinters cb and indent are available on most of these systems.
On all systems for which the GNU g++ compiler is available, it may also be invoked as c++.
An HTML version of the December 1996 working draft C++ Standard is available at http://www.cygnus.com/misc/wp/dec96pub/. The final standard was sent on 14-Nov-1997 to ISO for ratification, which is expected in mid-1998.
A local PDF version of this document is also available.
Local copies of the 1977 Fortran Standard are available in HTML, PDF, PostScript, and text forms.
Fortran prettyprinters pretty and sf3pretty are available on most of these systems, and pfort (for Fortran 66) and ftnchek (for Fortran 77) are excellent syntax and portability checkers. There is also a lexer, sf3lex, which can be used for construction of other software tools for Fortran and SFTRAN3.
Guile is the Free Software Foundation's GNU Project scripting language, an implementation of the Lisp dialect, Scheme. with extensions.
Guile is installed on all local systems under the name guile, and documentation in the form of a tutorial, a reference manual, and the Revised(4) Report on Scheme can be found in the GNU Emacs info system.
Although daily snapshots of Guile are available for the adventuresome, the last stable release was version 1.2, on 7-May-1997.
HTML is the document markup language used on the World-Wide Web. HTML version 2.0 is supported by all Web browser client programs, including arena, grail, hotjava, netscape, and xmosaic. HTML version 3.0 is under development, and includes new support for tables, figures, and limited mathematics; only the arena browser supports it.
At present, the only way to conveniently produce HTML is to enter it in a text editor. GNU emacs provides adequate support in html-mode and sgml-mode ; the latter requires loading the psgml library. Local Silicon Graphics systems should have a fancier editor in the Web Force software by early 1996.
Other software support includes an HTML prettyprinter, html-pretty, two syntax checkers, html-check and html-ncheck, and an SGML tag normalizer sgmlnorm. html-pretty can be of substantial assistance in converting ordinary ASCII text files to HTML.
A bibliography of books on HTML and SGML is available in BibTeX , HTML , PostScript , and Acrobat PDF forms.
If you are curious about what HTML markup looks like, turn on the View Source option in the Web browser that you are using to read this file. The text of this file has been prettyprinted by html-pretty, and grammatically validated by html-ncheck.
Literate programming combines descriptive text with program code fragments in a single file; processing by separate utilities extracts the text and code fragments as a TeX file for typesetting the program, and the code fragments as a program file that can be given to a compiler. Several literate programming systems have been devised, and pointers to them, and to entire books that are themselves literate programs, can be found in an extensive bibliography available in BibTeX , HTML , PostScript , and Acrobat PDF forms. On all local systems, tangle and weave support literate programming in Pascal, and ctangle and cweave provide for literate programming in C.
Most TeXware and MetaFontware is written in Pascal Web, and on UNIX systems, automatically translated by the Web2C system into C code, due to the lack of Pascal compilers on many UNIX systems. Because of substantial limitations of the Pascal language, and its significant decline in popularity and vendor support, newer literate programming efforts are more likely to use the CWeb system.
An alternative literate programming environment is available on all local systems in the noweb system, with notangle and noweave counterparts to the programs above. noweb is simpler than Knuth's original Pascal Web, and can support use of multiple programming languages.
Maple is a language for symbolic algebra; other languages in this class include Axiom (formerly known as Scratchpad ), MACSYMA, Mathematica , MuPAD, Reduce , and VAXSYMA.
The current release of Maple is 5.4, but some systems also have 5.0, 5.2, 5.3, and 5.5 available. Names that begin maple are non-window-based, so that they can be used via a serial dialup connection; names that begin xmaple require the X Window System.
Maple is widely available under a campus site license, on UNIX workstations, IBM PC, and Apple Macintosh systems.
An extensive bibliography of books is available in BibTeX , HTML , PostScript , and Acrobat PDF forms.
Mathematica is a language for symbolic algebra; other languages in this class include Axiom (formerly known as Scratchpad ), Maple , MACSYMA, MuPAD, Reduce , and VAXSYMA.
Although Mathematica is available commercially for most of these platforms, until recently, licensing was prohibitively expensive. Consequently, there is no University of Utah campus site license.
An extensive bibliography of books about Mathematica is available in BibTeX , HTML , PostScript , and Acrobat PDF forms.
Matlab is widely available under a campus site license, on UNIX workstations only. Although it is available for IBM PC and Apple Macintosh systems, these are not included in the campus site license. Matlab will make use of an X Window System display if available, but does not require it; the same program name works in both cases.
Octave and RLAB are two Matlab-workalikes that are relatively freely available; Scilab has similar capabilities, but with a different syntax. RLAB and Octave can read and write Matlab binary files, but Scilab cannot. None has the Matlab external file capability that allows linking in user-written Fortran and C code.
An extensive bibliography of books is available in BibTeX , HTML , PostScript , and Acrobat PDF forms.
Local copies of the ISO Pascal standards are available in PDF (ISO 10206), gzipped PostScript (ISO 10206), PDF (ISO 7185), and gzipped PostScript (ISO 7185) forms.
A Pascal-language prettyprinter, pindent, is available on some of these systems.
Portable Document Format (PDF) is a relative of Adobe PostScript , which is documented in a published book. PDF is designed to allow rapid screen display and text searching in typeset text and graphics using any of thousands of available PostScript fonts.
PDF is produced by the commercial Adobe Acrobat Distiller program, or PDF-Writer printer drivers on IBM PC Windows and Apple Macintosh systems, from arbitrary PostScript files.
PDF files can be viewed by the freely-available Acrobat Reader program, acroread, available for several popular computer systems from Adobe Systems, Inc. Adobe also markets a more sophisticated reader program, called Acrobat Exchange, which permits addition of notes to a PDF document, such as might be required by an instructor correcting student assignments, or a reviewer commenting on a paper submitted to a journal. Other tools in the Acrobat product family include Catalog, for creation of inverted indexes of collections of PDF files, and Capture, for converting scanned images of documents to a PDF form in a way that accurately reproduces their original appearance.
The Adobe acroread, acroexch, distill, and distilld programs are available on all local architectures, although on some of them, this is accomplished by (transparently) running the program on another machine for which a native version is available.
Aladdin Ghostscript (gs) version 3.x, 4.x, and 5.x is capable of displaying PDF files in page order.
A freeware PDF file browser, xpdf, is installed on all local systems.
A bibliography of books on PostScript and PDF is available in BibTeX , HTML , PostScript , and Acrobat PDF forms.
PostScript is a powerful page description language invented by Adobe Systems, and implemented in millions of laser printers from scores of vendors, most notably, the Apple LaserWriter, and the Hewlett-Packard LaserJet.
Although it is not common for users to program directly in PostScript, except for the authors of other programs that produce PostScript output, it is certainly possible to do so, and sometimes, this can be done for useful effects. As an example, try the Acrobat reader zoom option on figures in this local document: /u/cl/doc/ma119/quadrature.pdf .
A bibliography of books on PostScript and PDF is available in BibTeX , HTML , PostScript , and Acrobat PDF forms.
Python is a popular object-oriented scripting language, with its own Website, where you can find extensive information about the language, and pointers to documentation and books. Python has been implemented on all popular workstation and personal computer platforms, and is freely available.
Python is available on all local architectures under the name python.
An extensive bibliography of books and other publications about Python is available in BibTeX , HTML , PostScript , and Acrobat PDF forms.
Reduce is a pioneering language for symbolic algebra; the current version is 3.6. Other languages in this class include Axiom (formerly known as Scratchpad), Macsyma, maxima, Maple , MACSYMA, Mathematica , MuPAD, and VAXSYMA.
Reduce 3.6 is available as reduce on all local architectures, except IBM systems. However, on all but the Sun Solaris 2.6 systems, this is accomplished (transparently) by running Reduce remotely on a Sun compute server.
Extensive bibliographies of books and other publications on Reduce are available in BibTeX, HTML, PostScript, and Acrobat PDF forms at http://www.math.utah.edu/pub/tex/bib/index-table-r.html#red-a-f
Scheme is a small clean dialect of Lisp. A native version is installed on the Sun Solaris systems; on the other systems listed below, it is (transparently) available via a remote process on a Sun compute server.
SFTRAN3 is a structured Fortran preprocessor that provides advancing looping, conditionals, and local procedures. It is used for the PLOT79 graphics system. The user's guide is available in Postcript and Acrobat PDF forms.
An SFTRAN3-language prettyprinter, sf3pretty, is available on some of these systems. There is also a lexer, sf3lex, which can be used for construction other software tools for Fortran and SFTRAN3.
Extensive bibliographies are available for BMDP ( BibTeX , HTML , PostScript , Acrobat PDF ), SAS ( BibTeX , HTML , PostScript , Acrobat PDF ), SPlus ( BibTeX , HTML , PostScript , Acrobat PDF ), and SPSS ( BibTeX , HTML , PostScript , Acrobat PDF ).
Tcl (Tool command language) is a popular scripting language, originally developed by University of California, Berkeley, researchers, then later at Sun Microsystems, and now, at a separate company, Scriptics.
Tcl has been ported to UNIX, Microsoft Windows (95 and NT), IBM OS/2, and Apple Macintosh platforms, and is freely available.
The Tk portable window system interface was originally developed with Tcl, but now is accessible from other scripting languages, including Guile and Python.
Tcl and Tk documentation is available in these books:
@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} @String{pub-AW:adr = "Reading, MA, USA"} @Book{Harrison:1998:ETT, author = "Mark Harrison and Michael McLennan", title = "Effective {Tcl\slash Tk} programming: writing better programs with {Tcl} and {Tk}", publisher = pub-AW, address = pub-AW:adr, pages = "xv + 405", year = "1998", ISBN = "0-201-63474-0", LCCN = "QA76.73.T44H37 1998", bibdate = "Fri Dec 19 10:57:35 1997", price = "US\$38.50", acknowledgement = ack-nhfb, } @String{pub-MT = "M\&T Books"} @String{pub-MT:adr = "M\&T Publishing, Inc., 501 Galveston Drive, Redwood City, CA 94063, USA"} @Book{Johnson:1996:GAT, author = "Eric F. Johnson", title = "Graphical Applications with {Tcl} and {Tk}", publisher = pub-MT, address = pub-MT:adr, pages = "x + 374", year = "1996", ISBN = "1-55851-471-6", LCCN = "T385.J618 1996", bibdate = "Wed Aug 20 16:36:53 1997", price = "US\$39.95", acknowledgement = ack-nhfb, } @String{pub-ORA = "O'Reilly \& {Associates, Inc.}"} @String{pub-ORA:adr = "981 Chestnut Street, Newton, MA 02164, USA"} @Book{Libes:1994:EET, author = "Don Libes", title = "Exploring Expect: {A Tcl}-based Toolkit for Automating Interactive Programs", publisher = pub-ORA, address = pub-ORA:adr, pages = "xxxiii + 566", month = dec, year = "1994", ISBN = "1-56592-090-2", LCCN = "QA76.755 .L52 1995", bibdate = "Sat Dec 02 17:04:17 1995", bibsource = "ftp://ftp.ora.com/pub/book.catalog", price = "US\$29.95", URL = "http://www.ora.com/gnn/bus/ora/item/expect.html", acknowledgement = ack-nhfb, } @Book{Ousterhout:1994:TTT, author = "John K. Ousterhout", title = "{Tcl} and the {Tk} Toolkit", publisher = pub-AW, address = pub-AW:adr, pages = "xx + 458", year = "1994", ISBN = "0-201-63337-X", LCCN = "QA76.73.T44 O97 1994", bibdate = "Thu Oct 13 11:06:16 1994", price = "US\$36.75", acknowledgement = ack-nhfb, } @String{pub-PTRPH = "P T R Pren{\-}tice-Hall"} @String{pub-PTRPH:adr = "Englewood Cliffs, NJ 07632, USA"} @Book{Young:1997:VTH, author = "David H. Young", title = "The {Visual Tcl} handbook", publisher = pub-PTRPH, address = pub-PTRPH:adr, pages = "xxx + 512", year = "1997", ISBN = "0-13-461674-X", LCCN = "QA76.9.U83Y68 1997", bibdate = "Thu Aug 07 14:01:02 1997", acknowledgement = ack-nhfb, }
A brief bibliography of all known books on these computer languages is available.
Extensive bibliographies of books about TeX are available in BibTeX , HTML , PostScript , and Acrobat PDF forms, and books typeset by TeX in BibTeX , HTML , PostScript , and Acrobat PDF forms.
Three particularly useful support tools, available on all local systems, are:
vtk is analogous to tk, but for visualization: simple files accomplish sophisticated visualization tasks.
vtk is available only on the Silicon Graphics systems (vtk version 1.x on IRIX 5.3, and 2.x on IRIX 6.x). However, with vtk 2.x, it is possible to display the output windows on some other architectures, such as Sun systems.
The only vtk documentation currently available is this book:
@String{pub-PH = "Pren{\-}tice-Hall"} @String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"} @Book{Schroeder:1998:VT, author = "William J. Schroeder and Kenneth M. Martin and William E. Lorensen", title = "The Visualization Toolkit", publisher = pub-PH, address = pub-PH:adr, edition = "Second", pages = "xx + 645", year = "1998", ISBN = "0-13-954694-4", LCCN = "QA76.64.S36 1997", bibdate = "Mon Apr 13 10:46:55 1998", note = "With special contributors Lisa Sobierajski Avila, Rick Avila, and C. Charles Law. Includes CD-ROM with vtk-2.0. The most recent release is available on the World-Wide Web at \path=http://www.kitware.com/vtk.html=.", acknowledgement = ack-nhfb, }
@String{pub-ADOBE-PRESS = "Adobe Press"} @String{pub-ADOBE-PRESS:adr = "Mountain View, CA, USA"} @String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} @String{pub-AW:adr = "Reading, MA, USA"} @String{pub-HWS = "Howard W. Sams"} @String{pub-HWS:adr = "Indianapolis, IN 46268, USA"} @Book{Ames:BP93, author = "Patrick Ames", title = "Beyond Paper: The Official Guide to Adobe Acrobat", publisher = pub-ADOBE-PRESS, address = pub-ADOBE-PRESS:adr, pages = "127", year = "1993", ISBN = "1-56830-050-6", LCCN = "TK5105.9 .A48 1993", price = "US\$16.95", acknowledgement = ack-nhfb, bibdate = "Thu Jul 7 07:43:49 1994", } @Book{Bienz:PDF93, author = "Tim Bienz and Richard Cohn", title = "Portable Document Format Reference Manual", publisher = pub-AW, address = pub-AW:adr, pages = "xii + 214", year = "1993", ISBN = "0-201-62628-4", LCCN = "QA76.9.F5P67 1993", price = "US\$24.95", acknowledgement = ack-nhfb, bibdate = "Wed Feb 23 14:42:18 1994", } @Book{Grant:AAH93, author = "Kenneth Grant and W. David Schwaderer", title = "Adobe Acrobat Handbook: Digital Publishing in the Post-Gutenberg Era", publisher = pub-HWS, address = pub-HWS:adr, pages = "xxvii + 254", year = "1993", ISBN = "0-672-30393-0 (includes diskette)", LCCN = "QA76.76.W56 G833 1993", price = "US\$19.95", acknowledgement = ack-nhfb, bibdate = "Thu May 12 08:17:37 1994", }
@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} @String{pub-AW:adr = "Reading, MA, USA"} @String{pub-ORA = "O'Reilly \& {Associates, Inc.}"} @String{pub-ORA:adr = "981 Chestnut Street, Newton, MA 02164, USA"} @Book{Aho:APL87, author = "Alfred V. Aho and Brian W. Kernighan and Peter J. Weinberger", key = "AWK87", title = "The {AWK} Programming Language", publisher = pub-AW, address = pub-AW:adr, pages = "x + 210", year = "1988", ISBN = "0-201-07981-X", LCCN = "QA76.73.A95 A35 1988", bibdate = "Tue Dec 14 22:33:46 1993", nb = "the author order is AKW, but the key looks better as AWK", } @Book{Dougherty:SA91, author = "Dale Dougherty", title = "sed {\&} awk", publisher = pub-ORA, address = pub-ORA:adr, pages = "xxii + 394", year = "1991", ISBN = "0-937175-59-5", LCCN = "QA76.76.U84 D69 1991", } @Misc{Wall:perl, author = "Larry Wall", title = "perl\emdash Practical Extraction and Report Language", howpublished = "Usenet \path|mod.sources| archives", year = "1987", note = "Electronic mail: \path|lwall@jpl-devvax.jpl.nasa.gov|.", } @Book{Schwartz:1993:LP, author = "Randal L. Schwartz", title = "Learning {Perl}", publisher = pub-ORA, address = pub-ORA:adr, pages = "274", month = nov, year = "1993", ISBN = "1-56592-042-2", LCCN = "QA76.73.P225 S39 1993", note = "Foreword by Larry Wall.", price = "US\$24.95", acknowledgement = ack-nhfb, bibdate = "Tue Sep 13 11:59:48 MDT 1994", bibsource = "ftp://ftp.ora.com/pub/book.catalog", } @Book{Wall:1991:PP, author = "Larry Wall and Randal L. Schwartz", title = "Programming {\tt perl}", publisher = pub-ORA, address = pub-ORA:adr, pages = "482", month = jan, year = "1991", ISBN = "0-937175-64-1", LCCN = "QA76.73.P43 W35 1990, QA76.73.P226 W34 1992", price = "US\$29.95", acknowledgement = ack-nhfb, bibdate = "Tue Sep 13 11:59:48 MDT 1994", bibsource = "ftp://ftp.ora.com/pub/book.catalog", }