Definitions
- ASSEMBLER
- Program that converts a human-readable, text
RedCode assembly language file into a binary PROGRAM IMAGE file. The
ASSEMBLER MAY be part of the main DCoreWars program, or it
MAY be a separate program. The ASSEMBLER MUST also be capable of
disassembling PROGRAM IMAGEs -- that is, of turning a binary image
of a PROGRAM into a human-readable, text RedCode assembly language file.
- CLIENTS
- Prof. Lane and TA Barrick.
- HALT
- Termination of a PROCESS. When a PROCESS HALTs it is
removed from the list of RUNNABLE PROCESSes for its PROCESS GROUP. A
HALTed PROCESS can no longer execute instructions, read or write to
memory, write to the network, or otherwise influence the state of the
game.
- ILLEGAL OPERATION
- An exceptional condition that causes the
PROCESS that generated it to HALT. Examples of ILLEGAL OPERATIONs
include, but are not limited to, attempting to execute a bit pattern
that does not correspond to a legal instruction; attempting to read,
write, or execute a word from outside the bounds of memory for the
RVM on which the PROCESS is executing; or attempting to write to the
network when no network connection has been established.
- MAY
- A requirement that the product can choose to implement if
desired. Can also indicate a choice among acceptable alternatives
(e.g., ``The program MAY do x, y, or z.'' indicates that the choice of
behavior x, y, or z is up to the designer.)
- MUST
- A requirement that the product must implement for full
credit.
- MUST NOT
- A behavior or assumption that must not be violated.
Violating a MUST NOT restriction will result in a penalty on the
assignment.
- PLAYER
- A human player who wrote one of the PROGRAMs that are
battling in the DCoreWars game. The DCoreWars game engine MUST have
some way to track the names of players and associate them with the
PROCESS GROUPs that their PROGRAMs run under.
- PROCESS
- A single thread of execution in a RVM.
- PROCESS GROUP
- All the PROCESSes belonging to a single PLAYER on
a single RVM. Each PROCESS GROUP has a unique ID corresponding to
that PLAYER (e.g., a unique number for that PLAYER or that PLAYER's
name). Different RVMs in a distributed game may have different
PROCESS GROUPs running on them, but all PROCESS GROUPs belonging to
the same PLAYER must have the same ID on every RVM.
- PROGRAM
- The assembly code representing an executable program
-- i.e., the code for one of the warriors.
- PROGRAM IMAGE
- The assembled, binary image of a PROGRAM,
resulting from converting each of the text assembly instructions in
the PROGRAM file into the corresponding bit pattern.
- RECOVERABLE ERROR
- An error condition that the software can
ignore, correct, or otherwise recover from. The program MUST produce
a warning message and then cleanly continue with no corruption or loss
of valid data.
- RedCode Virtual Machine
- The virtual CPU architecture,
including instruction set emulation, memory representation, PROCESS
and PROCESS GROUP handling, etc. that interprets the RedCode
language.
- RUNNABLE
- A PROCESS is RUNNABLE if it has not been HALTED
(i.e., has not performed an ILLEGAL OPERATION or the hlt
instruction). A PROCESS GROUP is RUNNABLE if it contains at least
one RUNNABLE PROCESS and owns at least one cell of memory.
- RVM
- See RedCode Virtual Machine.
- SOCKET
- Special data structure maintained by each PROCESS,
used to record a network connection between that PROCESS and another
RVM. Each PROCESS can have only a single open SOCKET at a time.
- UNRECOVERABLE ERROR
- An error condition from which recovery is
impossible. The program MUST produce an error message describing the
condition and then cleanly halt.
Terran Lane
2004-03-29