CSL-CROOK - Zbiory, klasy, obiekty, atrybuty
Podstawowymi składnikami modelu symulacyjnego są obiekty definiowane w ramach klas. Każda klasa obejmuje wszystkie obiekty poszczególnego rodzaju. Każdy obiekt należy do jednej klasy i jest identyfikowany poprzez następującą po tej nazwie liczbę wskazującą pozycję danego obiektu w obrębie klasy. Liczba ta jest nazywana indeksem obiektu i jest oddzielona kropką od nazwy klasy. Z każdym obiektem danej klasy może być związany szereg odpowiednio indeksowanych zmiennych. Mogą one służyć do przechowywania informacji numerycznej opisującej obiekty i są nazywane atrybutami tych obiektów. Atrybut jest używany w programie tak, jakby był elementem tablicy. Oznacza to, że w zapisie po nazwie obiektu umieszcza się ciąg indeksów ujętych w nawiasy. Specjalny rodzaj atrybutu jest używany do przechowywania wartości czasowej przyporządkowanej danemu obiektowi w programie modelującym. Atrybut ten jest nazywany komórką czasową i oznaczany literą "T" poprzedzający nazwę obiektu.
Możliwe jest wybranie i zdefiniowanie dowolnego podzbioru z danej klasy. Podzbiory takie są nazywane zbiorami (SET). Obiekt można dodawać do zbiorów lub usuwać ze zbiorów zdefiniowanych w ramach klasy, do której ten obiekt należy.
Rozróżnia się dwa rodzaje zbiorów:
- zbiory uporządkowane, używa się je do modelowania układów z kolejkami. Obiekty mogą być dodawane tylko na początku lub na końcu zbioru uporządkowanego. Tak więc porządek zbioru jest ustalony i pozostaje zachowany podczas wszelkich operacji dokonywanych na zbiorze;
- zbiory boole'owskie charakteryzują się ustalonym porządkiem. Obiekty są przechowywane z zachowaniem porządku w danej klasie i na ustalonych pozycjach odpowiadających indeksom obiektów.
W języku CSL każda klasa musi być zdefiniowana poprzez instrukcję deklarującą o postaci:
- CLASS A. M
- CLASS TIME A. M
- CLASS A. M SET A1,... BSET Ak,...
- CLASS TIME A. M SET A1,... BSET Ak,...
- CLASS A. M (i1,...) SET A1,..., An
- BSET An,...
- CLASS TIME A. M (i1,...) SET A1,..., An
- BSET An,...
Gdzie:
- CLASS - słowo kluczowe, definicja klasy
- TIME - atrybut czasu
- SET - słowo kluczowe, określenie zbioru
- BSET - słowo kluczowe, zbiór boole'owski
- A - nazwa klasy
- m - liczba obiektów wchodzących w skład klasy A.
Źródło: Translator języka CSL-CROOK dla minikomputera MERA-400 w systemie operacyjnym CROOK-4, Instrukcja Programisty (wersja-17/2), Janusz Gocałek, Jacek Klauziński, Poznań, 1985