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.