Simula

Image manquante
Langage_progr.png
image:Langage_progr.png

Cet article fait partie de la série
Langages de programmation
Langages à objets
Ada 95 - C++ - C#
Common Lisp
Delphi - Eiffel - Java
Nice - Oz - Python
Simula - Smalltalk
Visual Basic
Langages impératifs
APL - ASP - Assembleur
BASIC - C - COBOL
Forth - FORTRAN - Logo
Pascal - Perl - PHP
Langages fonctionnels
Erlang - Haskell
ML/OCaml - Oz
Lisp/Common Lisp
Scheme
Langages déclaratifs
Clips - Oz - Prolog
Langages concurrents
Ada 95 - Erlang
Java - Oz
Langages balisés
HTML - SGML - XML
Dialectes XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

Simula (Simple universal language) est le langage qui a introduit le paradigme orienté objet en programmation, en 1960, et il est donc considéré comme le premier langage à objet et le précesseur de langages ultérieur tels que Smalltalk, C++ et surtout Eiffel. Simula est basé sur Algol 60.

Sommaire

Historique

Simula a été développé dans les années 1960 au Norwegian Computing Centre d'Oslo, initiallement par Ole-Johan Dahl et Kristen Nygaard. Syntaxiquement parlant, c'est un sur-ensemble d'Algol, qui ajoute à celui-ci les concepts, aujourd'hui familiers, de la programmation objet et de la simulation discrète.

Simula n'a jamais été un simple langage universitaire, puisqu'il a été utilisé pour des application industrielles jusqu'à aujourd'hui, mais son influence historique est considéré comme plus importante que les applications qui auraient pu être développées avec lui.

Par Simula, on entend généralement Simula-67 , c'est-à-dire la version de 1967, alors que la version précédente datait de 1964 : Simula I.

Simulation discrète

Comme son nom l'indique, en plus de constituer un langage de programmation généraliste, Simula a été conçu de façon à contenir des bibliothèques de classes offrant un support de concepts spécifiques à la simulation discrète. La classe Process, héritant de Simulation permettait ainsi à l'utilisateur d'hériter pour ses propres classes de simulation du comportement de base d'un processus pouvant s'éxécuter en mode dit "quasi-parallèle", à l'aide du concept de coroutine.

Un coroutine est une routine à plusieurs points de sortie et qui reprenait son exécution à chaque entrée du flox d'exécution dans celle-ci, à la dernière instruction où le flot l'avait quitté. Le point d'éxécution était stocké dans le LSC : Local Sequence Counter.

La bibliothèque de simulation discrète permettait de gérer la file des processus au moyen d'instruction dédiées (Activate, Passivate, Hold, etc.)

Programmation objet

Tout les grands concepts (et même plus) de ce qui sera appelé plus tard la programmation orientée objet sont d'ores et déjà présents dans Simula, qui les inaugure (polymorphisme, encapsulation, etc.) et qui alliait de surcroit la clarté syntaxique de l'Algol :

Cette liste succincte permet de prendre conscience de la percée conceptuelle opérée par Simula dans les années 1960.

Voir aussi

Liens externes

See also: Simula, APL (langage), Active server pages, Ada (langage), Algol, Assembleur (langage), Basic, CLOS, COBOL