Simuleren
Simula is een objectgeoriënteerde programmeertaal ( OOP) uit 1962. Het was de eerste in zijn soort die het concept van een klasse omvatte. Enkele jaren na zijn ontwikkeling begonnen bijna alle moderne talen zijn objectgeoriënteerde principes te gebruiken. Dit is hoe termen als klassen , objecten , instanties , overerving , polymorfisme , enz . populair werden.
Simula 67 werd officieel vrijgegeven door de auteurs Ole Johan Dahl en Kristen Nygaard in mei 1967 , op de IFIO TC 2 Working Conference on Simulation Languages, in Lysebu bij Oslo .
Tegenwoordig hebben de makers van Simula een nieuwe programmeertaal ontwikkeld, Beta genaamd , die alle constructies van de taal veralgemeniseert tot één enkel idee, een patroon genoemd .
Hallo Wereld!
Dit is het beroemde "Hello World"-programma in Simula 67:
! dit is een opmerking;
Begin commentaar hier begint het programma;
OutText ("Hallo wereld!");
UitAfbeelding ;
Einde van het programma ;
Klassen en objecten
Simula is een objectgeoriënteerde taal . Dit betekent dat het voorbeeld 'Hallo wereld' ook kan worden geschreven door een klasse te instantiëren die het schrijven van de begroeting afhandelt.
! elk programma begint met een begin en eindigt met een einde;
Beginnen
Klasse Groeten;
Begin
OutText ("Hallo wereld!");
UitAfbeelding ;
groeten aan het einde van de les ;
REF (groeten) object;
object: - Nieuwe groeten;
Einde moduleprogramma ;
Dit programma toont ook "Hello World!" .
Het bericht is gecodeerd in het groepcodeblok Begroetingen . Dit codeblok wordt alleen uitgevoerd als er een instantie of variabele van het type Groeten bestaat ; wat daadwerkelijk gebeurt wanneer u een instantie maakt via de New -instructie .
In Simula worden objecten altijd behandeld door verwijzingen. Er is een garbage collector die verantwoordelijk is voor het uit het geheugen verwijderen van de objecten die geen verwijzingen meer naar hen hebben. We zien een van deze verwijzingen met objectvariabele . We gebruiken de :- operator om referenties toe te wijzen.
In tegenstelling tot veel moderne talen begrijpt Simula twee soorten objecten.
Actief zijn die objecten die hun bijbehorende begin-/ eindblok nog niet hebben voltooid .
Inactief aan de andere kant hebben ze hun instructiesblok voltooid.
Beiden, het is mogelijk om de lidprocedures uit te voeren en de attributen op elk moment op te vragen.
Aangezien Simula 67 een wat oude taal is, zijn de concepten die ermee worden omgegaan enigszins anders dan die welke momenteel worden gebruikt door de objectgeoriënteerde programmeergemeenschap. De instanties die we gebruiken komen overeen met de inactieve objecten . Terwijl het instructieblok een reeks constructors vormt.
Wat betreft actieve objecten , deze bestaan vanwege een pseudo-parallelisme-functionaliteit die in Simula wordt gevonden en afwezig is in bijna alle moderne talen. Deze functionaliteit wordt een coroutine genoemd en wordt rechtstreeks door de taal beheerd via een groep trefwoorden.
Een groep actieve objecten kan naast elkaar bestaan in hetzelfde Simula-programma en op elk moment de besturing van de ene naar de andere overdragen. Deze functionaliteit is de basis voor de simulatiefuncties die de taal zijn naam geven.