孕妇感冒吃什么药| 世界上最贵的烟是什么烟| 免疫性疾病是什么意思| 血红素高是什么原因| 三庚是什么意思| 房间为什么有蟑螂| 木代表什么生肖| 什么牌子的护肝药最好| wb是什么| 什么不什么当| 8是什么意思| 预防感冒吃什么药| 什么人生病从来不看医生| 滴滴什么意思网络用语| td是什么意思| 女人做梦哭醒预示什么| 多发性硬化是什么病| 为什么会打呼噜| 手臂酸痛什么原因| 农村入党需要什么条件| 什么是干股| 解脲支原体是什么| 睡眠不好会引起什么症状| 胃溃疡吃什么食物好| 甲状腺在什么位置图片| 什么工作挣钱多| 嗳气什么意思| 厘清和理清的区别是什么| 吃什么推迟月经| 安可什么意思| 11月11日什么星座| 武则天叫什么| 亲吻是什么意思| 盲袋是什么| 爱什么意思| 心悸心慌焦虑吃什么药能缓解| 榴莲为什么会苦| 为什么会水肿| 巴西龟吃什么食物| 晚上睡觉流口水是什么原因| 小腿疼痛挂什么科| 腺体是什么| 银杏是什么植物| 胆固醇高不可以吃什么| crt是什么意思| 拉郎配是什么意思| 杞菊地黄丸治什么病| 四个火读什么| 为什么美国支持以色列| 乳腺b超挂什么科| 1981年属什么生肖| 心率快是什么原因引起的| 结核杆菌是什么| 毛重是什么| 淋巴细胞偏高是什么原因| 中国反导弹系统叫什么| 莫名其妙的心情不好是什么原因| 异质性是什么意思| 男人黑眼圈很重是什么原因| 一个月来两次大姨妈是什么原因| 为什么手会不自觉的抖| 重阳节送老人什么礼物| 为什么会胰岛素抵抗| ups是什么快递公司| 59年属什么| 脚趾甲真菌感染用什么药| 李子什么季节成熟| 1202是什么星座| 梦见洗车是什么意思| 犄角旮旯是什么意思| 2022年是什么生肖| 做什么运动可以瘦腿| 高密度脂蛋白低是什么原因| 遮挡车牌属于什么行为| 吃什么可以解酒| 红豆和赤小豆有什么区别| 大学体检都检查什么| 一个木一个舌读什么| 青青子衿什么意思| 男性睾丸一边大一边小是什么原因| 餐饮五行属什么| 狐臭什么味道| 菩提心是什么意思| 牙齿酸软是什么原因| 双侧筛窦粘膜增厚是什么意思| 清醒的反义词是什么| 属鸡的贵人是什么属相| 月经不调有什么危害| 梦见找鞋子是什么意思| 伏案工作是什么意思| 心电图st段改变什么意思| 什么水果含糖低| 治疗幽门螺旋杆菌的四联药是什么| 六尘不染的生肖是什么| 三天打鱼两天晒网什么意思| 春什么秋什么的成语| 什么是菜花病| 前列腺是什么病| 夏至吃什么食物| 霉菌阴性是什么意思| 有什么方法可以快速入睡| 嬴稷是秦始皇的什么人| 同舟共济什么意思| 胸闷是什么原因引起的| 哺乳期发烧吃什么药| 暮光是什么意思| 同房子宫疼痛什么原因| 入木三分是什么意思| 私生子是什么意思| 水洗棉是什么| 为什么尿频繁怎么回事| x光是检查什么的| 老年人流鼻血是什么原因| 为什么医者不自医| 血常规一般查什么病| b12是什么| 汴去掉三点水念什么| 红枣和枸杞一起泡水喝有什么作用| 外援是什么意思| 壬水代表什么| 泰迪哼哼唧唧表示什么| 总做噩梦是什么原因| 胃溃疡适合吃什么食物| 9月14号什么星座| 被蜱虫咬了有什么症状| aquascutum是什么牌子| 藏红花适合什么样的人喝| 早饭吃什么好| 女性多囊是什么意思| 西红柿和什么榨汁减肥| 紫颠是什么病怎样治| 现在什么节气| 嘴唇一圈发黑是什么原因造成的| 内蒙古代叫什么| 吃茄子有什么好处和坏处| 儿童牙疼吃什么药| 脾胃虚弱有什么症状| 发烧呕吐吃什么药| 流鼻血挂什么科| 铁剂不能与什么同服| 红色加紫色是什么颜色| ivy是什么意思| 什么叫总胆固醇| 藕什么季节成熟| 什么时候种玉米| 雨渐耳符咒有什么用| 暖心向阳是什么意思| 放飞自我是什么意思| 什么牌子的蓝牙耳机好| 电气石是什么东西| 三进宫是什么意思| 迎刃而解是什么意思| 便秘吃什么食物好| 双眸是什么意思| 下面流出发黄的液体是什么原因| 6月15日是什么星座| 头晕恶心呕吐是什么原因| 炖羊肉汤放什么调料| 心身医学科是看什么病| 龙骨是什么东西| 老虎菜为什么叫老虎菜| 卵巢囊性占位是什么意思| 吃生洋葱有什么好处| 月球表面的坑叫什么| 怀孕了梦见蛇是什么意思| 21三体综合征是指什么| 肺活量是什么意思| 腰穿是什么意思| 肝郁气滞有什么症状| 果葡糖浆是什么| 亚甲炎吃什么药效果好| 医疗行业五行属什么| 郭敬明为什么叫小四| 漫反射是什么意思| 蕊五行属什么| 血压偏高喝什么茶| 手指甲出现双层是什么原因| 尿隐血弱阳性是什么意思| 损伤是什么意思| 2013年是什么年| 断桥铝是什么意思| 火鸡面为什么这么贵| 绿色裙子搭配什么颜色上衣| 淋巴细胞比率偏高是什么意思| 座是什么结构| utc是什么| 梦见抢银行是什么意思| 周瑜为什么打黄盖| 什么牙什么牙| 菜场附近开什么店好| 什么是中国舞| 通透是什么意思| 猪肝可以钓什么鱼| 鱼缸什么材质的好| 尖锐湿疣用什么药| 轻微手足口病吃什么药| 中国最贵的烟是什么烟| 日在校园讲的什么| 七月十五是什么节| 甲状腺结节什么症状| 为什么叫马路| 须发早白吃什么中成药| 胆固醇是什么东西| 幽门螺杆菌阳性吃什么药| 猪咳嗽用什么药效果好| 什么西瓜最好吃| 手突然抽搐是什么原因| 1104是什么星座| 虾不能和什么东西一起吃| momo是什么意思| 中唐筛查是检查什么| phicomm是什么牌子| 睡衣什么面料最好| 布病是什么病| 头晕出汗是什么原因| 舌苔白厚有齿痕是什么原因| 眉毛稀少是什么原因| 美人鱼是什么动物| 生长纹是什么原因| 穆字五行属什么| 在圣是什么生肖| ca125是什么意思| 对数是什么| 飞蚊症滴什么眼药水| 眼睛红肿吃什么消炎药| 爆菊花什么感觉| 抗坏血酸钠是什么| 月经准时来说明什么| 神经性头痛吃什么药好| 造影是什么检查| 月光石五行属什么| 做肉丸用什么淀粉最佳| 嘛哩嘛哩哄是什么意思| 保险公司最怕什么投诉| 干嘛是什么意思| 米诺地尔搽剂和米诺地尔酊有什么区别| 什么人不适合喝骆驼奶| 三十年婚姻是什么婚| 孕囊是什么| 灰姑娘叫什么名字| 大红袍适合什么季节喝| 腹部胀疼是什么原因| 喧宾夺主什么意思| 什么什么如什么| 经常口腔溃疡挂什么科| 钻石王老五是什么意思| 女性白细胞高是什么原因| 饭中吃药是什么时候吃| 世界上最大的昆虫是什么| 手脱皮是缺什么| 三月八号是什么星座| 中国科协是什么级别| 九条鱼代表什么意思| 大便干燥吃什么| 做什么来钱快| 2r是什么意思| 沉肩是什么意思| 缺钙吃什么| 94年是什么命| rds医学上什么意思| 姐姐家的孩子叫什么| ig是什么| 做肠镜前一天可以吃什么| 点背是什么意思| 百度Aller au contenu

