Simula 67

Z Multimediaexpo.cz

Simula 67 je (nejspíš první funkční) objektově orientovaný programovací jazyk, odvozený podobně jako Pascal (kterému se syntaxí velmi podobá) z Algolu.

Jazyk byl navržen v roce 1967 speciálně pro simulování systémů hromadné obsluhy. Proto byl vybaven možností kvaziparalelního výpočtu a kalendářem událostí.

Jazyk se prakticky neuplatnil mimo akademické prostředí, ale měl významný vliv na další vývoj objektového programování. Mnoho rysů Simuly (speciálně celé pojetí tříd a dědičnosti) bylo totiž později převzato jazykem C++ nebo Java. Jazyk Java byl sice odvozen z jazyka C++, nicméně v některých rysech se blíží Simule.[1] Simula, stejně jako Java a některé další jazyky, obsahuje garbage collector, což je mechanismus pro automatické uvolňování nepoužívaných objektů z paměti.

Obsah

Ukázka kódu

Nejjednodušší program Hello world vypadá takto:

BEGIN
  WHILE 1=1 DO 
    BEGIN
      outtext("Hello World!");
      outimage;
    END;
END;

Nejjednodušší program lze napsat ještě jednodušeji bez while cyklu:

BEGIN
  OutText("Hello World!");
  OutImage;
END;

Některé zvláštnosti jazyka

Jazyk má dva druhy přiřazovacího operátoru:

  • A := B – přiřazení hodnot, převzato z jazyka Algol, dále používano například v Pascalu
  • A :- B – přiřazní ukazatelů (v Simule nazývaných reference)
  • Součástí jazyka je i operátor ** pro umocňování. Například výpočet \(a^3\) lze zapsat jako a ** 3.
  • Provádění konstruktoru třídy může být přerušeno klíčovým slovem inner, který zajistí přednostní provedení konstruktorů nadtříd

Reference

  1. Garbage Collection, Simula 67, Java

Externí odkazy