mirror of
https://github.com/ganelson/inform.git
synced 2024-07-05 16:44:21 +03:00
46 lines
2.6 KiB
Plaintext
Executable file
46 lines
2.6 KiB
Plaintext
Executable file
Title: Overview
|
|
Author: Graham Nelson
|
|
Purpose: A documentation page.
|
|
Language: C
|
|
|
|
@ This website holds human-readable, or "woven", forms of the source code for
|
|
the Inform programming language and its associated tools. To download and
|
|
build Inform, go to the repository's front page and follow the instructions
|
|
there. These pages are purely to help maintainers of Inform, or anyone
|
|
interested in looking under the hood, to see how it works.
|
|
|
|
This source code is platform-independent, and provides Inform as a set of
|
|
command-line utilities following Unix conventions. Most writers using
|
|
Inform do so through a user interface provided by an app, and those apps
|
|
have their own repositories holding source code which is very much not
|
|
platform-independent. But the tools here form the engine inside each of them.
|
|
|
|
@ The Inform software uses literate programming, a doctrine invented by Donald
|
|
Knuth. Under LP, a single program is called a "web", and can either be
|
|
"woven" for humans to read or "tangled" for computers to compile. You are
|
|
reading the woven form. There are around 30 webs in this repository,
|
|
though half of those make modules rather than stand-alone programs, so
|
|
the actual number of programs is smaller.
|
|
|
|
The |inweb| and |intest| repositories also contain webs, and have pages
|
|
similar to this one where they can be seen. In particular, |inweb| contains
|
|
a web of a module called |foundation| which is used by all of the command-line
|
|
tools associated with Inform, and which provides utility functions for
|
|
memory-management and the like, but contains none of the logic guiding how
|
|
a program should run or what it should do. For convenience, some of these
|
|
pages provide links to |foundation|.
|
|
|
|
@ The webs here are divided up as follows:
|
|
(a) The Inform 7 compiler reads in natural-language source text and writes out
|
|
a program for a conventional programming language, normally the C-like
|
|
Inform 6. Its three phases are each provided as stand-alone tools: |inbuild|,
|
|
the front end; |inform7|, the core; and |inter|, the back end.
|
|
(b) Other command-line tools are useful for building or working with Inform,
|
|
but do not involve compilation: |inblorb|, a packaging manager; |indoc|, to
|
|
format documentation; |inpolicy|, a lint-like tool for checking Inform's source
|
|
code; and |inrtps|, to format run-time problem messages.
|
|
(c) Wnenever Inform 7 runs, it also reads in an "extension" piece of source
|
|
text called |Basic Inform|, defining the language, and it often then also reads
|
|
another called |Standard Rules|, enabling it to be used for interactive
|
|
fiction. It also uses precompiled libraries of code called "kits".
|