Begin Class Glyph; Virtual: Procedure print Is Procedure print; Begin End;

Glyph Class Char (c); Character c; Begin Procedure print; OutChar(c); End;

Glyph Class Line (elements); Ref (Glyph) Array elements; Begin Procedure print; Begin Integer i; For i:= 1 Step 1 Until UpperBound (elements, 1) Do elements (i).print; OutImage; End; End;

Ref (Glyph) rg; Ref (Glyph) Array rgs (1 : 4);

! Main program; rgs (1):– New Char ('A'); rgs (2):– New Char ('b'); rgs (3):– New Char ('b'); rgs (4):– New Char ('a'); rg:– New Line (rgs); rg.print; End;

Powyższy przykład definiuje klasę Glyph z dwoma podklasami – Char oraz Line. Implementacja wirtualnej metody print jest zdefiniowana w podklasach. Wykonanie programu rozpoczyna się od wykonania bloku „Main program”. W Simuli nie istnieje koncepcja klas abstrakcyjnych – klasy z czystymi (pozbawionymi implementacji) metodami wirtualnymi mogą być zainicjowane. Jednak wywołanie takiej metody skutkuje błędem wykonania.

Symulacja Simula zawiera pakiet „simulation”, służący do tworzenia symulacji w systemie zdarzeń dyskretnych.