Szimulál
A Simula egy objektum - orientált programozási (OOP) nyelv 1962-ből. Ez volt az első a maga nemében, amely magában foglalta az osztály fogalmát. Néhány évvel a fejlesztés után szinte minden modern nyelv elkezdte használni az objektum-orientált elveit. Így váltak népszerűvé az olyan kifejezések, mint az osztályok , objektumok , példányok , öröklődés , polimorfizmus stb .
A Simula 67 -et hivatalosan szerzői, Ole Johan Dahl és Kristen Nygaard adták ki 1967 májusában , az IFIO TC 2 szimulációs nyelvekkel foglalkozó munkakonferenciáján, az Oslo melletti Lysebuban.
Ma a Simula készítői kifejlesztettek egy új programozási nyelvet, a Bétát , amely a nyelv összes konstrukcióját egyetlen ötletté, úgynevezett mintává általánosítja .
Helló Világ!
Ez a híres "Hello World" program a Simula 67-ben:
! ez egy megjegyzés ;
Kezdje el a megjegyzést itt kezdődik a program;
OutText ("Hello World!");
OutImage ;
Program vége ;
Osztályok és objektumok
A Simula egy objektumorientált nyelv . Ez azt jelenti, hogy a „Hello World” példát úgy is meg lehet írni, hogy példányosítunk egy osztályt, amely kezeli az üdvözlet írását.
! minden program az elejével kezdődik és a végével ér véget;
Kezdődik
Osztály üdvözlet;
Begin
OutText ("Hello World!");
OutImage ;
óra végi üdvözlet ;
REF (Üdvözlet) objektum;
objektum :- Új üdvözlet;
modulprogram vége ;
Ez a program is megjeleníti a "Hello World!" .
Az üzenet a Greetings osztály kódblokkjába van kódolva . Ez a kódblokk csak akkor fut le, ha létezik egy Greetings típusú példány vagy változó ; ami valójában akkor történik meg, amikor létrehoz egy példányt a New utasítással .
A Simulában az objektumokat mindig hivatkozások kezelik. Van egy szemétgyűjtő, amely felelős azért, hogy eltávolítsa a memóriából azokat az objektumokat, amelyekre kifogytak a hivatkozások. Ezen hivatkozások egyikét látjuk objektumváltozóval . A hivatkozások hozzárendeléséhez a :- operátort használjuk.
Sok modern nyelvtől eltérően a Simula kétféle objektumot ért meg.
Aktívak azok az objektumok, amelyek még nem fejezték be a hozzájuk tartozó kezdő/vége blokkot .
Másrészt inaktívak , befejezték az utasítások blokkját.
Mindkettőnél lehetőség van a tag eljárások végrehajtására és az attribútumok lekérdezésére bármikor.
Mivel a Simula 67 egy kissé régi nyelv, az általa kezelt fogalmak némileg eltérnek az objektum-orientált programozói közösség által jelenleg használt fogalmaktól. Az általunk használt példányok az inaktív objektumoknak felelnek meg . Míg az utasításblokk konstruktorok sorozatát alkotja.
Ami az aktív objektumokat illeti , ezek a Simulában található pszeudo-párhuzamos funkció miatt léteznek, és szinte minden modern nyelvben hiányzik. Ezt a funkciót korutinnak nevezik, és közvetlenül a nyelv vezérli kulcsszavak csoportján keresztül.
Aktív objektumok egy csoportja együtt létezhet ugyanabban a Simula programban, és bármikor átviheti a vezérlést egyikről a másikra. Ez a funkció az alapja azoknak a szimulációs funkcióknak, amelyek a nyelv nevét adják.