Симула | это... Что такое Симула? (original) (raw)

Simula 67

Семантика: объектно-ориентированный
Тип исполнения: компилятор
Появился в: 1967
Автор(ы): Кристен Нюгорд и Оле-Йохан Даль
Типизация данных: статическая
Основные реализации: Cim
Испытал влияние: Algol-60
Повлиял на: Smalltalk, C++, BETA

Си́мула-67 (Simula 67) — первый в мире объектно-ориентированный язык программирования. Разработан в конце 60-х сотрудниками Норвежского Вычислительного Центра (Осло) Кристеном Нюгордом и Оле-Йоханом Далем для моделирования сложных систем.

Simula 67 явилась первым языком с встроенной поддержкой основных механизмов объектно-ориентированного программирования. Этот язык в значительной степени опередил своё время, современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran). Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что его реализация была весьма неэффективна, не в последнюю очередь из-за использования сборки мусора.

Тем не менее, этот язык активно использовался в образовательном процессе в высших учебных заведениях, особенно в Скандинавии. О влиянии достоинств и недостатков Симулы на разработку им C++ пишет Страуструп в начале своей книги «Дизайн и эволюция C++». Без сомнения, идеи, заложенные в этот язык, оказали влияние и на другие реализации ООП, такие, как Smalltalk.

В современной терминологии Simula 67 можно охарактеризовать как объектное расширение Algol 60. Более всего в Simula 67 поражает сходство с современными языками: пожалуй, единственными существенными пробелами по сравнению с Java являются отсутствие интерфейсов и невозможность для объекта иметь более одного конструктора.

Ссылки

Просмотр этого шаблона Основные языки программирования (сравнениеIDEисторияхронология)
Используемыев разработке АдаAPLЯзык ассемблераActionScriptABAP/4AutoItAWKБейсикСиКоболC++C#ClarionClojureColdFusionCommon LispDdBaseDelphiEiffelErlangEuphoriaF#ФортФортранGambasGoGroovy • HAL/S • HaskellIconJavaJavaScriptLimboLuaМодула-3Object PascalObjective-COCamlOzParserПаскальКомпонентный ПаскальPerlPHPPowerBASICPythonПЛ/1ПрологRubyScalaSchemeSmalltalkSQLPL/SQLTclValaVisual Basic (.NET)
Академические AgdaCleanCurryЛогоMLРЕФАЛСимулаОберон
IEC 61131-3 Instruction ListSTFBDLadder Diagram (LD) • SFC
Прочие АлголАлгол 68Модула-2МирандаHope
Эзотерические HQ9+/HQ9++ • INTERCALBrainfuck • Brainfork • BefungeMalbolgePietSpoonUnlambdaWhitespaceFALSELOLCODE
Визуальные G (LabVIEW) • Microsoft VPLSikuliVisSimАлисаДРАКОНСкретч