Vzhledem k obecné programovatelnosti všech virtuálních přístrojů pozbyl virtuální přístroj program své kdysi výsadní postavení, coby jediný virtuální přístroj implementující jazyk OCL. Tento virtuální přístroj byl jako jediný schopen vykonávat obecný algoritmus a volat nativní OCL procedury jiných přístrojů.
Identickou funkci jako přístroj program dnes má jakýkoliv přístroj implemetující systémovou událostní proceduru OnActivate(). Virtuální přístroj program byl v systému ponechán především z důvodu zpětné kompatility s aplikacemi pro starší verze systémů Control Panel a Control Web, stále se ale může uplatnit v situacích, kdy je zapotřebí použít zvláštní virtuální přístroj obsahující pouze procedury a sám o sobě nevykonávající žádnou činnost.
Vzhledem k neexistenci procedur ve starších verzích systémů Control Panel a Control Web byla i forma zápisu algoritmu odlišná od zápisu procedury OnActivate(). Algoritmus se zapisoval přímo za klíčovým slovem begin a byl ukončem klíčovým slovem end, bez deklarace hlavičky procedury. Z důvodů zpětné kompatibility je přístroj program stále schopen načíst tuto formu zápisu.
program p; timer = 0.1; begin (* algoritmus *) end; end_program;
Pokud je ale zdrojový text generován z grafické podoby, je kód již vygenerován s procedurou OnActivate().
program p; timer = 0.1; procedure OnActivate(); begin (* algoritmus *) end_procedure; end_program;
program program_name; rem = string; timer = timer_name; send_same_data; end_program;
Přístroj nemá žádné specifické parametry.
Run()
Volání této nativní procedury je ekvivalentí volání procedury OnActivate() a je ponecháno z důvodů udržení kompatibility se staršími aplikacemi.
Přístroj může volat standardní událostní procedury:
OnActivate()
Podrobnější informace k těmto procedurám lze nalézt v kapitole Programování a procedury.