西安市人民代表大会常务委员会公告【十五届】第68..

Un article de Wikipédia, l'encyclopédie libre.

Simula
Logo.

Date de première version 1967
Paradigmes Objet
Auteur Ole-Johan Dahl, Kristen Nygaard
Dernière version Standard SIMULA ()[1]Voir et modifier les données sur Wikidata
Influencé par Algol 60
A influencé Les langages orientés objet

Simula (Simple universal language) a été créé en 1962 sous la dénomination Simula I par Ole-Johan Dahl et Kristen Nygaard à partir d'Algol 60. Le langage évolua en 1967 sous le nom de Simula 67 en implémentant le premier le modèle de classe de Hoare (Record Class, Hoare 1965). Il est donc le premier langage à classes et donc le père de tous les langages à classes tels que Smalltalk, C++, Java, ou encore Eiffel. Il inspira Dan Ingalls dans la conception de Smalltalk qui introduisit la programmation orientée objet.

Simula a été développé dans les années 1960 au Norwegian Computing Centre d'Oslo, initialement 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, des langages à classes comme C++ ou Java, et de la simulation à événements discrets.

Simula a été utilisé pour des applications industrielles jusqu'à aujourd'hui[Quand ?], mais son influence historique est considérée 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 1962 : Simula I.

Simulation discrète

[modifier | modifier le code]

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 à événements discrets. 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'exécuter en mode dit ? quasi-parallèle ?, à l'aide du concept de coroutine.

Une coroutine est une routine à plusieurs points de sortie et qui, à chaque ré-entrée du flot d'exécution dans celle-ci lors d'un appel à l'instruction Resume, reprend son exécution à la dernière instruction où le flot l'avait précédemment quittée lors d'un appel à l'instruction Detach. Le point d'exécution est stocké dans le LSC : Local Sequence Counter.

