Computer Laboratory

Library

Fortran

Fortran 77 Standard
The official Fortran 77 standard, ANSI X3J3/90.4, freely available here in HTML format. Although it may not be exactly the same as the printed version of the standard, a lot of useful information about the implementation of the language can be found in this document.
Interactive Fortran 77
The full text of Ian Chivers and Jane Sleightholme's book of the same title which is now out of print.
Fortran 95 Standard
A draft copy of the Fortran 95 standard, produced by J3, the US Fortran standards committee. This draft is sufficiently close to the final international standard to be useful, but is not necessarily correct in all details. The final version is not freely available.
Fortran 2000 Standard
Like the above, but a draft of the international standard ISO/IEC 1539-1 for Fortran 2000. Again, the final version is not freely available.

C++

Thinking in C++
Bruce Eckel's Thinking in C++, the printed copy of which is available in the library. There is also a similar book featuring the Java programming language (see below).

Java

The Java language specification
The free online version of the official Java language specification. This edition has been updated for Java SE8.
The Java virtual machine specification
The free online version of the official Java virtual machine specification. This edition has been updated for Java SE8.
Java tutorials
A collection of online Java tutorials which are parallel to the content in Oracle’s official Java tutorial book.
Thinking in Java
Bruce Eckel's Thinking in Java, the Java counterpart to the C++ book above. This is the third edition which is freely available online where the more recent 4th edition is not.

ML

Introduction to Standard ML
Bob Harper's Introduction to Standard ML. A working draft of a thorough book length introduction to the ML language.
Basis Library
Documentation for the Standard ML Basis library. This material formed part of the book published by Cambridge University Press which is available in the library.

Objective Caml

O'Reilly book
A preliminary version of a translation from the French title: Développement d'applications avec Objective Caml, which was published by O'Reilly. The translation is reasonably complete, but there may be some errors in it.
User's manual
The official user manual for the Objective Caml system. The first two sections of the manual provide information about the syntax of the language, while the remainder covers use of the langauge tools and libraries.

Prolog

Logic programming in Prolog
An online version of the book by Ulf Nilsson and Jan Maluszynski. The book itself is out of print but the full text remains freely available here.

Python

Python documentation
The official list of Python documentation including that supplied as part of the standard distribution of the language.
Python Cookbook
An extremely comprehensive online collection of fragments of Python code covering most requirements. Also included are basic details on how to use each method and how they work.
NumPy reference
An introduction to the NumPy package of numerical extensions for Python. Good documentation for this package is hard to find, although another list of documents is available on the SciPy website.

Scala

Scala reference manual
Scala is a pure object-oriented, type safe language which compiles to, and is fully interoperable with, Java. The official reference manual can be found via the above link, and there are also some tutorials from the same site.
Scala by example
A draft copy of Martin Odersky's book Scala by Example. This title is on the undergraduate reading list and is at present only available online.

Programming language semantics

The Semantics of programming languages
Matthew Hennessy's book, The Semantics of programming languages. This is now out of print, so this is the only source other than the library's copy. Please note that this file is compressed postscript, so you will need gzip and ghostview or similar tools to read it.