Си́мула-67 (Simula 67) — язык программирования общего назначения, разработанный в конце 1960-х годов сотрудниками Норвежского вычислительного центра (Осло) Кристеном Нюгором и Оле-Йоханом Далем для моделирования сложных систем.
Simula 67 | |
---|---|
![]() | |
Семантика | объектно-ориентированный |
Класс языка | язык программирования, simulation language[d] и объектно-ориентированный язык программирования |
Тип исполнения | компиляция |
Появился в | 1967 |
Автор | Кристен Нюгор и Оле-Йохан Даль |
Разработчик | Нюгорд, Кристен |
Выпуск |
|
Система типов | статическая |
Основные реализации | Cim |
Испытал влияние | Algol-60 |
Повлиял на | C++, BETA |
ОС | Unix-подобная операционная система, Microsoft Windows, z/OS, TOPS-10 и MVS |
![]() |
Симула традиционно не считается объектно-ориентированным языком в каноническом смысле этого слова, в частности, создатель языка Smalltalk Алан Кэй имел в виду под этим термином семантику акторов, впервые реализованную в языке Плэнер Карла Хьюитта, а не расширение алголоподобных языков «объектной» нотацией[1].
Стал первым языком со встроенной поддержкой основных синтаксических соглашений, принятых в современных языках объектно-ориентированного программирования. Считается, что язык в значительной степени опередил время, и программисты 1960-х годов оказались не готовы воспринять ценности языка, в связи с чем он не выдержал конкуренции с другими языками программирования. Прохладному отношению к языку способствовало и то обстоятельство, что его реализация была весьма неэффективна, не в последнюю очередь из-за использования сборки мусора.
Тем не менее, этот язык активно использовался в образовательном процессе в высших учебных заведениях, особенно в Скандинавии; о влиянии Симулы на разработку им C++ отмечал его автор — Страуструп (в том числе в книге «Дизайн и эволюция C++»).
В современной терминологии язык можно охарактеризовать как объектное расширение Алгола 60. Конструкции языка очень сходны с аналогичными в современных объектно-ориентированных языках.
Программа «Hello, World»:
Begin
OutText ("Hello, World!");
Outimage;
End;
![]() Языки программирования | |
---|---|
| |
|
![]() Объектно-ориентированные языки | |
---|---|
Компилируемые | |
Скриптовые |
|
Оба исполнения |
|