Pour clarifier le propos, le programme suivant produirait l'affichage indiqué plus bas :

 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
     Resume(Twin);
         ! Last coroutine entry
     OutText(Name); OutText(": Last coroutine entry"); OutImage;
     Resume(Twin);
  End;
  Begin
     firstProc :- New TwinProcess ("1st Proc");
     secondProc :- New TwinProcess ("2nd Proc");
     firstProc.Twin :- secondProc;
     secondProc.Twin :- firstProc;
     OutText("Starting"); OutImage;
     Resume(firstProc);
     OutText("End");
  End;
 End;

Affichage :

 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

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

Programmation objet

[modifier | modifier le code]

La plupart des constructions qui permettront plus tard la réalisation des concepts principaux de la programmation orientée objet sont d'ores et déjà présents dans Simula 67 :

  • les classes comme structure de données dans Simula rassemblant variables et opérations sur ces dernières (dans Simula, il représentaient des activités),
  • l'instanciation via l'instruction New,
  • les relations entre objets (ou processus dans le jargon originel de Simula) au moyen de références : Ref( ) et affectation de références avec l'instruction :-
  • référence sur l'instance courante grace au mot clé This
  • Test de référence nulle automatique nativement supporté Inspect-Do-Otherwise : Inspect rect do Draw. Ici, x.Draw ne sera appelé que si x n'est pas une référence nulle (mot clé : None)
  • fonctions virtuelles
  • appel de méthode par notation pointée (dot-notation) : <objet>.<méthode>
  • appel qualifié (i.e. statiquement lié) de méthodes virtuelles à l'aide de l'opérateur Qua ou avec Inspect-When
  • reconnaissance de type à l'exécution (instruction Inspect, Is, In)
  • héritage simple entre classes
  • restriction d'accès (Hidden, Protected)
  • classes imbriquées (ou internes)
  • Imbrication sophistiquée des appels du corps de méthode de la classe via l'instruction Inner, qui peut ainsi permettre d'obliger l'exécution de code avant et/ou après l'exécution du corps d'une classe dérivée : on voit déjà se profiler le concept d'assertions, implémentées par Eiffel dans les années 1980, ou même la programmation par aspect, qui sera développée dans les années 1990.
  • un ramasse-miettes en anglais : garbage-collector.

Cette liste succincte permet de prendre conscience de la percée conceptuelle opérée par Simula en 1967 dans le domaine des langages impératifs structurés.

Les auteurs de Simula apportèrent une certaine confusion dans le monde de la programmation orientée objet. à l'apparition de ce nouveau paradigme avec Smalltalk, Ole Johan Dahl et Kristen Nygaard changèrent les dénominations utilisées dans Simula pour se conformer aux concepts véhiculés dans Smalltalk (classes d'objets, objets, attributs, méthodes, etc.) et déclarèrent que Simula 67 était en fait le premier langage orienté objet. Pourtant, l'approche utilisée dans Simula 67 n'est pas celle définie par Alan Kay, l'auteur de la programmation orientée objet.

Notes et références

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]

搁浅了是什么意思 什么是断掌 艾滋病会有什么症状 隐形眼镜半年抛是什么意思 darling什么意思
印度总统叫什么名字 中度脂肪肝吃什么药 鼻炎吃什么食物好得快 经期适合吃什么水果 彼岸花什么时候开花
补充镁有什么好处 檀木手串有什么好处 医院什么时候上班 前列腺炎不治疗有什么后果 腹黑什么意思
一个虫一个离念什么 打2个喷嚏代表什么 半夜胃反酸水是什么原因 甘薯和红薯有什么区别 30如狼40如虎是什么意思
为什么来月经肚子疼hcv8jop9ns4r.cn 爱心是什么牌子dajiketang.com 淋球菌是什么病hcv8jop1ns6r.cn 梦见租房子住是什么意思hcv8jop0ns0r.cn 麻醉学学什么hcv8jop5ns0r.cn
小便有血尿是什么原因hcv8jop6ns0r.cn twins什么意思hcv8jop4ns2r.cn 什么药治痔疮最快hcv9jop4ns4r.cn 鸡和什么菜一起烧好吃hcv7jop9ns4r.cn 新婚志喜是什么意思hcv9jop0ns7r.cn
看山不是山看水不是水是什么意思cj623037.com 一什么绿毯hcv8jop0ns4r.cn 经期吃什么缓解痛经hcv9jop2ns3r.cn 再生纤维素纤维是什么面料hcv7jop5ns0r.cn kpi什么意思hcv7jop6ns3r.cn
磁共振和核磁共振有什么区别wzqsfys.com 什么牌子的蜂胶最好hcv8jop5ns1r.cn 皮的偏旁是什么hcv9jop0ns3r.cn 巨蟹男和什么星座最配hcv7jop5ns0r.cn 肾脏彩超能检查出什么hcv8jop7ns5r.cn
百度