Simula
Simula este un limbaj de programare orientată pe obiecte (OOP) din 1962. A fost primul de acest gen care a inclus conceptul de clasă. La câțiva ani după dezvoltarea sa, aproape toate limbile moderne au început să-și folosească principiile orientate pe obiecte. Așa au devenit populari termeni precum clase , obiecte , instanțe , moștenire , polimorfism etc.
Simula 67 a fost lansat oficial de autorii săi Ole Johan Dahl și Kristen Nygaard în mai 1967 , la Conferința de lucru IFIO TC 2 privind limbaje de simulare, la Lysebu, lângă Oslo .
Astăzi, creatorii lui Simula au dezvoltat un nou limbaj de programare, numit Beta , care generalizează toate constructele limbajului într-o singură idee numită model .
Salut Lume!
Acesta este faimosul program „Hello World” din Simula 67:
! acesta este un comentariu; Începeți comentariul aici începe programul; OutText („Bună lume!”); OutImage ; Sfârșitul programului ;
Clase și obiecte
Simula este un limbaj orientat pe obiecte . Aceasta înseamnă că exemplul „Hello World” poate fi scris și prin instanțierea unei clase care se ocupă de scrierea salutului.
! fiecare program începe cu un început și se termină cu un sfârșit;
ÎNCEPE
Salutări
de clasă ; Begin
OutText ("Bună lume!");
OutImage ;
salutări de sfârșit de curs ;
obiect REF (Salutări);
obiect :- Salutări noi ;
Sfârșitul programului modulului ;
Acest program afișează și „Hello World!” .
Mesajul este codificat în blocul de coduri de clasă Salutări . Acest bloc de cod este executat numai atunci când există o instanță sau variabilă de tip Salutări ; ceea ce se întâmplă de fapt atunci când creați o instanță prin instrucțiunea New .
În Simula, obiectele sunt întotdeauna tratate de referințe. Există un colector de gunoi care este responsabil pentru eliminarea din memorie a obiectelor care au rămas fără referințe la ele. Vedem una dintre aceste referințe cu variabila obiect . Folosim operatorul :- pentru a atribui referințe.
Spre deosebire de multe limbi moderne, Simula înțelege două tipuri de obiecte.
Active sunt acele obiecte care nu și-au finalizat încă blocul de început/sfârșit asociat .
Pe de altă parte, inactivi , ei și-au completat blocul de instrucțiuni.
Ambele, este posibilă executarea procedurilor membre și interogarea atributelor în orice moment.
Deoarece Simula 67 este un limbaj oarecum vechi, conceptele pe care le gestionează sunt oarecum diferite de cele utilizate în prezent de comunitatea de programare orientată pe obiecte. Instanțele în care suntem obișnuiți să corespundă obiectelor inactive . În timp ce blocul de instrucțiuni constituie o serie de constructori.
În ceea ce privește obiectele active , acestea există datorită unei funcționalități de pseudo-paralelism găsite în Simula și absentă în aproape toate limbile moderne. Această funcționalitate se numește corutine și este controlată direct de limbaj printr-un grup de cuvinte cheie.
Un grup de obiecte active poate coexista în același program Simula și poate transfera controlul de la unul la altul în orice moment. Această funcționalitate stă la baza caracteristicilor de simulare care dau numele limbii.