Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

История ПО

.pdf
Скачиваний:
24
Добавлен:
18.03.2015
Размер:
1.4 Mб
Скачать

ПЛ/1 (РL/1, от Programming Language One)

Обычно члены комитета собирались в выходные, как правило, в гостиничных номерах НьюЙорка или Лос-Анджелеса.

«Временами, — вспоминал потом Рэдин, — самыми активными противниками дела оказывались не защитники Фортрана, а брошенные жены и мужья». Спецификации языка

были завершены лишь к февралю 1964г. — новый язык запаздывал к дебюту «Системы-

360». Возможно, это было и к лучшему.

О результате работы комитета над новым языком программирования РL/1, было доложено ассоциации SНАRE (наука) в марте 1964 г..

Некоторые специалисты характеризовали язык как бесформенный, переусложненный и

избыточный. Другие сравнивали его со складным ножом со 100 лезвиями, третьи

саркастически предлагали, почему бы проектировщикам не вставить туда еще и кухонную раковину?

Сотрудники лаборатории в Харсли (Англия), работавшие над компилятором языка установили, что точное определение этого массивного языка займет не менее 200 страниц.

Язык так сильно отредактировали, что разработчики вряд ли узнали бы в получившемся

результате свое творение. Уточнения превратили язык в практичный инструмент программирования, который приветствовали многие программисты.

Фирма IBM надеялась, что РL/1 явится кульминацией всего того, что возникло в языках программирования в предыдущие десятилетия. Но в то же время критики отмечали, что язык

наделен слишком многими качествами, в которых лишь увековечились ошибки прошлого.

По глубокомысленному замечанию Джона Бекуса, первые коммерческие языки оказали отрицательное влияние на развитие РL/1 и последующих языков программирования. «Поскольку первые языки слишком глубоко проникли в среду программистов, — говорил Бекус, — они до сих пор остаются тупиками на пути к более совершенным языкам и лучшему пониманию самих компьютеров».

Класс языка:

Появился в:

Автор(ы):

Типизация данных:

Основные реализации:

Диалекты:

Испытал влияние:

Повлиял на:

Кобол

процедурный, объектно-ориентированный.

1959

Грейс Хоппер, Вильям Селден, Гертруда Тирни, Говард Бромберг, Говард Дискаунт, Вернон Ривз, Жан Е. Саммет Все решения должны были утверждаться Чарли

Филлипсом, представителем министерства обороны, возглавлявшим группу Codasyl.

строгая, статическая

OpenCOBOL, Micro Focus International

HP3000 COBOL/II, COBOL/2, IBM OS/VS COBOL, IBM COBOL/II, IBM COBOL SAA, IBM Enterprise COBOL, IBM COBOL/400, IBM ILE COBOL, Unix COBOL X/Open, Micro Focus COBOL, Microsoft COBOL, Ryan McFarland RM/COBOL, Ryan McFarland RM/COBOL-85, DOSVS COBOL, UNIVAC COBOL, Realia COBOL, Fujitsu COBOL, ICL COBOL, ACUCOBOL-GT, DEC VAX COBOL, Wang VS COBOL, Visual COBOL

FLOW-MATIC, COMTRAN, FACT

Музей вычислительной техники в Бостоне, 16 мая 1985 года. Участники конференции, посвященной 25-летию Кобола, на фоне мемориальной плиты. Слева направо: Ронн Хамм, Джон Джоунс, Ян Прокоп, Оливер Смут, Томас Райс, Доналд Нельсон, Грейс Хоппер, Майкл О?Конн

PL/I, CobolScript, ABAP

В настоящее время программистами

используются Кобол-68, Кобол-74 и Кобол-86.

 

Джон Кимини и Томас Курц, сотрудники математического факультета Дармутского колледжа (ФРГ) написали простой и легкий в изучении язык, который они назвали Бейсик (Beginner’s All-purpose Symbolic Instruction Code – “универсальный код символических инструкций для начинающих”). В 1975 г. был создан интерпретатор Бейсика.

Первая программа на Бейсике была запущена в Дартмуте 4

мая 1964 г..

