Wolfram Language Paclet Repository

Community-contributed installable additions to the Wolfram Language

Primary Navigation

    • Cloud & Deployment
    • Core Language & Structure
    • Data Manipulation & Analysis
    • Engineering Data & Computation
    • External Interfaces & Connections
    • Financial Data & Computation
    • Geographic Data & Computation
    • Geometry
    • Graphs & Networks
    • Higher Mathematical Computation
    • Images
    • Knowledge Representation & Natural Language
    • Machine Learning
    • Notebook Documents & Presentation
    • Scientific and Medical Data & Computation
    • Social, Cultural & Linguistic Data
    • Strings & Text
    • Symbolic & Numeric Computation
    • System Operation & Setup
    • Time-Related Computation
    • User Interface Construction
    • Visualization & Graphics
    • Random Paclet
    • Alphabetical List
  • Using Paclets
    • Get Started
    • Download Definition Notebook
  • Learn More about Wolfram Language

VirtualMachine

Guides

  • Virtual Machine Package

Symbols

  • VirtualMachineAdd
  • VirtualMachineDefinition
  • VirtualMachineExecute
  • VirtualMachineList
  • VirtualMachine
  • VirtualMachineObject
  • VirtualMachineObjectQ
  • $VirtualMachines

Other

  • Intel4004
  • MOS6502
  • NFA
  • PDP1
  • PDP8
  • RegisterMachine
Wolfram`VirtualMachine`
VirtualMachineExecute
​
VirtualMachineExecute[obj,n]
runs the
VirtualMachineObject
obj
for
n
steps.
​
​
VirtualMachineExecute[obj,"command"]
executes
"command"
on the
VirtualMachineObject
obj
.
​
​
VirtualMachineExecute[obj,"command",params,...]
executes the command with the parameters
params
.
​
Details and Options

Examples  
(6)
Basic Examples  
(2)
Create an instance of the "PDP-8" virtual machine:
In[1]:=
pdp8=
VirtualMachine
["PDP-8"]
Out[1]=
VirtualMachineObject
Machine: PDP-8
StepCount: 0
InstructionRegister: AND
(0000)
ProgramCounter: 0000

In[2]:=
pdp8["Commands"]
Out[2]=
{Debugger,FrontPanel,ManualOperate,MemoryLoad,MemoryRead,MemoryReset,MemoryWrite,ProcessorReset,Reset,Run,RunTrace}
Load a program that fills the machine's memory with the value 1755:
In[3]:=
VirtualMachineExecute
[pdp8,"MemoryLoad",{519,1798,1030,2560,3842,0,8,1755}]
Out[3]=
VirtualMachineObject
Machine: PDP-8
StepCount: 0
InstructionRegister: AND
(0000)
ProgramCounter: 0000

Run the machine until it halts:
In[4]:=
VirtualMachineExecute
[pdp8,Infinity]
Out[4]=
VirtualMachineObject
Machine: PDP-8
StepCount: 16352
InstructionRegister: OPR
(7402)
ProgramCounter: 0005

The program has filled the entire memory:
In[5]:=
Normal[pdp8["MemoryState"]]〚9;;〛//Counts
Out[5]=
17554088
​
Create a "RegisterMachine":
In[1]:=
rm=
VirtualMachine
["RegisterMachine","Program"{"INC"[1],"INC"[1],"INC"[1],"DECJ"[2,1],"DECJ"[1,6],"INC"[2],"DECJ"[1,5],"DECJ"[2,3]}]
Out[1]=
VirtualMachineObject
Machine: RegisterMachine
StepCount: 0
Status: Waiting

Run the register machine for 10 steps:
In[2]:=
VirtualMachineExecute
[rm,10]
Out[2]=
VirtualMachineObject
Machine: RegisterMachine
StepCount: 10
Status: Waiting
(StepsConstrained)

Show the machine state after the evolution:
In[3]:=
rm["MachineState"]//Dataset
Out[3]=
Registers
{0,2}
ProgramCounter
8
Status
Waiting
TerminationReason
StepsConstrained
Scope  
(1)

Options  
(1)

Interactive Examples  
(1)

Neat Examples  
(1)

SeeAlso
VirtualMachine
 
▪
VirtualMachineObject
RelatedGuides
▪
Virtual Machine Package
""

© 2025 Wolfram. All rights reserved.

  • Legal & Privacy Policy
  • Contact Us
  • WolframAlpha.com
  • WolframCloud.com