Compiling imperative code inside phrase or rule definitions. This is version 1.
-
-
What This Module Does - An overview of the imperative module's role and abilities.
-
-
Chapter 1: Configuration and Control
-
Imperative Module - Setting up the use of this module.
-
-
Managing the compilation of Inter functions.
-
Stack Frames - When Inform compiles imperative code, it does so in the context of a "stack frame". -
Local Variable Slates - The collection of Inter locals belonging to a stack frame. -
Local Variables - Local variables are used for call parameters, temporary values, and other ephemeral workspace. -
Local Parking - Like Free Parking in Monopoly, except that it is not free and has an overhead cost. -
Code Blocks - Blocks of code are used to give conditionals and loops greater scope, as in more traditional programming languages. -
Functions - To compile Inter functions. -
Phrase Requests - To store and later fill requests to compile To... phrases. -
Closures - To provide the names of phrases as first-class values. -
Compile Imperative Definitions - Compiling an Inter function from the body of an imperative definition.
-
-
Generating code to test or assert propositions from predicate calculus.
-
Compile Values - To compile specifications of values into Inter value opcodes or array entries. -
Compile Schemas - Here we compile fragments of code from paraphrases written in Inform 6 notation, and use that ability to compile general predicate calculus terms. -
Compile Atoms - Given an atom of a proposition we compile Inter code to test it, to make it henceforth true, or to make it henceforth false. -
Deciding to Defer - To decide whether a proposition can be compiled immediately, in the body of the current routine, or whether it must be deferred to a routine of its own, which is called from the current routine. -
Cinders and Deferrals - To compile terms, having carefully preserved any constants which might have been lost in the process of deferring a proposition (such tricky constants being called "cinders"). -
Compile Deferred Propositions - To compile the Inter functions needed to perform the tests or tasks deferred as being too difficult in their original contexts.
-
-
Generating code to perform invocations of individual phrases.
-
Compile Blocks and Lines - Compiling a code block of lines from an imperative definition. -
Compile Invocations - Generating code to perform an invocation. -
Compile Invocations As Calls - An invocation defined with Inform 7 source text is made with an Inter function call. -
Compile Invocations Inline - Here we generate Inter code to invoke a phrase from its inline definition. -
Compile Solutions to Equations - To compile code to solve an equation involving numerical quantities. -
Compile Arithmetic - To compile code performing an arithmetic operation.
-
Powered by Inweb.