В 1970 г. Кимини был выбран президентом Дартмутского университета. В качестве президента Кимини был чрезвычайно популярен среди студентов, поскольку относился к ним с вниманием и чутко реагировал на их проблемы. В 1972 г. способствовал поступлению женщин в мужские школы и помог открыть

двери Дартмута для несовершеннолетних студентов.

В 1983 г. Кимини и Курц образовали фирму True Basic Inc., чтобы продавать новую версию Бейсика, который, как они полагали, возродит исходные стандарты

программы.

Характерные черты языка – диалоговый режим работы, нумерация строк, вещественный и символьный тип данных, управляющие конструкции, все

переменные являются глобальными, наличие массивов.

Паскаль

Концепция Паскаля была разработана Н. Виртом в 1970 г. Язык Паскаль быстро получил широкое распространение благодаря легкости

его изучения и наглядности составленных на нем текстов программ. Паскаль послужил основой для разработки других языков, таких как Модула-2, Ада и др. Ещё в середине 70-х годов была предпринята попытка разработать Международный стандарт на Паскаль, но только в 1982 г. появился стандарт ИСО 7185. Стараниями Андерса Хейлсберга впоследствии язык Паскаль превратился в мощную профессиональную систему программирования под названием Турбо Паскаль.

Модула-2. Язык программирования Модула-2 был создан

Н. Виртом в 1979 г. и впервые

реализован на мини-ЭВМ PDP-11. В Модуле-2 были устранены недостатки программирования на языке Паскаль, вызванные его ориентацией на учебную версию. При этом были сохранены логическая структура и характерные черты Паскаля. Язык программирования Модула-2 относится к машинно-независимым языкам. Характерной

чертой Модулы-2 является раздельная компиляция, позволяющая разрабатывать и хранить в

библиотеках программы, которые можно использовать повторно.

Турбо Паскаль. После просуществовавшей недолго и не получившей широкого распространения версии Турбо Паскаля 1.0, в 1984 г. появляется его версия 2.0,

распространение которой пошло стремительными темпами. К осени 1985 г. появляется

версия 3.0. В этой версии компилятор и редактор начали работать существенно быстрее, чем в версии 2.0, появилась возможность передачи параметров в программу с помощью команды RUN. Стал возможным вызов MS DOS из программы, более удобная работа с файлами. С начала 1988 г. начала распространяться версия 4.0, в которой Турбо Паскаль был

представлен в совершенно новой форме. Появилась возможность разбиения программы на

части (модули), компилируемые по отдельности. К осени 1988 г. появилась версия 5.0 с еще более развитым программным окружением и со встроенным отладчиком

Оберон язык программирования высокого уровня, разработанный Никлаусом Виртом, для

исполнения программ на котором предназначена одноимённая операционная система,

авторами которой являются Н. Вирт и Юрг Гуткнехт (Jurg Gutknecht).

Основой для Оберона послужил язык Модула-2, выросший из Паскаля, (по словам Вирта[1], первоначально систему хотели писать непосредственно на Модуле, но пришли к выводу о необходимости её доработки и сокращения, что и привело к появлению Оберона). Целью

проекта (Project Oberon) Никлауса Вирта и Юрга Гуткнехта в 1986-89 гг.[2] было создание с

нуля обозримой и надежной операционной системы для однопользовательской рабочей станции.

Для реализации этого проекта в 1988 году Никлаусом Виртом был спроектирован язык программирования высокого уровня общего назначения, также названный Оберон.[3]

В 1989 году в Швейцарской высшей технической школе Цюриха (ETH) была выпущена

первая реализация Оберона для процессоров семейства NS32000. Он был создан в качестве компонента операционной среды Оберон. Этот компилятор требует менее 50 Кбайт памяти, состоит из 6 модулей общим объёмом около 4000 строк и сам себя компилирует за 15 секунд на компьютере с процессором NS32532 (тактовая частота — 25 МГц).

Язык сохранил основные черты синтаксиса Модулы и был объектным расширением. Это

позволило отказаться от механизма вариантных записей Модулы, являющихся отступлением от первоначальной строгой статической типизации, что дало возможность ввести механизм автоматического управления памятью — сборку мусора: из языка исключена возможность освобождения динамически выделенной памяти с помощью особого оператора, а вместо

него сама среда исполнения содержит модуль, возвращающий неиспользуемую память

