Information Technology Reference
In-Depth Information
kens accessible from a single layer of menu; thus, I avoided the messiness of
deeply hierarchical menus. The user never types in program code; instead, s/he
uses the mouse to select the intended object of alteration and then replaces it
with another token from the set of menus. Expressions are expanded by re-
placing single-argument expressions with double- or triple-argument expres-
sions. Outsertion enables the user to build an expression around an existing
expression.
To make this system work, all tokens that require arguments provide those
arguments, in unspecified form, when they are first inserted into an expression.
The unspecified form of an argument is a suggestive label that is underlined to
indicate that it remains unspecified and requires the attention of the designer.
Thus, the function CountEvents will appear, when first applied, as follows:
-CSubject, Ve r b , DirObject, HowRecent)
No setup
An extension of the concept of providing all arguments in advance is the pro-
vision of all requisite lines of script. Whenever a role is created or an option is
added to a role, the lines of script that are necessary for that role or option are
automatically inserted into the script. Thus, the user is never burdened with
the task of declaring initial conditions; there are never any two-step operations
in preparing a script.
The upshot of these devices is simple: the user can never make a syntactical
error. Any script that can be written is certain to be syntactically correct. This
safety feature, which should be universal to programming languages, is too
seldom implemented.
Graceful error handling
Poison is another system for gracefully handling errors. Although the scripting
system can obviate all syntactical errors, it is not possible to prevent all runtime
errors, such as division by zero. When such errors arise, the engine responds
gracefully. The error-generating code is flagged as poisoned, and the engine
proceeds normally. However, when the time comes to evaluate results, the en-
gine simply ignores results that have been poisoned. Thus, runtime errors do
not throw the engine off; they result only in a refusal to consider the poisoned
options. The story will proceed normally, hampered only by a lessened breadth
Search WWH ::




Custom Search