Programming techniques

O-O design · Artificial intelligence · Compiler construction · Database programming · Network programming

It normally doesn't matter what language you use to solve a problem (although some languages are better than others for dealing with specific types of problems). This section deals with approaches to problem-solving that are essentially language-independent.


Object-oriented design:

Document Object-Oriented Analysis and Design
An introductory course.
   ¤  1997. Reproduced by permission.
Home site: http://www.firstnet.co.uk/meniscus/oocnotes.htm (now gone)
Document The UML 1.3 Specification
The full specification of the OMG's Unified Modelling Language. This is a PDF file, so you may need to install a PDF viewer such as Adobe Acrobat or Ghostview before you can read it.
   ¤  Jun 1999. Freely redistributable.
Home site: http://www.omg.org/
Document Patterns and Software: Essential Concepts and Terminology
An introduction by Brad Appleton.
   ¤  Feb 2000. Reproduced by permission.
Home site: http://www.enteract.com/~bradapp/
Document A Design Patterns Tutorial
A brief tutorial on patterns.
   ¤  1996. Free for non-profit use.
Home site: http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/patterns/
Software package Rational Rose/C++ 4.0 student edition
A restricted version of Rational's commercial object-oriented analysis and design tool for C++ (with restrictions such as a maximum of 30 classes). Booch, OMT and UML methodologies are supported, and there are tutorials on each included in the package.
   ¤  Jun 1997. Freeware.
Home site: http://www.rational.com/
Software package Dome
A general purpose Windows CASE toolkit from Honeywell which lets you build models for specific design notations and design systems using those notations. Some pre-built notations are included (Coad-Yourdon, Petri nets, a simplified form of UML, and several others).
   ¤  Feb 2000. Free software under the terms of the GNU General Public License.
Home site: http://www.htc.honeywell.com/dome/
Software package Libero
A tool which lets you design programs visually using state diagrams and then generates code in C, C++, Java, PHP, assembler, or a range of other languages.
   ¤  May 1999. Freeware.
Home site: http://www.imatix.com/
Software package Object Domain
A Windows CASE tool for Booch-style object oriented analysis and design.
   ¤  Aug 1995. Shareware.
Home site: http://www.simtel.net/simtel.net/win3/pgmtools.html (now gone)
Software package UML Studio
A UML design tool which can generate code in Ada, C++, Java or IDL. This is a restricted version which can only be used for small projects. You will need to register is you want to use it for large projects.
   ¤  Oct 2000. Shareware.
Home site: http://www.pragsoft.com/


Artificial intelligence:

Document What is Artificial Intelligence?
A layman's introduction by John McCarthy, the original creator of Lisp.
   ¤  Apr 2000. Reproduced by permission.
Home site: http://www-formal.stanford.edu/jmc/whatisai/whatisai.html


Compiler construction:

Document Compilers and Compiler Generators
A complete online copy of Pat Terry's textbook on compiler writing, originally published by Thomson in 1997 but now out of print.
   ¤  17 Jan 1996. Reproduced by permission.
Home site: http://www.scifac.ru.ac.za/compilers/
Document Introduction to Programming Langauges
A comparative study of programming languages, their development and the development of the programming paradigms that they embody.
   ¤  3 Aug 2001. Reproduced by permission.
Home site: http://cs.wwc.edu/~aabyan/221_2/PLBOOK/
Software package Coco/R
An LL(1) compiler generator which generates parsers and scanners in Java. Includes full source code.
   ¤  Jul 2001. Freeware.
Home site: http://cs.ru.ac.za/homes/cspt/cocor.htm
Software package Coco/R
An LL(1) compiler generator which generates parsers and scanners in Modula-2. Includes full source code.
   ¤  Jun 2001. Freeware.
Home site: http://cs.ru.ac.za/homes/cspt/cocor.htm
Software package Coco/R
An LL(1) compiler generator which generates parsers and scanners in Pascal. Includes full source code.
   ¤  Jun 2001. Freeware.
Home site: http://cs.ru.ac.za/homes/cspt/cocor.htm
Software package Coco/R
An LL(1) compiler generator which generates parsers and scanners in C or C++. Includes full source code.
   ¤  Jun 2001. Freeware.
Home site: http://cs.ru.ac.za/homes/cspt/cocor.htm
Software package Bison
An parser generator tool which generates LALR(1) parsers in C.
   ¤  Mar 1997. Free software under the terms of the GNU General Public License.
Home site: http://www.delorie.com/
External website The comp.compilers newsgroup
A newsgroup devoted to compilers and their workings.


Database programming:

Document A Gentle Introduction to SQL
An introductory tutorial on SQL, the standard database query language used by most modern database systems.
   ¤  Feb 2000. Reproduced by permission.
Home site: http://www.dcs.napier.ac.uk/~andrew/gisq/
Software package MySQL 3.23
A free database system implementing SQL, the standard database query language. It consists of a server and a number of client applications which can communicate with it (possibly from a remote machine).
   ¤  May 2001. Free software under the terms of the GNU General Public License.
Home site: http://www.mysql.com/


Network programming:

Document A Perl CGI Tutorial
A nice introduction to using Perl for CGI scripting by Nik Silver.
   ¤  15 Jun 1995. Reproduced by permission.
Home site: http://agora.leeds.ac.uk/Perl/Cgi/start.html (now gone)
Document The CGI Open FAQ
   ¤  15 Jun 2000. Freely redistributable.
Home site: http://www.boutell.com/
Document The CGI Programming FAQ
   ¤  29 May 1998. Freely redistributable.
Home site: http://www.htmlhelp.com/
Document Windows Sockets: A Quick and Dirty Primer
A guide to writing Winsock-based Internet applications for Windows.
   ¤  31 Dec 1999. Reproduced by permission.
Home site: http://world.std.com/~jimf/papers/sockets/winsock.html
Document The Winsock Specification
The specification for the implementation of Berkeley sockets used to provide Internet connectivity on Windows systems.
   ¤  20 Jan 1993. Freely redistributable.
Home site: ftp://ftp.qdeck.com/pub/general/winsock.doc (MS Word document; HTML markup by John English)
Software package JacORB 1.3.30
A Corba 2.0 object request broker for Windows implemented in Java. Source code is also included.
   ¤  Jun 2001. Reproduced under the terms of the GNU General Public License.
Home site: http://www.inf.fu-berlin.de/~brose/jacorb/
Software package Mico 2.3.3
A Corba 2.0 object request broker for Windows (C++ source code only; you'll have to compile this yourself).
   ¤  Jan 2001. Reproduced under the terms of the GNU General Public License.
Home site: http://www.mico.org/
Software package OmniORB 3.0.4
Another Corba 2.0 object request broker for Windows, with C++ source code.
   ¤  Sep 1999. Freeware.
Home site: http://www.uk.research.att.com/omniORB/omniORB.html
Software package CorbaScript 1.3.3
A scripting tool that lets you interact dynamically with a Corba server. Great for testing and debugging Corba systems. C++ source code is included.
   ¤  May 2000. Freeware.
Home site: http://corbaweb.lifl.fr/


BURKS version 6 · Copyright © John English 1996-2001. All rights reserved.