системе. Автоматическое управление памятью является средством повышения надёжности программ с динамическими структурами данных, так как исключает человеческие ошибки, свойственные, например, таким языкам, как С/C++.

Чтобы добиться максимальной надёжности и производительности трансляции, было предпринято значительное упрощение языка за счёт его отказа от средств, которые были сочтены ненужными (исходя из опыта разработки, реализации и эксплуатации других языков), либо усложняли компилятор без достаточного оправдания с точки зрения производительности, либо были достаточно сложны, чтобы быть отправленными во внешние библиотеки, либо плохо совмещались с механизмами модульности и автоматического управления памятью: записи с вариантами, перечислимые типы, типы-диапазоны, множества общего вида, беззнаковый целый тип, локальные модули, модули определений, списки экспорта, оператор for, прежний вариант оператора with, специальный синтаксис определения главной программы. Рудиментарные средства поддержки параллельного программирования, имевшиеся в Модуле- 2, не вошли в язык, так как он обслуживал однопользовательскую операционную систему. В целях упрощения отказались от обработки исключений.

Было упрощено описание массивов (индексы массивов могут быть только целочисленными и всегда начинаются с нуля, подобно языку Си), ограничено использование указателей — указатели могут существовать только на записи и массивы, в списках импорта указывается только импортируемый модуль, а при использовании импортированных имён требуется обязательная квалификация (явное указание имени модуля-экспортёра). В статье «От Модулы к Оберону»[1] Вирт подробно прокомментировал причины удаления каждого из элементов.

Из соображений «достаточного минимума» в язык не были включены в качестве явного синтаксического понятия методы (процедуры и функции, связанные с типом), так как этот механизм в самом общем виде легко смоделировать, создавая в объектах (записях в языке Оберон) поля процедурного типа и присваивая им процедуры, соответствующие методам. Таким образом, в Обероне минимальными средствами поддерживается объектно-ориентированное программирование для упрощения процесса трансляции кода и ускорения этого процесса.

Благодаря внесённым изменениям, Оберон стал синтаксически проще. Описание его синтаксиса поместилось на одной странице, полное описание языка занимает около 20 страниц, что вдвое меньше, чем описание Модулы-2. Оберон является если не минимальным, то, во всяком случае, одним из самых малых по объёму универсальных языков программирования высокого уровня.

Пролог

Язык программирования Пролог (PROgramming in LOGic), разработанный в 1970 г. прошлого века группой специалистов под руководством Аллана Колмероэ

(Университет г. Марсель, Франция), применяется для программирования задач искусственного интеллекта. При его создании ни один из известных языков не был взят за основу.

Колмероэ - сотрудник университета в Лумини, составил алгоритм формального способа интерпретации процесса логического вывода и разработал систему

автоматического доказательства теорем, которая послужила прообразом Пролога. На этом языке можно решать задачи в области математической логики, понимания естественного языка, в сфере автоматизации проектирования, при символьном решении уравнений, анализе биохимических структур и т. д. Пролог является диалоговым языком. Перед Прологом ставится задача, которую необходимо решить и он уж сам ищет решение. Из-за необычности своей структуры он использовался при решении достаточно нестандартных задач, поэтому оказался распространен не так широко, как другие языки. Программа на Прологе состоит из множества утверждений, каждое из которых является либо фактом, характеризующим наличие некоторой информации, либо правилом, позволяющим принять решение на основе заданных фактов. Пролог – это язык логического программирования, он является не процедурным, а декларативным языком. Пролог сам находит решение задачи, описанной человеком. Он был принят в качестве базового языка в японском проекте создания ЭВМ пятого поколения. Получил особое признание в Европе [108].

Язык Си был разработан и реализован Дэннисом Ритчи в 1972 г. в фирме Bell Labs. Деннис Ритчи – глава отдела

исследований системного ПО в Научно-исследовательском центре вычислительных наук фирмы Bell Labs/Lucent Tecnologies в Мюррэй-Хилл, штат Нью-Джерси (США).

В 1977 г. была начата работа по созданию машиннонезависимой версии транслятора с языка Си с целью

облегчить его перенос в новые окружения, отличные от UNIX. Результатом этого явилось появление совместимых по входному языку трансляторов с языка Си, а сам он был переработан для повышения мобильности написанных на нём программ.

