# program

### Funkce

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;

### Syntax

      program program_name;
        rem = string;
        timer = timer_name;
        send_same_data;
      end_program;

### Specifické parametry přístroje

Přístroj nemá žádné specifické parametry.

### Nativní procedury přístroje

    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.

### Událostní procedury přístroje

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.

### Specifické událostní procedury přístroje

Přístroj nemá specifické událostní procedury.