Simula

Från Rilpedia

(Omdirigerad från Programspråket Simula)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

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-67. Kompilatorer fanns bland annat för Tops-10 och TOPS-20. Språket har bland annat varit populärt som undervisningspråk och Bjarne Stroustrup lär ha varit inspirerad av Simula när han utvecklade C++. Andra arvtagare är Smalltalk och Java.

Innehåll

Klassen Simulation

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 han efter 15 min inte kan vänta längre. Kanske han 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 til 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

Det klassiska "Hello World!" ser ut på följande sätt:

 Begin
   OutText("Hello World!");
   OutImage;
 End;

Se även

Externa länkar

Introduktion till Simula

Personliga verktyg