Симула
Си́мула-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;
ПримечанияПравить
- ↑ Alan Kay's Definition Of Object Oriented Programming (неопр.). Дата обращения: 24 января 2014. Архивировано 13 августа 2013 года. «I invented the term object-oriented, and I can tell you that C++ wasn’t what I had in mind»
СсылкиПравить
- heim.ifi.uio.no/~kristen/FORSKNINGSDOK_MAPPE/F_OO_start.html — Страничка Кристена Нюгора (Архив (англ.)).
- www.iro.umontreal.ca/~simula — раздел посвящённый Симуле-67 на сайте Монреальского университета.
- staff.um.edu.mt/jskl1/talk.html — Introduction To OOP In Simula
- www.volny.cz/petr-novak/cim — Cim 3.33 for MS Windows — компилятор Симулы c GPL лицензией.