Недостатком языка Си как языка системного программирования является отсутствие механизмов раздельной компиляции. В 1978 г. Брайан Керниган и Деннис Ритчи написали

книгу "Язык программирования Си", которая стала стандартом описания языка Си.

Первые версии языка Си ++ были разработаны в начале 80-х годов прошлого века Бьярном Стауструпом, сотрудником AT&T Bell Labs, где ранее были разработаны UNIX и Си. По признанию автора, Си ++ никогда не разрабатывался на бумаге. Проектирование,

реализация и документирование его возможностей происходили практически одновременно.

В качестве расширения языка Си стали использоваться средства поддержки абстракций данных и объектно-ориентированного программирования. В 1983 г. Технический комитет X3J11 Американского национального института стандартов (ANSI) опубликовал стандарт на язык Си, программную среду компилятора и библиотеку стандартных функций. В этом же

году впервые был реализован коммерческий транслятор, соответствующий стандарту, а сам

язык был назван Си ++. В 1985 г. описание языка Си ++ было изложено в книге Б.

Страуструпа "The C++ Programming Language".

Форт – язык программирования, разработаный Чарльзом Муром. Первоначально язык назывался FOURTH (четвертый), однако на той ЭВМ, на которой он работал, символьные

имена могли иметь только 5 букв. Так он стал называться FORTH. Этот язык быстро завоевал

популярность при решении задач управления сложными объектами в реальном времени.

Характерные черты языка Форт: стек – единственная структура данных; основной тип данных

– целый; простой синтаксис и компактная запись; малая потребность в ресурсах, быстрая интерпретация на основе машинного кода; отсутствие контроля за переменными. Форт использовался для разработки математического обеспечения космического корабля многоразового использования ("Шаттл"), искусственных спутников Земли, при создании мультфильмов "Звездные войны" и т.д.

В 1976 г. Комитет Международного астрономического союза принял Форт в качестве стандартного языка программирования, который применяется также при создании

экспертных систем.

Delphi – компилятор языка Паскаль.

В феврале 1995 г. появилась первая версия Delphi 1.0. Это был первый инструментарий разработки Windows-приложений, объединяюший в себе

оптимизирующий компилятор, визуальную среду программирования и мощные возможности для работы с базами данных. Годом позже появилась версия Delphi 2.0 на уровне 32-разрядной операционной системы Windows 95 и Windows NT, который предоставил программисту 32-разрядный компилятор и мощные библиотеки объектов. В 1997 г. был разработан Delphi 3.0 c расширенным набором инструментов для создания приложений и возможностью использования технологий СОМ. Далее появились новые версии Delphi 4.0, 5.0 и т.д. с реализацией новых технологий программирования.

Ада – язык, созданный при финансовой поддержке Министерства обороны США. В 1978 г. был объявлен конкурс на язык программирования, который бы отвечал следующим требованиям: возможность использования неоднородных структур, разделение памяти, реализация неявных функций преобразования

типов.

В1980 г., в соответствии с условиями конкурса, международным коллективом

сучастием программистов фирмы Honeywell и ее французского филиала Cii-Bull, которым руководил Ж. Ишбиа, был разработан язык Ада, названный в честь Августины Ады Лайвейс, считающейся первой программисткой в мире [36].

Окончательная версия спецификации языка Ада появилась в феврале 1983 г.

Она явилась основой для нового стандарта Министерства обороны США Mil-std- 1815A для бортовых вычислителей и стандарта Американского национального института стандартов (ANSI). Окончательная версия международного стандарта ISO 8652-1987 была опубликована в 1987 г.

Структура Ады похожа на Паскаль. Синтаксис большинства операторов и описаний практически идентичен синтаксису Модулы, хотя она появилась

практически в одно время с Адой. Министерство обороны США в соответствии с современными требованиями технологии разработки программ разработало новый стандарт языка ISO/Jes 8652: 1985 (Е). Он описывает версию языка Ада-95. Эта версия является первой в мире объектно-ориентированной системой программирования, на которую был введен международный стандарт. Достоинством этого языка является глубокая стандартизация, а следовательно, хорошая переносимость программ на Ада по сравнению с другими языками программирования [116].