Inform is a programming language used for interactive fiction and other creative purposes. For user documentation, and downloads of the apps, go to the Inform home page at: http://www.inform7.com
Most users engage with Inform as an app on their devices: there are apps for MacOS, Windows, Linux and Android, but in the centre of each is the same core compiler and software. This website is part of the Github repository for that core, which is written as a "literate program", meaning that it is compiled both to a "woven", human-readable version as well as a "tangled", computer-executable version. You are now reading the woven version. For more on literate programming, go to the tool used by the Inform project: inweb
Like all complex software systems, Inform is an assemblage of many individual programs, images, PDF files, sets of test cases, documentation, and so on. This page is intended as a jumping-off point for browsing the source code and technical documentation: it doesn't list every last thing.
- ● At the heart of Inform are the first four links below, making up its main compiler. See structure for how they fit together.
- ● Several important kits and extensions used by Inform are also written as literate programs.
A stand-alone build manager which is also Stage 1 of the Inform compiler.
The core Inform compiler, containing Stages 2 to 5.
A stand-alone tool for intermediate-level code, which is also Stages 6 and 7 of the Inform compiler.
Support for predicate calculus, linguistics, syntax trees and more.
A packaging tool for wrapping interactive fiction story files, included with the Inform apps.
A compiler for a low-level programming language, included with the Inform apps.
A tool for typesetting the two books about Inform, and their hundreds of examples, as ebooks or mini-websites, such as the one built into the apps.
A small tool for checking that the Inform source base complies with some self-imposed social norms.
A small tool for formatting the run-time problem displays included with the Inform apps.
A literate-programming tool needed to build the other Inform tools.
A tool for running complex suites of end-to-end tests to verify the correctness of other tools.
File-handling, generating HTML, semantic version-numbering, string-handling, memory management, and so on.