Hugh Sasse's Software Production Related Information Page
Contents
General information |
freshmeat.net |
The GNU project |
Language lists |
Finite State Machines |
Top Down Operator Precedence Parsing |
pcre and regexp info |
Toolkit for Conceptual Modelling |
C |
C++ |
Forth |
Fortran |
Icon |
Io |
Java |
Julia |
Lisp |
Lua |
Lush |
Objective Caml |
Object Orientation Orientation |
Onyx |
Orc |
Pascal |
Pascal to C translator |
Perl |
Pike |
PostScript® |
Python |
REBOL |
Ruby |
Tcl, Tk and Expect |
Unicon |
Emacs |
Vi and vim |
Unix (including Shell and Linux)
- General information
-
- Alex Measday
has an enormous Computing Web Sites page.
- The Pragmatic Programmers.
- See also Dave's Blog
and Andy's blog
which has some of their interesting thoughts on them. (Also of note
is the original
"broken windows" article, housed at http://www.codinghorror.com/.
- How to Prototype [a Game] in Under 7 Days
- is mainly about game development, but talks about creativity, programming
efficiently. As someone who tends to avoid hacks, this is a useful
reminder that satisficing is OK. Found at Coding Horror::Rapid Prototyping Fun.
- Brian Marick's
blog.
- "Silk and
Spinach", Kevin Rutherford on agile software development
...
- ...and life in Macclesfield
- Chad Fowler's Blog.
- Redhanded - sneaking
Ruby through the system. Thanks to the much missed Why The Lucky Stiff
- See _Why's Estate.
{|one, step, back|};
- Cooper Interaction Design.
- Includes books by Alan Cooper.
See also Extreme
Programming vs Interaction Design.
- Donald Norman's Home
page
- concerned with usability issues.
- Creating
Passionate Users.
- Alas discontinued, but still contains good stuff.
- Quantum-Leaps.com.
- This is the web site for the book "Practical Statecharts in
C/C++", which describes how state machines can be effectively
implemented with OO techniques.
- Programming
Pearls.
- Code Generation Network.
- Code
and Personality.
- Different attitudes to "life" and how the impact on code
design.
- Recommended
Links from AI
Horizon.
- An introductory site some students have found helpful. Covers
programming fundamentals, and is geared towards basic AI algorithms.
The site doesn't seem to have been updated in a few years though, so
some links may be stale. (I know that problem. Moving swiftly on!)
- Delta Debugging.
- See also the book Why Programs Fail by Andreas Zeller. The concepts here made it into a chapter in Beautiful Code.
- Webliography [on] Software Engineering
- Literate Programming - Propaganda and Tools
- Extreme Programming: A gentle introduction (www.extremeprogramming.org)
- See also my software testing page for more on this.
- Patterns Home Page.
- The
c2.com
Patterns WikiWikiWeb.
- Pattern Oriented software Architecture.
- Patterns
for Scripted Applications.
- Ulrich Köthe's Software Engineering Hotlist.
- Joe Yoder's
Adaptive Object Modelling papers.
- Of interest on the same page is The
Selfish Class, by analogy with Richard Dawkins' selfish
gene, how good code gets re-used. See also User-Defined
Product Framework by Ralph E. Johnson and Jeff Oakes. There
are more AOM links at
MetaData and Adaptive Object-Model Pages.
Some of this flexibility would seem to relate to Table Oriented
Programming, although I don't agree with all its
conclusions. For example, some of the refactoring that is claimed
control tables achieve can be achieved in OO with a visitor pattern,
where the object visits the data in the structure, responding
accordingly.
- NIST's Dictionary of Algorithms, data Structures and Problems.
- Titivillus'
Software Development page.
- Links to interesting papers and lots of languages
- Esoteric
Programming Wiki.
- I'm not sure how many of these things one would
actually want to use for serious work, but
they are "interesting" (in the mathematical sense of the word!).
- Piriform, Ltd.
- Produce some interesting Free software (utilities) for Windows.
(cclean, recuva, defraggler).
FreeOS.com.
- A site devoted to free operating systems in general.
osnews.com.
- Freshmeat.net
- A site listing recent releases of free software
- TheFreeCounty.com.
- GNU Project of the FSF Home Page
(
English (1),
English (2),
French,
Irish
Mirrors)
- This GNU's Not Unix, "gnot"
Flanders
and Swann`s animal (also here.).
The What's New page
(English
(2),
French,
Irish
mirrors) is worth checking regularly.
The Software
Directory.
A list of their
FTP Mirrors is available
(English,
French,
Irish
mirrors)
See also:
- The GNU Scientific Library.
- TkInfo: A Browser for Info Files.
- The Ghostscript Home Page.
- See also ghostscript.com.
- Autoconfigure Tutorial.
-
There is a more recent version of this at The AutoToolset
Homepage. (as described in
this page at Washington.edu.) The Autoconf manual is an obvious
source of information.
There is also Autobook a book about autoconf, automake, libtools...
The packages can be had from
ftp://ftp.warwick.ac.uk/pub/gnu/,
(which has not been updated recently) or
ftp://ftp.mirror.ac.uk/sites/ftp.gnu.org/gnu/.
There is a French mirror ftp://ftp.cs.univ-paris8.fr/mirrors/ftp.gnu.org/
- Language Lists
-
- The Year In
Scripting Languages.
- A suammary of activity in different scripting languages for
the past calendar year.
- ACM "Hello
World" Page.
- That first example program in many different languages
- Google Directory's
Programming
Languages page.
-
Programming Languages Research.
- Dictionary of Programming Languages.
- Keith Waclena's Programming Language Crisis
-
has a very personal
view on a number of languages, but based on a desire
to get practical work done easily (in a Unix environment, mainly).
- PLNews: Programming Language News.
- The
arkadia.com Programming Langauges page.
- Lambda the Ultimate.
- The TUNES Project
Wiki.
- The
tunes.org Languages page on the Wiki.
- Free compilers list
- See also info about gcc for the PC (djgpp).
- See also Eli.
- PCCTS
- Andrew W. Appel's
Modern Compiler
Implementation in
C.
-
See also CUP's
page about this book.
- Jack Crenshaw's "Let's
Build a Compiler".
- A recursive descent compiler, but incrementally developed. Note:
these files are in plain text, and the top several lines are blank.i
The code is in Pascal, but a FORTH version is
available and there is a similar series of articles based on
Scheme, available. See this LTU
article.
- Finite State Machines
-
- Finite State Machines in Cobol
- this is really about implementations in COBOL, but it
has good points about the general application for FSMs
to problems.
- Finite
state machine papers has gone (18-NOV-2005)
- Mainly Postscript.
- Top Down Operator Precedence Parsing
-
An alternative to the BNF based parsers using YACC, etc.
- Vaughn Pratt's paper Top Down Operator Precedence.
- The O'Reilly book Beautiful Code has a chapter on this, by Douglas Crockford.
- Top Down Operator Precedence by Douglas Crockford
- Simple Top-Down Parsing in Python" by Fredrik Lundh
- Top Down Operator Precedence Parsing by Eli Bendersky.
- tinypy, a tiny Python interpreter whose parser uses this technique.
- Pratt Parsers - Expression Parsing Made Easy describes how to do this in Java.
- Extensible, Statically Typed Pratt Parser in C#.
Philip Hazel's PCRE package
A regular expression package with Perl-like syntax.
Jeffrey Friedl's Regular Expression page
is definitely worth examining.
See also Scriptics'
"New Regexp Features in Tcl 8.1" page has gone
(18-NOV-2005).
Toolkit for Conceptual Modelling (TCM)
tools for creating graphics describing a program's purpose, to
aid in maintenance and specification.
Awk.
a tutorial from
CyberTechnics.
See also The
Gawk manual.
C
The C Book.
comp.lang.c FAQ.
GCC is the GNU compiler collection. There is advice on building GCC for Solaris (10), the most unusal part
of which is for Solaris9 GMP must be told to build for Solaris7.
C++
There are some good online FAQS, in particular
C++ FAQ Lite (French,
Dutch mirrors)
)
See also Bjarne Stroustrup's homepage.
There is information on
GCC
which has g++ supports the
Standard C++ library,
with some of the support coming from
libstdc++ v3
has gone (18-NOV-2005).
(It can be had from ftp://ftp.warwick.ac.uk/pub/gnu/gcc/, for example.)
EGCS merged with GCC in April 1999.
There are other
C++ links at
Cetus Links.
The C++ Annotations by Frank B. Brokken
is more than just annotations, it is a good
tutorial/reference.
The Boost C++ Libraries are peer-reviewed
to work with the STL, often by people involved in the STL's design.
The Fast Light Tool Kit Home
Page; FLTK is an LGPL'd C++ graphical user interface toolkit
for X
(UNIX®), OpenGL,
and WIN32 (Microsoft® Windows® NT 4.0, 95, or 98). There are
Python and Perl wrappers
have gone (18-NOV-2005) for it, too.
See also wxWindows, and The FOX Toolkit (which is
written in C++).
Visual C++ Developer Center.
Factor.
A language clearly descended from Forth.
Fancy.
A language which is OO and concurrent. In development.
FISh
A functional language claimed to be very efficient.
Forth
Forth Web Ring.
FORTH, Inc..
Forth Research at Institut für Computersprachen,
Forth Information on Taygeta.
The Forth Research Page at Bournemouth.
A Forth page from Michael Somos.
The
4tH compiler.
Bolo's Forth
page.
Forth Info on c2.com wiki.
FIG UK.
The Annexia Forth page, including a minimal Forth compiler and tutorial,
as discussed on LtU.
See also Onyx and Factor.
Fortran
The Fortran Market.
User Notes on
Fortran Programming. GFortran the GNU Fortran
for GCC-3.4.0 and later has a
wiki which exlains
that it was born of a fork has gone
(18-NOV-2005) in The G95 Project.
GNU Fortran
(G77) news.
Michel Olagnon's Fortran 90 List.
There is also f2c.
Icon
The Icon Home Page
is the main source of information about the language.
UTSA
have some good information about Icon,
particularly a local guide to the language.
In the UK, at Brighton, there is
some copies
of Icon information has gone (18-NOV-2005) mainly for the PC.
There is a good introductory article called
A Glimpse of Icon.
See also Unicon.
Io.
A small, OO language with simple syntax. Found on the RubyGarden
virtual machines page.
Java.
Bruce Eckel's Java site.
Java Beginner's
FAQ, Java
Intermediate FAQ, and the complete list of
FAQs from javaranch.com.
Tutorials from Sun.
Julia.
A language for scientific computing inheriting from Python, Ruby and Matlab.
The Julia Language.
The Julia Manual.
The Julia Blog.
Julia source on github.
Lisp.
- John McCarthy's Home page.
- The
Common Lisp Hyperspec..
- from lispworks.com.
Lua
The site has
News and
Recent Changes pages as
well. LuaNews is a
summary of recent happenings on the mailing list and in the world of Lua.
The book "Programming in
Lua" is online, but well worth buying, IMHO.
See also lua-users.org.
Rub/Lua allows the
embedding of Lua interpreters in Ruby.
See also LuaX
for an extended Lua with I/O support for windows.
Lush.
A GPL'ed Object Orientated blend of Lisp and C, which is
intended to be fast, flexible, high level, and particularly suited
to engineering applications.
Objective Caml.
Formerly Caml Special Light.
The Caml Language
is a functional programming language. The
Objective Caml home page
is the place to look for information. See
The
faq,
the FAQ for
beginners (which has gone 18-NOV-2005)
and the
Caml Quick Reference Guide,
also
The comp.lang.ml FAQ.
I NO LONGER have a
local copy of the manual set, because my copy was way out of data,
and I have not been using the language. A copy can be obtained from
the
Objective Caml Distribution page.
Christophe Raffalli has some Objective Caml stuff.
See also Introduction to Functional Programming (1996-7) from Cambridge University.
There is the book
A Functional Approach to Programming
which is based around Caml. There is a version of Developing
Applications With Objective Caml on-line.
Object Orientation Orientation
Onyx
Onyx is a language similar to Forth and Postscript, with threads,
and designed to be easily embedded in C code.
Orc
A language for distributed and concurrent programing.
GNU Pascal
p2c Pascal to C translator
Perl -- Practical Extraction and Report Language.
- use Perl;
- Perl Reference page.
- a reference itself, not a page about "
\$thingy".
- The Perl Mongers site.
- Perlfaq Prime.
- CPAN -- The Comprehensive Perl Archive Network
- This link will actually take you to your mirror.
search.cpan.org.
perldoc.com.
- a UK copy of the comp.lang.perl.misc FAQ.
- a UK copy of the comp.lang.perl.announce FAQ.
- University of Florida Perl archive.
effectiveperl.com.
- The website to go with the book "Effective Perl Programming".
- The Perl Foundation.
- Perl Mongers.
See also the
comp.lang.perl.misc and
comp.lang.perl.announce newsgroups and
home pages of
Larry Wall,
Randal L Schwartz and
Tom Christiansen (wherever his page is),
for info straight from the horse's ... er, camel's mouth.
M-J. Dominus' Perl Paraphernalia.
See also
ftp://sunsite.doc.ic.ac.uk/pub/computing/programming/languages/perl/ and
Tim Bunce' Module List, or
the UK copy of it which
lives in
ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/. Also see
comp.lang.perl.modules.
Also, Jeffrey
Friedl's Perl page has some good utilities on it.
Pike
Another slant on OO, with pretty good string handling...
It is claimed to be fast. I have not tried it yet.
PostScript
See also S. G. Kleinmann's PostScript page,
the newsgroup
comp.lang.postscript
and the newsgroup's FAQ.
See http://www.postscript.org/.
(There is interesting information at
http://www.cappella.demon.co.uk/
about PS as a publishing medium.)
PostScript Command Summary.
Another
Postscript manual has gone (18-NOV-2005).
PostScript
Command Summary.
There is an ftp mirror site at:
ftp://ftp.tex.ac.uk/tex-archive/support/ghostscript/.
psutils can be had from: ftp://ftp.dcs.ed.ac.uk/pub/ajcd/,
or ftp://ftp.tardis.ed.ac.uk/users/ajcd/.
Python
REBOL
An interesting language with web/ftp/email capabilities built in.
See also The OSCAR Project
and FreeBell.
Ruby
Tcl, Tk and Expect
Info on the Tcl ("Tickle") and Tk languages by
John Ousterhout, . See also
comp.lang.tcl and
comp.lang.tcl.announce newsgroups,
the comp.lang.tcl.announce FAQ (from faqs.org ).
Neosoft provide a
WWW interface
(which has gone 18-NOV-2005)
to their archive which is available by
ftp.
There is a very well laid out
manual in HTML format.
and a guide to writing Interfaces in Tcl/Tk.
Don Libes' Expect distribution
for automating dialogues with programs is build on top of tcl and tk;
see The Expect Home Page.
See also the Tcl Wiki Expect
page.
The TCL Sourceforge Project.
Also see the Entropy Liberation Front and
the tcltk.com site has
gone (18-NOV-2005).
Also, there is Tom Phelps' TkMan,
a GUI interface to Unix Manuals, which allows searching
of the pages, etc,
Unicon.
The Unicon Home Page
describes the project.
The POSIX interface for the Unicon programming language by Shamim Mohamed.
There is a Unicon page
at Rosetta Code.
Emacs
Emacs home page
(English,
French,
Irish mirrors).
On-line Emacs Manual
(
French,
Irish mirrors).
Emacs FAQ for Windows
(English,
French,
Irish mirrors).
Emacs FAQ in html from
geek-girl.com has gone (18-NOV-2005).
Emacs FAQ in text
(English
(1),
(English
(2),
French,
Irish mirrors).
GNU Emacs for Mac OS.
Emacs Reference Materials
from geek-girl.com.
Xemacs.
http://www.emacs.org/.
VI FAQ
See also The VI Pages - All About VI and its clones, and,
of course, www.vim.org,
and Vim Online.
For vim there is
matchit
for languages that use if...end instead of braces.
See alsoThe Vim
Webring,
The Vim Cookbook.
There is a good list of tips at http://www.rayninfo.co.uk/vimtips.html.
Vim information for Ruby is on
my Ruby page. There is also a Tutorial about
using Vim for XML from pinkjuice.com
Unix, Shell, Linux
- "Learn
Unix in 10 Minutes".
- Usenix.
- Unix
Sys Admin Resources
- from Stokely Consulting.
- Unix File and Directory Permissions and Modes, explained in some depth.
- Useless use of
cat award.
- lots of examples of pointless CPU usage in the shell.
- Unix Text
Processing.
- The Art of Unix
Programming by Eric S Raymond
- USAIL Unix System Administration Independent Learning.
- Lex and Yacc page.
- yacc - a compiler compiler.
- The Heirloom Project.
- Traditional Unix tools, including the text processing ones, modernised
to work with UTF8 and modern systems.
- Autotools book website.
-
This is the online version of GNU Autoconf, Automake and Libtool, the print copy of which is not up to date
with the current versions of these tools, according to the main page.
The Autoconf manual is an obvious source of information.
- Lex and Yacc HOWTO.
- ELSOP Unix Resource Center
-
Other Unix information can be found in
the comp.unix.* FAQs,
and an introductory text can be found at
Unix Help for users.
- Unix Sysadmin Aphorisms
- Google Directory's Computers > Software > Editors >
SED page
- Open Directory's Top: Computers: Software: Editors:
SED page.
- A
file
program, because GNU fileutils doesn't have this.
- (
file detects file types using
/etc/magic.)
- The
comp.unix.shell newsgroup's
FAQ
-
S.R.Bourne's
An Introduction to the Shell" (recovered copy).
"Bourne shell programming"
(UK
copy of it has gone 18-NOV-2005 ).
See also Andrew Arensburger's
Bourne Shell Programming page
and Roger Hempel's BOURNE
Shell Programming which is very comprehensive.
My copy of Jeff's Unix Vault (which he
passed to me when he stopped maintaining it).
The document
"csh programming considered harmful"
(
faqs.org copy)
contains a lot of good tips for the Bourne Shell programmer.
Solaris comes with the Korn
shell.
There is An
introduction to Korn Shell (ksh) Programming by Peter Brown,
which is mirrored
here. There is a guide to ksh at
uoregon.edu, originally from
ed.ac.uk.
zsh, an alternative to the Bourne Shell; see also
bash
(English (1),
(English
(2),
French,
Irish
mirrors)
-- The Bourne Again Shell, and
its manual
(English (1),
(English (2),
French,
Irish
mirrors).
Advanced Bash-Scripting Guide.
See also Advancing in the Bash Shell Part I and Advancing in the Bash Shell Part II.
Heiner's SHELLdorado
looks like a useful resource.
Open
Directory's Unix Shell page.
Google
Directory Unix Shell page. The Fault Tolerant Shell ftsh has
useful features for handling difficult to predict failures.
- Find
Command seems to have gone, but see this
- A clear description of the find command with many examples of its use.
See also Finding
things in Unix and Find
part 2.
- Linux
-
This has moved off this page now.
- DNS resources.
- NTP - The Network Time Protocol
-
See also the
David
Mills's resources page and
NTP Time Services on HP-UX which has a number of examples.
There are further links on
NETWORK TIME SYNCHRONIZATION.
There is also
The JANET Network Time Service.
Leap Seconds from
US NEOS.
A Summary of the International Standard Date and Time Notation is a useful document to read.
Of course, The Long Now Foundation deserves mention here, too.
Created:
Created (from existing info on my
home pge)
on 16-MAR-2000
Last Modified:
Last Modified 02-APR-2012 by Hugh Sasse
$Id: index.html,v 1.128 2012/04/02 12:42:16 hgs Exp hgs $