Cryptography Reference
In-Depth Information
relatively easy to create a reversible machine, albeit one that doesn't
come with many of the features of modern compilers.
Here are the major parts of the system:
Constant List The major phrases that will be issued by the program
as part of its grammar will be stored in this list, constant-list .
It is officially a list of pairs. The first element of each pair is a
tag-like salutation that is used as a shorthand for the phrase.
The second is a string containing the constant data. This con-
stant list is part of the initial program that must be distributed
to both sides of the conversation. The constants do not change;
so there is no need to transmit them along with the waste state
produced by running a program forward. This saves transmis-
sion costs. The main purpose of the constant list is to keep all
of the phrases that will be output along the way. These are often
long, and there is little reason for them to change substantially.
Defining them as constants saves space. The constant list can
also include any data like the variable list. The data just won't
change.
Var iables The data is stored in variables that must be predefined to
hold initial values. These initial values are the only way that
information can actually be assigned to a variable. The rest of
the code must change values through the swap command. The
variables are stored in the list var-list , which is as usual a list
of pairs. The first element is the variable tag name. The second
is the data stored in the variable.
There are five types of data available here: lists, strings, inte-
gers, floating-point numbers, and tags. Lists are made up of any
of the five elements. There is no strict type checking, but some
commands may fail if the wrong data is fed to them. Adding
two strings, for instance, is undefined.
Some care should be taken with the choice of variables. Their
contents will need to be sent along with the output so the re-
cipient can reverse the code. The more variables there are, the
larger this section of “waste” code may be.
Procedure List Ateachstep,somecodemustbeexecuted. These
are procedures. For the sake of simplicity, they are just lists
of commands that are identified by tags and stored in the list
proc-list . This is a list of pairs. The first element is the tag
identifying the procedure, and the second is the list of com-
mands. There are no parameters in the current implementa-
tion, but they can be added.
Search WWH ::




Custom Search