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 $