Simula

Simula
Logó.
Az első változat kelte 1967
Paradigmák Tárgy
Szerző Ole-Johan Dahl , Kristen Nygaard
Utolsó verzió I. szimula ( 1962. május)
67. sz.1967)
Befolyásolta Algol 60
Befolyásolt Objektumorientált nyelvek

Simula ( Sim PLE u niversal la nguage ) jött létre 1962 néven Simula I Ole-Johan Dahl és Kristen Nygaard származó Algol 60 . A nyelv 1967-ben alakult ki Simula 67 néven a Hoare első osztályú modelljének (Record Class, Hoare 1965) bevezetésével. Ezért ez az első osztálynyelv, és ezért az összes olyan osztálynyelv apja, mint a Smalltalk , a C ++ , a Java vagy akár az Eiffel . Ihlette Dan Ingallst a Smalltalk tervezésében, amely bevezette az objektum-orientált programozást. Ez az oka annak, hogy a Simula 67-et gyakran tévesen tekintik az első objektumorientált nyelvnek, míg ezt a paradigmát jóval a Simula 67 után, az 1970-es években vezeti be Alan Kay .

Történelmi

Simula alakult ki a 1960-as években a norvég Computing Center in Oslo , kezdetben Ole-Johan Dahl és Kristen Nygaard . Szintaktikusan szólva ez az Algol szuperhalmaza , amely hozzáadja az olyan osztálynyelvek, mint a C ++ vagy a Java , és a diszkrét eseményszimuláció fogalmát, amelyek már ismeretesek .

A Simulát mind a mai napig ipari alkalmazásokhoz használták , De a történelmi hatását fontosabbnak tartják, mint azokkal a alkalmazásokkal, amelyeket vele fejleszteni lehetett volna.

A Simula alatt általában a Simula 67-et , vagyis az 1967-es verziót értjük , míg az előző verzió 1962-től az I- es Simula- tól származik .

Diszkrét szimuláció

Ahogy a neve is sugallja, a Simulát általános célú programozási nyelv mellett úgy tervezték, hogy osztálykönyvtárakat is tartalmazzon, támogatva a diszkrét eseményszimulációra jellemző fogalmakat . A szimulációból örökölt Process osztály lehetővé tette a felhasználó számára, hogy a saját szimulációs osztályai számára örökölje az úgynevezett „ kvázi-párhuzamos  ” módban végrehajtható folyamat alapvető viselkedését,  a coroutine fogalmát felhasználva .

A coroutine egy olyan rutin, amelynek több kilépési pontja van, és amely a végrehajtási adatfolyam minden egyes újbóli belépésekor a Resume utasítás hívása során folytatja a végrehajtást az utolsó utasításnál, ahol az l 'folyamat korábban leállt egy hívásra a Leválaszt utasítás . A végrehajtási pontot az LSC: Local Sequence Counter tárolja .

A lényeg tisztázása érdekében a következő program készítené az alább látható képet:

Begin Ref(TwinProcess) firstProc, secondProc; Class TwinProcess(Name); Text Name; Begin ! Initial coroutine entry (creation) Ref(TwinProcess) Twin; OutText(Name); OutText(": Creation"); OutImage; ! First coroutine exit Detach; ! Second coroutine entry OutText(Name); OutText(": Second coroutine entry"); OutImage; ! Second coroutine exit: switch to the twin's coroutine Resume(Twin); ! Last coroutine entry OutText(Name); OutText(": Last coroutine entry"); OutImage; Resume(Twin); End; Begin firstProc :- New TwinProcess ("1st Proc"); secondProc :- New TwinProcess ("2nd Proc"); firstProc.Twin :- secondProc; secondProc.Twin :- firstProc; OutText("Starting"); OutImage; Resume(firstProc); OutText("End"); End; End;

Kijelző:

1st Proc: Creation 2nd Proc: Creation Starting 1st Proc: Second coroutine entry 2nd Proc: Second coroutine entry 1st Proc: Last coroutine entry 2nd Proc: Last coroutine entry End

A diszkrét szimulációs könyvtár lehetővé tette a folyamatsor kezelését dedikált utasítások ( Aktiválás , Passziválás , Tartás stb.) Segítségével .

Objektumok programozása

A legtöbb olyan konstrukció, amely később lehetővé teszi az objektum-orientált programozás fő koncepcióinak megvalósítását, már megtalálható a Simula 67-ben  :

Ez a rövid lista lehetővé teszi a Simula által 1967-ben a strukturált imperatív nyelvek terén elért áttörés megismerését .

Sajnos a Simula szerzői némi zavart hoztak az objektum-orientált programozás világában. Amikor ez az új paradigma megjelent a Smalltalkkal együtt, Ole Johan Dahl és Kristen Nygaard megváltoztatták a Simulában használt neveket, hogy megfeleljenek a Smalltalkban közvetített fogalmaknak (tárgyosztályok, objektumok, attribútumok, módszerek stb.), És kijelentették, hogy a Simula 67 valójában az első objektumorientált nyelv. A Simula 67-ben alkalmazott megközelítést azonban nem Alan Kay, az objektumorientált programozás szerzője határozta meg.

Lásd is

Kapcsolódó cikkek

Külső linkek