O jazyku MSL

Syntax jazyka MSL je ovplyvnená štruktúrou vnútorného databázového systému jazyka Visual Prolog. Tento jazyk bol vyvinutí ako provizórny. Posledný vývoj paradigmy "Logic Modeling" priniesol tlak na užitočnosť logickej syntaxe, ale predtým by bolo žiadúce vyvinúť sériu príkladov logicky založených modelov ekosystému, ktoré by pomohli identifikovať oblasť potreby, s ktorou sa musí paradigma "Logic Modeling" stretnúť.

Jazyk MSL používa tieto dátové typy:

Celočíselné typy
integer
short
long
ulong

Reálne typy
real

Reťazcové typy
symbol
string

Komplexné typy
modálny operátor
konjunkcia
term

Premenné
Jazyk MSL podporuje dva typy premenných. Premenné, ktoré sú použité pre agentov v definícii schém a tabuľky pravidiel a časové premenné, ktoré sú použité na označenie časového momentu vo vzorkách.

Všetky príkazy jazyka sú termy. Sú podriadené týmto obmedzeniam:
  1. Na konci súboru nesmú byť žiadne biele znaky
  2. Každý príkaz je definovaný v jednom riadku

MSL nepodporuje žiadnu bodkovú notáciu pre oddelenie príkazov.

Napriek tomu, že jazyk MSL má silný typový systém, nie je žiadne miesto v modeli, kde by sme mohli definovať vlastné typy. Jazyk MSL má svoj vlastný slovník predefinovaných termov s predefinovanými typmi argumentov. Pri používaní termu si jeho syntax musí užívateľ uvedomiť, alebo konzultovať so súborom pomocníka v procese vývoja modelu.

Tento pomocník poskytuje popis všetkých predefinovaných termov, ktoré môžu byť použité v špecifikácii modelu. Počas nasledujúcich kapitol budeme používať kľúčové slovo nondeterm na označenie termov, ktoré môžu vystúpiť niekoľkokrát (s rôznymi parametrami), ale musia vystúpiť aspoň raz. Kľúčové slovo determ označuje termy, ktoré môžu v definícii vystúpiť iba raz, alebo ani raz. Kľúčové slovo compulsory N označuje term, ktorý sa musí v definícii vyskytovať práve N-krát.

Každý argument komplexného termu patrí určitej doméne. Pre špecifikáciu termov a domén sme v tomto manuáli použili nasledovnú notáciu.

KEYWORD functor(Type1 Arg1, Type2 Arg2, ..., TypeM ArgM)
KEYWORD je jedno z označení determ, nondeterm, compulsory N.
TypeM ArgM je špecifikácia M-tého argumentu termu. Ak TypeM je komplexného typu môže mať alternatívne šablóny. Pre špecifikáciu všetkých alternatív používame zápis TypeM = Alt1; Alt2; ...; AltK, kde Alt1; Alt2; ...; AltK sú typové identifikátory.

TypeC = ModOpType * označuje, že TypeC je konjunkciou modálnych operátorov, ktoré prislúchajú typu identifikovaného ako ModOfType. Spôsob zápisu typu TypeC vyzerá nasledovne: [Term1, Term2, ..., TermN], kde Term1, Term2, ..., TermN sú termy prislúchajúce typu ModOfType.
Types = Type * teda znamená, že Types je zoznam termov prislúchajúcim k typu Type.

Spracoval: Dudy