Contents |
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).
- Thriving in a crowded and changing world: C++ 2006-2020
- A free version of The design and evolution of modern C++ by Bjarne Stroustrup. Note that although the PDF file is hosted on the ACM Digital Library, it states that it is available under a Creative Commons Attribution-No Derivatives license, although access would normally be available through the University’s ACM subscription.
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.
Haskell
- Real world Haskell
- An online version of the O'Reilly book with the same title. The full text is freely available, although you are encouraged to buy the printed book if you find it useful. It is also available in print in the library.
- Haskell Wikibook
- This is a Haskell tutorial hosted on Wikibooks which has substantial content, appears largely complete and well laid out. There is also a PDF version for reading offline.
Julia
- Official documentation
- The official documentation on the Julia language website. This is also available in PDF format.
- Think Julia
- An online version of the book by Ben Lauwens and Allen Downey. This was conceived as an introduction to computer science and programming using the Julia language. It is a similar concept and style to Think Python. The printed book is published by O'Reilly.
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.
- OCaml from the very beginning
- The popular book by John Whitington, recommended for part 1A is now freely available online due to a grant from the OCaml Software Foundation
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.
- The Art of Prolog
- An online version of one of the texts for the part IB Prolog course. This is hosted on the KU open research library and there is an online reader, although there is also an option to download a copy in PDF format.
Perl
- Perldoc
- The official site for documentation of the Perl language and various standard modules. This includes a variety of tutorials and references of various parts of the language.
- Free Perl books
- A list of Perl books with freely available full-text versions. This is hosted on www.perl.org which also has a range of other Perl resources.
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 in Scala
- The first edition of the popular book by Martin Odersky, Lex Spoon and Bill Venners. The printed book is now in the third edition, but this older edition is probably still useful.
Compilers
- LLVM
- The Low Level Virtual Machine is widely used as an intermediate representation in language compilers. Formal published documentation is scarce, but the online documents here are a good starting point.
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.
- Structure and interpretation of computer programs
- Although quite old now, this book is still an important text in the field. It is also recommended background reading for the Paper 10 Meta-Programming course.