| C | Set of possible configurations. |
| ==> | Transition relation (C x C) |
| I | A function mapping a program to an initial configuration: Program ==> C. |
| F | Set of final configurations. |
| O | Output function that maps a final configuration to an answer: F ==> Answer. |
For BARK using the infinite register virtual machine (RVM), we have:
| C | Instructions x PC x RegisterFile | A configuration is defined by an (infinite) array of instructions, a program counter (PC), and an infinite register file. |
| I |
For a Program with n commands numbered from 0 to n - 1:Instructions[i] = Program[i] for i >= 0 && i < nPC = 0 RegisterFile[n] = 0 for all integers n |
| The initial configuration is created by pushing all the program commands into the Instructions array, setting the program counter to 0, and storing zero in every register.
|
|
| O |
Answer = RegisterFile[0] |
When the machine terminates, the answer is in the first register.
|
| F |
Instructions[PC] = HALT |
| Execution terminates when the program counter is pointing to a HALT instruction. |
|
University of Virginia CS 655: Programming Languages |
cs655-staff@cs.virginia.edu Last modified: Mon Feb 26 12:48:15 2001 |