Simula
Simula | |
Paradigm | objektorienterad |
---|---|
Gavs ut | 1962 |
Skapat av | Ole-Johan Dahl och Kristen Nygaard |
Influerat av | Algol 60, Simscript |
Influerat | C++, Object Pascal, Java, C# och många fler objektorienterade språk |
Simula brukar benämnas som det första objektorienterade programspråket. Det är en utvidgning av Algol 60 avsett för simulering. Språket togs ursprungligen fram i Norge av Ole-Johan Dahl och Kristen Nygaard 1962–1967. Kompilatorer fanns bland annat för Tops-10 och TOPS-20. Språket har bland annat varit populärt som undervisningsspråk och Bjarne Stroustrup har varit inspirerad av Simula när han utvecklade C++ som etablerade objektorienterad programmering. Andra indirekta arvtagare till Simula är Java. De flesta moderna programmeringsspråk som t.ex. Xojo och Microsoft Visual Basic har starka spår bakåt till Simula.
Klassen Simulation
[redigera | redigera wikitext]I klassen Simulation var det enkelt att beskriva verkliga objekt och dess beteende, som till exempel en person som kommer in och ska göra bankärenden, eller bilar som närmar sig en korsning. Personen tittar kanske efter vilken kö som är kortast, eller vilken kö som har minst av en viss kategori människor, och ställer sig sedan i en viss kö. Kanske finns en viss sannolikhet att personen efter 15 min inte kan vänta längre, kanske inte ställer sig i kön alls om den är lång, och så vidare. Köer och slumpberäknade väntetider, eller betjäningstider är ofta förekommande inslag. Sättet att hantera sådana objekt kallas "korutiner", de kan leva sitt eget liv, till exempel begära att få vänta en viss tid, med ett särskilt funktionsanrop, och efter denna tid återvända till programraden efter. Under mellantiden körs andra objekt. Detta liknar parallell programmering, eller "aktiva objekt" som det ibland kallas idag. Att beskriva liknande system med ett traditionellt språk som Algol eller Fortran blir oerhört komplext.
Simulas viktigaste arv till eftervärlden är naturligtvis inte simuleringsprincipen, utan att språket visade värdet av att kunna strukturera objektorienterat.
Hello World
[redigera | redigera wikitext]Det klassiska "Hello World!" ser ut på följande sätt:
Begin
OutText("Hello World!");
OutImage;
End;