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