Simulated
Simula ( Sim ple U niversal the nguage) is the language which introduced the paradigm Orienté object in Programmation, in 1960, and he is thus regarded as the first language with object and the later predecessor of languages such as Smalltalk, C++ and especially Eiffel. Simulated is based on Algol 60.
History
Simulated was developed in the years 1960 with the Norwegian Computing Center Oslo, initially by Ole-Johan Dahl and Kristen Nygaard. Syntactically speaking, it is a superset of Algol, which adds to this one the concepts, now familiar, of the programming object and discrete simulation.
Simulated forever be a simple university language, since it was used for industrial applications until today, but its historical influence is regarded as more important than the applications which could have been developed with him.
By Simula one generally understands Simulated-67 , i.e. the version of 1967, whereas the previous model went back to 1964: Simulated I .
Discrete simulation
As its name indicates it, in addition to constituting a computer programming language general practitioner, Simula was conceived in order to contain libraries of classes offering a support of concepts specific to the discrete simulation . The class Process , inheriting Simulation thus allowed the user to inherit for his own classes simulation the basic behavior a process which can be carried out in mode known as " quasi-parallèle" , using the concept of coroutine.A coroutine is a routine at several exit points and which, with each reentry of the flood of execution in this one at the time of a call to the instruction Resume , take again its execution with the last instruction where the flood had previously left it at the time of a call to the instruction Detach . The point of execution is stored in the LSC: Room Counter Sequence.
To clarify the matter, the following program would produce posting indicated low:
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 Summary (Twin); ! Last coroutine entry OutText (Name); OutText (": Last coroutine entry"); OutImage; Summary (Twin); End; Begin firstProc: - New TwinProcess (" 1st Proc"); secondProc: - New TwinProcess (" 2nd Proc"); firstProc.Twin: - secondProc; secondProc.Twin: - firstProc; OutText (" Starting"); OutImage; Summary (firstProc); OutText (" End"); End; End;
Posting:
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
The library of discrete simulation made it possible to manage the file of the processes by means of dedicated instructions ( Activate , Passivate , Hold , etc)
Programming object
All the great concepts (and even more) of what will be called later the directed Programmation object are present right now in Simula , which inaugurates them (polymorphism, encapsulation, etc) and which in addition combined the syntactic clearness of the ALGOL:- the classes , the attributes and the methods
- instanciation via the instruction New
- the relations between objects by means of references of object: ref. () and assignment of references with the instruction : -
- reference on the current authority thanks to the keyword This
- Test of null reference automatic nativement supported Inspect-C-Otherwise : Inspect rect C Draw here, x.Draw will be called only if X is not a null reference (keyword: Nun )
- function virtual
- call of method per pointed notation ( dowry-notation ):
. - call described (i.e statically dependant) as virtual methods using the operator Qua or with Inspect-When
- recognition of the type to the execution (instruction Inspect , Is , In )
- simple heritage between classes
- access control ( Hidden , Protected )
- overlapping classes (or interns)
- sophisticated Overlap of the calls of the body of method of the class via the instruction Inner , which can thus make it possible to oblige the code execution before and/or after the execution of the body of a derived class: one already sees being profiled the concept of assertions, implemented by Eiffel in the Eighties, or even the programming by aspect, which will be developed in the years 1990.
- collect- acrumb (garbage-collector).
This brief list makes it possible to become aware of the conceptual bored operated by Simula in the years 1960.
See too
- directed Programming object
- BETA (the successor of Simulated)
External bonds
- Introduction to OOP in Simulated - by J.Sklenar, based on the seminar of 1997 “30 Years off Object Oriented Programming (OOP)” of the University of Malta
- How Object-Oriented Programming Started - by Dahl and Nygaard, version shortened of an article of an encyclopedia on the page of the site of Nygaards.
| Random links: | Risk | Pascal Cygan | Poggio-di-Nazza | Oulad Berhil | Zilla Huma Usman | Enregistreur_de_vidéocassette |