%%% -*-BibTeX-*-
%%% ====================================================================
%%% BibTeX-file{
%%% author = "Nelson H. F. Beebe",
%%% version = "3.156",
%%% date = "27 November 2018",
%%% time = "13:54:56 MST",
%%% filename = "gnu.bib",
%%% address = "University of Utah
%%% Department of Mathematics, 110 LCB
%%% 155 S 1400 E RM 233
%%% Salt Lake City, UT 84112-0090
%%% USA",
%%% telephone = "+1 801 581 5254",
%%% FAX = "+1 801 581 4148",
%%% URL = "http://www.math.utah.edu/~beebe",
%%% checksum = "55805 47013 202539 2041818",
%%% email = "beebe at math.utah.edu, beebe at acm.org,
%%% beebe at computer.org (Internet)",
%%% codetable = "ISO/ASCII",
%%% keywords = "bibliography; BibTeX; FSF; Free Software
%%% Foundation; GNU; gcc (GNU Compiler
%%% Collection); g++; gawk; gimp; gnome; gnat;
%%% IBM SHARE; open source; Quantum Chemistry
%%% Program Exchange (QCPE); Richard M.
%%% Stallman",
%%% license = "public domain",
%%% supported = "yes",
%%% docstring = "This is a bibliography of publications about
%%% the GNU (Gnu's Not Unix) system. It also
%%% includes coverage of
%%%
%%% * emacs, gawk, gcc, g++, and many other GNU
%%% software tools;
%%%
%%% * some early references to TECO, the
%%% implementation language on the DEC PDP-10
%%% (1974--1990) of the first Emacs text editor;
%%%
%%% * writings by, and about, Richard M.
%%% Stallman, the founder of the Free Software
%%% Foundation and the GNU Project, and a
%%% strong proponent of sharing software with
%%% the entire world;
%%%
%%% * free software; and
%%%
%%% * open-source software.
%%%
%%% This bibliography does NOT cover GNU/Linux,
%%% one of the kernels of the GNU operating
%%% system; that subject is covered in a
%%% companion bibliography, linux.bib, which is a
%%% subset of unix.bib.
%%%
%%% At version 3.00, this bibliography was
%%% significantly extended with more than 530
%%% additional entries, thanks to the search
%%% capabilities provided by bibsql,
%%%
%%% http://www.math.utah.edu/pub/bibsql
%%%
%%% an interface to multiple SQL databases
%%% containing BibTeX-format data from the TeX
%%% User Group and BibNet Project bibliography
%%% archives. Those archives are freely
%%% available at
%%%
%%% http://www.math.utah.edu/pub/tex/bib/index-table.html
%%% http://www.math.utah.edu/pub/bibnet
%%% http://www.netlib.org/bib
%%% http://www.netlib.org/bibnet
%%%
%%% and many other mirrors around the world.
%%%
%%% The bibsql interface now makes it easy to
%%% mine those collections automatically to find
%%% new entries for this bibliography. However,
%%% from version 3.00 of gnu.bib, to avoid
%%% significant duplication, additional entries
%%% from linux.bib, linux-journal.bib, and
%%% unix.bib are henceforth excluded. Entries
%%% from those sources that were in version 2.50
%%% (or earlier) of this bibliography have,
%%% however, been retained.
%%%
%%% At version 3.156, the year coverage looked
%%% like this:
%%%
%%% 1960 ( 1) 1980 ( 7) 2000 ( 90)
%%% 1961 ( 0) 1981 ( 9) 2001 ( 120)
%%% 1962 ( 0) 1982 ( 7) 2002 ( 96)
%%% 1963 ( 0) 1983 ( 1) 2003 ( 107)
%%% 1964 ( 0) 1984 ( 11) 2004 ( 107)
%%% 1965 ( 0) 1985 ( 11) 2005 ( 105)
%%% 1966 ( 0) 1986 ( 8) 2006 ( 63)
%%% 1967 ( 0) 1987 ( 17) 2007 ( 53)
%%% 1968 ( 0) 1988 ( 31) 2008 ( 50)
%%% 1969 ( 1) 1989 ( 26) 2009 ( 55)
%%% 1970 ( 0) 1990 ( 37) 2010 ( 45)
%%% 1971 ( 3) 1991 ( 41) 2011 ( 51)
%%% 1972 ( 0) 1992 ( 53) 2012 ( 47)
%%% 1973 ( 0) 1993 ( 50) 2013 ( 25)
%%% 1974 ( 2) 1994 ( 66) 2014 ( 39)
%%% 1975 ( 3) 1995 ( 55) 2015 ( 37)
%%% 1976 ( 2) 1996 ( 32) 2016 ( 54)
%%% 1977 ( 3) 1997 ( 34) 2017 ( 54)
%%% 1978 ( 4) 1998 ( 24) 2018 ( 22)
%%% 1979 ( 2) 1999 ( 80) 2019 ( 3)
%%% 19xx ( 4)
%%% 20xx ( 3)
%%%
%%% Article: 1116
%%% Book: 276
%%% InBook: 11
%%% InCollection: 10
%%% InProceedings: 143
%%% Manual: 46
%%% MastersThesis: 19
%%% Misc: 73
%%% Periodical: 4
%%% PhdThesis: 2
%%% Proceedings: 95
%%% TechReport: 60
%%%
%%% Total entries: 1855
%%%
%%% Many people in the current GNU,
%%% free-software, and open-source communities
%%% are likely unaware of important precursors
%%% to the modern free-software movement. The
%%% next several paragraphs provide a compact
%%% history, and the bibliography files mentioned
%%% here can all be found in the TeX User Group
%%% and BibNet Project bibliography archives.
%%%
%%% --- begin historical remarks ---
%%%
%%% In his 1830 book, ``Reflections on the
%%% Decline of Science in England, and some of
%%% its Causes'', Charles Babbage, inventor of
%%% the Difference Engine and the Analytical
%%% Engine, and thus regarded by some as the
%%% father of the programmable computer, wrote in
%%% opposition to patents and intellectual
%%% property restrictions:
%%%
%%% ``An invention in science or in art, may
%%% justly be considered as possessing the
%%% rights of property in the highest degree.
%%% The lands we inherit from our fathers,
%%% were cultivated ere they were born, and
%%% yielded produce before they were
%%% cultivated. The products of genius are
%%% the actual creations of the individual;
%%% and, after yielding profit or honour to
%%% him, they remain the permanent endowments
%%% of the human race. If the institutions
%%% of our country, and the opinions of
%%% society, support us fully in the absolute
%%% disposal of our fields, of which we can,
%%% by the laws of nature, be only the
%%% transitory possessors, who shall justly
%%% restrict our discretion in the disposal
%%% of those richer possessions, the products
%%% of intellectual exertion?
%%%
%%% Two courses are open to those individuals
%%% who are thus endowed with Nature's
%%% wealth. They may lock up in their own
%%% bosoms the mysteries they have
%%% penetrated, and by applying their
%%% knowledge to the production of some
%%% substance in demand in commerce, thus
%%% minister to the wants or comforts of
%%% their species, whilst they reap in
%%% pecuniary profit the legitimate reward of
%%% their exertions.
%%%
%%% It is open to them, on the other hand, to
%%% disclose the secret they have torn from
%%% Nature, and by allowing mankind to
%%% participate with them, to claim at once
%%% that splendid reputation which is rarely
%%% refused to the inventors of valuable
%%% discoveries in the arts of life.
%%%
%%% The two courses are rarely compatible,
%%% only indeed when the discoverer, having
%%% published his process, enters into equal
%%% competition with other manufacturers.''
%%%
%%% In 1849, Joseph Henry, President of the
%%% American Association for the Advancement of
%%% Science, wrote (quoted on the back cover of
%%% the October 1963 Bulletin of the Atomic
%%% Scientists):
%%%
%%% ``I have sought ... no patent for
%%% inventions and solicited no remuneration
%%% for my labors, but have freely given
%%% their results to the world ... The only
%%% reward I ever expected was the
%%% consciousness of advancing science and
%%% the pleasure of discovering new truths.''
%%%
%%% In 1955, the IBM SHARE group was formed to
%%% provide a mechanism for sharing software for
%%% IBM mainframe computers; see entry
%%% Anonymous:2015:BHS for a one-page timeline of
%%% SHARE. The group has a Web site at
%%%
%%% https://www.share.org/
%%%
%%% In 1962, the Quantum Chemistry Program
%%% Exchange (QCPE) was founded by Professor
%%% Harrison G. Shull at the University of
%%% Indiana, Bloomington, IN, USA, as an early
%%% service for collecting and distributing open
%%% source software in quantum and computational
%%% chemistry. See entry Boyd:2013:QCP for a
%%% history of that service.
%%%
%%% In 1965, Jim Wilkinson (see
%%% wilkinson-james-hardy.bib) at the National
%%% Physical Laboratory in Teddington, England (a
%%% southwest London suburb), and several other
%%% prominent, and mainly European, numerical
%%% analysts, began an influential free-software
%%% publication program in the journal Numerische
%%% Mathematik. Despite its name, that journal
%%% publishes numerical-computing research
%%% articles mostly in English, with less than
%%% fifteen percent of the articles in French or
%%% German. The published software is written in
%%% the Algol 60 programming language, and
%%% implements reliable numerical algorithms for
%%% matrix-algebra problems that are commonly met
%%% in engineering and scientific computations,
%%% and are now pervasive in numerical computing
%%% throughout the world, and across many
%%% disciplines in academia, commerce, industry,
%%% government, and the military.
%%%
%%% A subsequent book \cite{Wilkinson:1971:LA}
%%% republished 29 of those original journal
%%% articles, with commentary, corrections, and
%%% updates. They provide algorithmically-solid
%%% and extensively-tested computer programs for
%%% solving various types of linear-equation,
%%% linear-programming, and least-squares
%%% problems, finding singular-value
%%% decompositions, and solving eigenvalue
%%% problems.
%%%
%%% The Algol 60 language was chosen for the
%%% Numerische Mathematik articles because it had
%%% an international design and development team,
%%% was intended to be clean, clear, concise, and
%%% unencombered by computer-architectural
%%% considerations (of which Fortran possessed
%%% many), and was widely implemented in Europe.
%%%
%%% However, Algol 60 was peculiar in leaving
%%% input and output up to the implementation,
%%% and in having both a standard mixed-case
%%% publication-language form (used in typeset
%%% journal articles and books), and an
%%% implementation-dependent source-code form
%%% that was usually restricted to uppercase, and
%%% was commonly recorded on punched cards or
%%% paper tape.
%%%
%%% Algol 60 saw little use in North America,
%%% except at the relatively few academic sites
%%% with Burroughs computers, and the
%%% aforementioned peculiarities in practice made
%%% its code highly nonportable.
%%%
%%% The limitations of Algol 60, and the
%%% dominance of Fortran in numerical computing
%%% in North America, led to an effort there to
%%% translate all of the algorithms in the
%%% Wilkinson/Reinsch book to carefully-written,
%%% and highly-portable, Fortran, using the
%%% programmer team's wide experience on many
%%% commercial architectures, and the existence
%%% of the ANSI Fortran X3.9-1966 Standard, to
%%% guide their programming work.
%%%
%%% The programmer team originally called their
%%% effort the NATS Project, after the initial
%%% letters of their employing institutions:
%%% Northwestern University (Chicago, IL),
%%% Argonne National Laboratory (Argonne, IL, a
%%% Chicago suburb), the University of Texas at
%%% Austin, and Stanford University (Stanford,
%%% CA). As more numerical analysts joined the
%%% work, the NATS acronym was redefined to mean
%%% National Activity to Test Software.
%%%
%%% The first major result of the NATS work was
%%% the EISPACK library \cite{Smith:1976:MER,
%%% Garbow:1977:MER}, which provided Fortran
%%% translations of the eigensolution algorithms
%%% from Part II of the Wilkinson/Reinsch book.
%%%
%%% The second result of the NATS Project was the
%%% LINPACK library \cite{Dongarra:1979:LUG},
%%% which covered Part I of the Wilkinson/Reinsch
%%% book.
%%%
%%% The EISPACK library code was mainly a
%%% straightforward translation of Algol 60 to
%%% Fortran. However, the LINPACK library made a
%%% significant change in the original Algol 60
%%% implementations, by identifying common code
%%% in time-critical inner loops that could be
%%% implemented in separate highly-optimized
%%% routines, called the Basic Linear Algebra
%%% Subroutines (BLAS), and which were well
%%% matched for the hardware capabilities of
%%% vector supercomputers of the 1970s.
%%%
%%% The third important result of the NATS
%%% Project was the LAPACK library, which
%%% replaced the functionality of both EISPACK
%%% and LINPACK, but under new, albeit similar,
%%% routine names. About a dozen members of the
%%% team coauthored three editions of a book on
%%% the LAPACK software \cite{Anderson:1992:LUG,
%%% Anderson:1995:LUG, Anderson:1999:LUG}. Their
%%% work continues today in a series of
%%% publications called the LAPACK Working Notes
%%% (LAWN) (documented in a separate
%%% bibliography, lawn.bib, and in some
%%% author-specific bibliographies of the BibNet
%%% Project, notably, dongarra-jack-j.bib,
%%% duff-iain-s.bib, golub-gene-h.bib,
%%% kincaid-david-r.bib, moler-cleve-b.bib,
%%% parlett-beresford-n.bib, rice-john-r.bib,
%%% wilkinson-james-hardy.bib, and
%%% young-david-m.bib). Many of the LAWN
%%% documents have later appeared as refereed
%%% journal articles.
%%%
%%% Besides implementing many more algorithms,
%%% improving reliability and robustness, and
%%% incorporating the BLAS in the EISPACK
%%% replacements, LAPACK introduced many more
%%% numerical kernels that are called the Level 2
%%% and 3 BLAS. The new BLAS routines implement
%%% time-critical inner double and triple loops
%%% that are common in many algorithms for matrix
%%% algebra.
%%%
%%% The higher-level BLAS routines simplify
%%% coding, and allow hiding of machine-dependent
%%% optimizations that exploit features of both
%%% vector and parallel hardware, including
%%% multicore and multithread CPUs, graphics
%%% processing units (GPUs), and multilevel
%%% memories whose worst-case access times can
%%% exceed instruction times by as much as a
%%% factor of 500 on 2010-vintage hardware.
%%%
%%% The NATS Project spawned many other
%%% collaborative efforts to produce free, and
%%% widely-needed, software, including FUNPACK
%%% (for mathematical elementary functions and a
%%% limited selection of special functions: see
%%% \cite{Cody:1975:FPS}, cody-william-j.bib, and
%%% elefunt.bib), ELLPACK (for elliptic
%%% differential equations: see rice-john-r.bib),
%%% LAPACK++ (object-oriented extensions),
%%% LAPACK3E (Fortran 90 extensions), ScaLAPACK
%%% and ScaLAPACK++ (for distributed memory
%%% concurrent computers), SPARSPACK (for large
%%% sparse linear equations and eigenvalue
%%% problems where conventional dense-matrix
%%% methods that require O(N**3) work and O(N**2)
%%% storage are impractical or infeasible), and
%%% TOOLPACK for Unix-like software tools (see
%%% fortran2.bib, signum.bib, fortran-forum.bib,
%%% and \cite{Kernighan:1976:ST,
%%% Kernighan:1981:STP,Kernighan:1984:UPE,
%%% Kernighan:1999:PP}).
%%%
%%% None of the three NATS software packages
%%% carries a license statement. They were
%%% produced, often at academic and government
%%% expense, for the entire world to use freely
%%% and without any restrictions whatsoever.
%%% Users are free to modify and extend the
%%% software, and commercial vendors are free to
%%% reimplement it, or otherwise optimize it, in
%%% order to exploit particular features of their
%%% hardware and/or software. Those
%%% reimplementations may be held proprietary if
%%% the vendor chooses, although the user
%%% interface (the routine calling sequence)
%%% remains unchanged from the public code.
%%%
%%% The main programming language for those
%%% numerical software libraries has remained
%%% Fortran: both LINPACK and LAPACK assume the
%%% 1977 ANSI and 1978 ISO Fortran Standards, and
%%% LAPACK3e uses extensions from the 1990
%%% Fortran ISO Standard. That practice is not
%%% particularly restrictive, because on modern
%%% (roughly post-1985) operating systems,
%%% Fortran routines are usually callable from
%%% other programming languages, albeit sometimes
%%% with platform-specific assumptions or
%%% compiler extensions. However, with some
%%% subsequent manual cleanup, the CLAPACK
%%% distribution provides machine-translated
%%% C-language equivalents of a large subset of
%%% LAPACK, eliminating the need for numerical C
%%% programmers to concern themselves with the
%%% details of interlanguage calling conventions.
%%% However, efficiency may be lost because of
%%% the differing array storage-order conventions
%%% between the Fortran and C language families.
%%% The translations do NOT exchange loop order,
%%% with possibly severe effects on memory cache
%%% access efficiency.
%%%
%%% Starting in 1960, the journal Communications
%%% of the ACM (CACM), began publication of
%%% usually-short computer algorithms for a broad
%%% range of problems, including nonnumerical
%%% ones. Eventually, there were almost 500
%%% of them, including Tony Hoare's famous
%%% partition and quicksort algorithms (see
%%% cacm1960.bib and cacm1970.bib).
%%%
%%% In 1975, a new journal, ACM Transactions on
%%% Mathematical Software (TOMS) (see toms.bib)
%%% was founded to continue publication of
%%% numerical algorithms, to allow publication of
%%% much larger packages that are too big to list
%%% in journal articles, and to provide
%%% developers an opportunity to publish
%%% descriptions of algorithms separate from
%%% papers about their implementations in
%%% computer languages.
%%%
%%% All code published in TOMS is required to be
%%% free software, although certain free-software
%%% or open-source software licenses are now
%%% permitted. All software from TOMS articles
%%% is available for unrestricted downloads via
%%% the Netlib Project Web site and its mirrors.
%%%
%%% The TOMS journal has published research
%%% articles about many packages with names
%%% inspired by the original ones, including
%%% ABBPACK, ABDPACK, APPSPACK, CSRFPACK,
%%% CUBPACK, ELLPACK, FFPACK, FUNPACK, HOMPACK,
%%% HOMPACK90, IQPACK, ITPACK, LAPACK, NITPACK,
%%% ODRPACK, ODRPACK95, PELLPACK, PHCPACK,
%%% QMRPACK, QUADPACK, SRFPACK, SSRFPACK,
%%% STRIPACK, ScaLAPACK, TENPACK, TNPACK,
%%% TRIPACK, TSPACK, and UMFPACK.
%%%
%%% As far as this author knows, only three other
%%% journals provide for publication of numerical
%%% algorithms with accompanying free software:
%%% Applied Statistics (see as1950.bib,
%%% as1960.bib, as1970.bib, as1980.bib,
%%% as1990.bib, as2000.bib, as2010.bib, ...),
%%% Computing (27 algorithms up to 1976, and none
%%% since: see computing.bib), and the Journal of
%%% Statistical Software (see jstatsoft.bib).
%%%
%%% The journal Computer Physics Communications
%%% publishes many computer programs, but their
%%% copyright must be transferred to the journal
%%% publisher, which then sells them under
%%% restrictive nondisclosure licenses. The
%%% well-known book series Numerical Recipes (in
%%% Fortran, C, C++, and Pascal) contains a lot
%%% of potentially useful computer code, but
%%% cripples their use by restrictive licensing.
%%%
%%% In 1980, Cleve Moler (see moler-cleve-b.bib),
%%% one of the original NATS developers,
%%% announced an interactive matrix calculator
%%% program, based on EISPACK and LINPACK, called
%%% Matlab. The program attracted such wide
%%% interest that he, with Jack Little, founded a
%%% company, The MathWorks, Inc., in 1984 to
%%% further develop, market, and support Matlab
%%% (see matlab.bib).
%%%
%%% Although the original prototype calculator,
%%% now called Classic Matlab, was written
%%% entirely in Fortran, the current commercial
%%% Matlab is written mainly in C and C++. The
%%% Mathworks, Inc., remains privately held, and
%%% is believed to be a multi-billion-dollar
%%% business. The GNU Octave program implements
%%% a subset of Matlab, but The Mathworks now also
%%% offers much more software for matrix analysis,
%%% simulation, graphics, and others: see
%%%
%%% http://www.mathworks.com/
%%%
%%% Finally, it should be noted that another
%%% important offshoot of the MIT Artificial
%%% Intelligence Laboratory where Richard
%%% Stallman did much of his early work is the
%%% Lisp programming language (see
%%% common-lisp.bib and lispsymbcomput.bib),
%%% dialects of which have been used to implement
%%% several computer algebra systems, including
%%% Macsyma (now available as GNU Maxima; see
%%% maxima.bib), Reduce (released in open-source
%%% form in 2009: see
%%%
%%% http://www.reduce-algebra.com/
%%% http://reduce-algebra.sourceforge.net/
%%%
%%% \cite{Hearn:2009:RFS}, red-a-f.bib,
%%% red-g-l.bib, red-m-z.bib, redbooks.bib,
%%% redextra.bib, and reduce.bib), and SCRATCHPAD
%%% (now known as Axiom: see axiom.bib). Axiom
%%% is being completely reimplemented as a
%%% literate program, on the grounds that the
%%% history, practices, and rigor of mathematics
%%% require computer-algebra software to be
%%% extendable, free, long-lived, open, and
%%% portable: see \cite{Page:2007:AOS}.
%%%
%%% --- end historical remarks ---
%%%
%%% The initial draft of this bibliography was
%%% derived almost entirely from the OCLC
%%% Article1st, Contents1st, Papers1st,
%%% Proceedings, and WorldCat databases.
%%% Additions were then made from all of the
%%% bibliographies in the TeX User Group
%%% collection, from the Uncover library
%%% database, from the University of California
%%% Melvyl catalog, from the U.S. Library of
%%% Congress catalog, from the IEEE INSPEC
%%% 1989--1995 CD-ROM database, from
%%% bibliographies in the author's personal
%%% files, and from the computer science
%%% bibliography collection on ftp.ira.uka.de in
%%% /pub/bibliography to which many people of
%%% have contributed. The snapshot of this
%%% collection was taken on 5-May-1994, and it
%%% consists of 441 BibTeX files, 2,672,675
%%% lines, 205,289 entries, and 6,375
%%% <at>String{} abbreviations, occupying 94.8MB
%%% of disk space.
%%%
%%% Regrettably, the OCLC databases often do not
%%% record final page numbers of journal
%%% articles, so there are many page ranges of
%%% the form 123--?? in this bibliography.
%%%
%%% Numerous errors in the sources noted above
%%% have been corrected. Spelling has been
%%% verified with the UNIX spell and GNU ispell
%%% programs using the exception dictionary
%%% stored in the companion file with extension
%%% .sok.
%%%
%%% BibTeX citation tags are uniformly chosen
%%% as name:year:abbrev, where name is the
%%% family name of the first author or editor,
%%% year is a 4-digit number, and abbrev is a
%%% 3-letter condensation of important title
%%% words. Citation tags were automatically
%%% generated by software developed for the
%%% BibNet Project.
%%%
%%% In this bibliography, entries are sorted in
%%% year order, using bibsort -byyear, to
%%% facilitate locating most recent work.
%%%
%%% The checksum field above contains a CRC-16
%%% checksum as the first value, followed by the
%%% equivalent of the standard UNIX wc (word
%%% count) utility output of lines, words, and
%%% characters. This is produced by Robert
%%% Solovay's checksum utility.",
%%% }
%%% ====================================================================