Ранние языки высокого уровня (ЯВУ)

Первые языки программирования 3-го поколения (3GL)
Главная > Информатика > Языки программирования > ЯВУ
Языки передачи, хранения, обработки и представления информации

С  середины 1950-х начали появляться языки третьего поколения (3GL), такие как Фортран, Лисп и Кобол, а в конце 1950-х годов появился Алгол.

Языки программирования этого типа более абстрактны (их еще называют «языками высокого уровня», сокращённо - ЯВУ) и универсальны, не имеют жесткой зависимости от конкретной аппаратной платформы и используемых на ней машинных команд. Программа на языке высокого уровня может исполняться (по крайней мере, в теории, на практике обычно имеются ряд специфических версий или диалектов реализации языка) на любой ЭВМ, на которой для этого языка имеется транслятор (инструмент, переводящий программу на язык машины, после чего она может быть выполнена процессором). Разрабатывать программы на таких языках значительно проще и ошибок допускается меньше. Значительно сокращается время разработки программы. Недостатком некоторых языков высокого уровня является большой размер программ в сравнении с программами на языках низкого уровня.

Обновленные версии перечисленных языков до сих пор имеют хождение в разработке программного обеспечения, и каждый из них оказал определенное влияние на последующее развитие языков программирования. Следует заметить, что на формат и применение ранних языков программирования в значительной степени влияли интерфейсные ограничения. (Из Википедии)

В  период 1960-х — 1970-х годов были разработаны основные парадигмы языков программирования, используемые в настоящее время, хотя во многих аспектах этот процесс представлял собой лишь улучшение идей и концепций, заложенных еще в первых языках III поколения:

  1. Язык APL оказал влияние на функциональное программирование и стал первым языком, поддерживавшим обработку массивов.
  2. Язык ПЛ/1 (NPL) был разработан в 1960-х годах как объединение лучших черт Фортрана и Кобола.
  3. Язык Симула, появившийся примерно в это же время, впервые включал поддержку объектно-ориентированного программирования. В середине 1970-х группа специалистов представила язык Smalltalk, который был уже всецело объектно-ориентированным.
  4. В период с 1969 по 1973 годы велась разработка языка Си, популярного и по сей день и ставшего основой для множества последующих языков, например, столь популярных, как С++ и Java.
  5. В 1972 году был создан Пролог — наиболее известный (хотя и не первый, и далеко не единственный) язык логического программирования.
  6. В 1973 году в языке ML была реализована расширенная система полиморфной типизации, положившая начало типизированным языкам функционального программирования.

Разделы страницы о языках программирования высокого уровня:

На основе многих языков третьего поколения были созданы их объектно-ориентированные версии.


Обзоры о языках программирования третьего поколения (3GL)

Интерпретатор формул ФОРТРАН - нач. 1950-х г.г.

Предок Бэйсика. Имеет солидную библиотеку математических и других формул. Версии: Фортран-77 и Фортран-90.

Фортран (FORTRAN - formula translator) - самый первый из ЯВУ (разработан Бэкусом в начале 1950-х годов) и широко распространенный язык, особенно среди пользователей, которые занимаются численным моделированием, что объясняется несколькими причинами:

  1. существованием огромных фондов прикладных программ на Фортране, накопленных за эти годы, а также наличием огромного количества программистов, эффективно использующих этот язык;
  2. наличием эффективных трансляторов Фортрана на всех типах ЭВМ, причем версии для различных машин достаточно стандартизированы и перенос программ с машины на машину обычно не составляет больших трудностей;
  3. изначальной направленностью Фортрана на физико-математические и технические приложения; в частности, это проявилось в том, что в течение долгого времени он оставался единственным языком со встроенным комплексным типом переменных и большим набором встроенных функций для работы с такими переменными.

Первый функциональный язык АПЛ (APL) - 1957 г.

АПЛ (APL) — мощный язык функционального программирования, оптимизированный для работы с массивами и обладающий кратким и выразительным синтаксисом. Будучи сначала по назначению декларативным языком, впоследствии он стал применяться в обработке данных, физике, математическом моделировании. Поэтому APL - предшественник современных научных вычислительных сред (как MATLAB и пр.).

Язык был разработан преподавателем Гарвардского университета Кеном Айверсоном, как система обозначений для описания вычислений. В 1957 выходит его книга «A Program Language», в которой эта нотация была описана. По названию этой книги язык и получил название APL. В  1960 Айверсон продолжает работу над APL в IBM. Здесь этот язык использовался для описания машинной архитектуры. Первой попыткой реализации APL был написанный для IBM 7090 на Фортране в 1965 году интерпретатор IVSYS. Однако, в нём тогда ещё не использовался набор APL-символов - они заменялись ключевыми словами на английском языке.

Диалектом APL является функциональный векторный язык программирования J. В отличие от APL он не требует специальной раскладки клавиатуры для ввода математических символов, поскольку использует символы ASCII.

Компактный уникум АПЛ (APL) не стал плодотворным на потомков, как многие ЯВУ 50-х и 60-х именно из-за своего преимущества - компактной (а, следовательно, "нечеловеческой") нотации (это похоже с историей другого уникума, появившегося через 20 лет - языка-операционки Форт). Однако, его немногочисленные, но преданные сторонники гордиляться тем, что легко разрабатывают сложные программы.

Алгоритмический язык АЛГОЛ - 1958 г.

Предок Паскаля, Модулы, Ады, т.к. имел красивую и плодотворную идею "правильного" структурного программирования.

Алго́л (англ. Algol от англ. algorithmic — алгоритмический и англ. language — язык) — несколько версий языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ. Разработан комитетом по языку высокого уровня IFIP в 1958—1960 годах (Алгол 58, Алгол 60); усовершенствован в 1964—1968 годах (Алгол 68). Алгол был популярен в Европе, в том числе в СССР, в то время как сравнимый с ним язык Фортран был распространён в США и Канаде. Оказал заметное влияние на все разработанные позднее императивные языки программирования — особенно на язык Pascal.

Обычно названием Алгол именуют Алгол 60, в то время как Алгол 68 рассматривается как самостоятельный язык. (Википедия)

Финансовый обработчик строк Кобол (COBOL) - 1959 г.

Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление. (Дейкстра)

Кобо́л (COBOL - COmmon Business Oriented Language) — один из старейших языков программирования (первая версия в 1959), предназначенный, в первую очередь, для разработки коммерческих приложений. Руководителем проекта по созданию Кобола была Грейс Хоппер. В свежий стандарт языка 2002 года в Кобол добавлены средства объектно-ориентированного программирования [!?] и другие современные языковые конструкции.

Кобол обычно критикуется за многословность и громоздкость, поскольку одной из целей создателей языка было максимально приблизить конструкции к английскому языку. До сих пор Кобол считается языком программирования, на котором было написано больше всего строк кода. Например, к 1997 году активно использовалось около 240 миллиардов строк кода на Коболе. Около 90 % финансовых транзакций в мире обрабатывается кодом на Коболе, и 75 % коммерческой обработки данных написано на Коболе. Общая стоимость используемого в настоящее время коболовского кода оценивается в 2 триллиона долларов США. И до сих пор ежегодно пишутся миллионы новых строк кода на Коболе.

В то же время, Кобол имел прекрасные для своего времени средства для работы со структурами данных и файлами. Он стал первым языком, в котором появился тип данных «запись»б что обеспечило ему долгую жизнь в бизнес-приложениях (по крайней мере, в США - см. выше).

Интерпретатор BASIC (Бэйсик) - 1963 г.

Практически невозможно научить хорошему стилю программирования студентов, которые раньше имели дело с Бейсиком; в качестве программистов они умственно покалечены без надежды на восстановление. (Edsger Wybe Dijkstra)

Бейсик (BASIC - Beginner’s All-Purpose Symbolic Instruction Code – “универсальный символический код инструкций для начинающих”). Прямой потомок Фортрана и до сих пор самый популярный язык программирования для персональных компьютеров. В 1963 годe 2 профессора Дартмутского Колледжа Дж. Кемени И Т. Куртс (США), создали этот язык программирования для людей, которые не являются профессиональными программистами, но имеют дело с компьютерами. Авторы намеревались создать простой и удобный язык, содержащий всего несколько ключевых слов, которые можно было бы выучить в течении часа. Идея оказалась удачной. Когда же в середине 70-х годов появились персональные компьютеры, то Basic как нельзя лучше подошел для них, поскольку занимал всего 4КВ памяти. Кроме того, в это же время появился вариант компилятора для микро-ЭВМ QUASIC - быстрый Бейсик, имевший такой же малый размер транслятора и позволявший генерировать исполняемые модули, использовавшие предельную скорость процессора.

Как и любые преимущества, простота Бейсика оборачивалась, особенно в ранних версиях трудностями структурирования; кроме того, Бейсик не допускал рекурсию – интересный прием, позволяющий составлять эффективные и в то же время короткие программы. В первых версиях Бейсика, в 1960-е, 1970-е годы, вначале каждой строки надо было ставить цифровую метку номера оператора (как в Фортране). В последующих версиях это утомительное занятие было устранено. Был исключено ключевое слово LET (взять) в математических операторах.

Кентавр-язык ПЛ/1 (PL/1) - 1965 г.

Попытка скрестить всё лучшее от Фортрана до Алгола. Не прижился и практически и не дал идейных всходов теоретически.

Язык PL/1 [Program Language ?] разработан в 1964-1965 годах фирмой IBM. PL/1 относится к числу универсальных языков, т. е. позволяет решать задачи из разных областей: численные расчеты, текстовая обработка, экономические задачи и т. д. По своим возможностям он перекрывает такие языки, как Фортран, Алгол-60 (созданный для численных расчетов), Кобол (для экономических задач), хотя в силу ряда причин вытеснить эти языки PL/1 не смог.

PL/1 содержит все основные конструкции, характерные для так называемых языков высокого уровня, а также ряд специфичных средств, удобных для практического программирования. Язык напоминает конструктор с большим числом деталей – пользователю достаточно освоить только те части языка, которые ему практически необходимы. Его операторы довольно емки, что часто позволяет получить запись программы более компактную, чем на других языках. Знающий PL/1 программист без труда осваивает любой другой язык того же или близкого класса.

Вместе с тем, ПЛ/1 имеет и ряд недостатков, затрудняющих изучение и использование языка. Основные из них таковы. Во-первых, имеется много дублирующих друг друга средств их сложно запомнить, не ясно, что когда применять, кроме того, это снижает как скорость трансляции, так и скорость выполнения программ. Во-вторых, программы получаются не совсем машинно-независимыми.

Его Величество язык Си - 1972 г.

Все технологии смертны, только язык C вечен!

Сотрудник фирмы Bell Labs Денис Ритчи создал язык Си в 1972 году во время совместной работы с Кеном Томпсоном, как инструментальное средство для реализации операционной системы Unix [для написания Юникса]. Следует заметить, что Ритчи не выдумывал Си из головы – прообразом служил язык Би [B] разработанный Томпсоном. [А можно было его назвать и Sy (Сай - почти Си), т.к. он был предназначен для системного программирования (system programming).]

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

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

Однако, язык Си предъявляет достаточно высокие требования к квалификации использующего его программиста. При изучении Си желательно иметь представление о структуре и работе компьютера. Большую помощь и более глубокое понимание идей Си, как языка системного программирования, обеспечат хотя бы минимальное знание языка ассемблер. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Тем не менее, как оказалось Си – чрезвычайно эффективный и выразительный язык, пригодный для широкого класса задач.

Таким образом, язык программирования Си является ЯВУ, но заточенным для системного программирования. Он не только обеспечивает возможность лёгкого доступа к низкоуровневым свойствам техники и ОС, но, что самое полезное - после компиляции даёт очень компактный машинный код. Это высококлассный инструмент для программистов-практиков.

Структурированный язык Паскаль - 1973 г.

Язык программирования Паскаль был разработан профессором кафедры вычислительной техники Швейцарского Федерального института технологии Николасом Виртом в 1968 году как альтернатива существующим и все усложняющимся языкам программирования, таким, как PL/1, Algol, Fortran. Интенсивное развитие Паскаля привело к появлению уже в 1973 году его стандарта в виде пересмотренного сообщения, а число трансляторов с этого языка в 1979 году перевалило за 80.

В  начале 80-х годов Паскаль еще более упрочил свои позиции с появлением трансляторов MS-Pascal и Turbo-Pascal для ПЭВМ. С этого времени Паскаль становится одним из наиболее важных и широко используемых языков программирования. Существенно то, что язык давно вышел за рамки академического и узко профессионального интереса и используется в большинстве университетов высокоразвитых стран не только как рабочий инструмент пользователя.

Важнейшей особенностью Паскаля является воплощенная идея структурного программирования. Другой существенной особенностью является концепция структуры данных как одного из фундаментальных понятий.

Стековая машина Форт (Forth) - 1977 г.

Кибернетический суперпаскаль Ада - 1975-79 г.

Язык программирования высокого уровня Ада назван в часть Августы Ады Байрон, графини Лавлейс и дочери английского поэта лорда Байрона. Она была ассистентом, коллегой и сторонницей Чарльза Беббиджа, математика и изобретателя вычислительной машины, названной аналитической машиной. С помощью Ч. Беббиджа в 1830 г. она написала практически законченную программу на аналитической машине для вычисления чисел Бернулли. Поэтому графиню можно назвать первым в мире программистом на вычислительной машине.

Язык Ада создан в основном в 1975 - 1980 годах в результате грандиозного проекта, предпринятого Министерством Обороны США с целью разработать единый язык программирования для так называемых встроенных систем (систем управления автоматизированными комплексами, работающими в реальном времени). Имелись в виду прежде всего бортовые системы управления военными объектами (кораблями, самолетами, танками, ракетами, снарядами и т. п.). Поэтому решения, принятые авторами Ады не следует считать универсальными.

Язык Ада возник в результате международного конкурса языковых проектов проходящего в 1978-1979 годах. Участники должны были удовлетворить довольно жестким, детально разработанным требованиям. Интересно, что все языки, дошедшие до последних туров этого конкурса, были основаны на Паскале. В этой связи Аду можно предварительно охарактеризовать как Паскаль, развитый с учетом перечисленных выше требований. При этом авторы пошли в основном по пути расширения Паскаля новыми элементами. В результате получился существенно более сложный язык.

Модульный язык системного программирования Модула (1980 г.) и его потомки

Можно считать, что история языка Модула начинается в 1980 году, когда Никлаус Вирт, один из выдающихся специалистов по теории информации, известный большинству специалистов по вычислительной технике в основном как создатель языка Паскаль, опубликовал описание нового языка программирования, названного им Модула. В отличие от Паскаля, который был по замыслу языком для обучения программирования, Модула с самого начала представлял собой язык для профессиональных системных программистов, продолжая лучшие традиции своего предшественника и обогащая их новыми идеями, соответствующих таким требованиям к языкам программирования, как структурность, модульность и способность к расширению.

Как и множество других языков программирования, Модула подвергалась эволюции, во время которой ее первоначальное название было переделано в имя Модула-2. Одновременно с развитием языка Модула для него создавались новые компиляторы, однако, ни один из них не мог соперничать с лучшими реализациями языков Паскаль и Си, например, разработанных фирмой Борланд. В этот переходный для языка Модула период лучшей считалась реализация фирмы Logitech, которая по своим характеристикам проигрывала Турбо Паскалю и Турбо Си. Только в 1988 году после появления на американском рынке системы Top Speed, Модула-2 заняла достойное место среди процедурных языков, предназначенных для системного программирования.

Объектно-ориентированные потомки Модулы-2 (Оберон, Модула-3)

Важно заметить, что Вирт не признавал необходимость объектно-ориентированного программирования и утверждал, что всё можно сделать Модулой. Вроследствии появились языки Модула-3 и Оберон.

Оберон — язык программирования высокого уровня, разработанный Никлаусом Виртом, для исполнения программ, исполняемых в одноимённой операционной системе, авторами которой являются Никлаус Вирт и Юрг Гуткнехт (1986—1989 годы). Основой для Оберона послужил язык Модула-2. Первоначально систему хотели писать на самой Модуле, но увидели, что её надо доработать и сократить, что и привело к появлению Оберона. Целью проекта было создание с нуля обозримой и надежной операционной системы для персонального компьютера.

Modula-3 - объектно-ориентированный язык системного программирования [как C++]. Разработка Модулы-3 началась в 1986 году. Морис Уилкс (Maurice Wilkes) написал Никлаусу Вирту некоторые идеи по созданию новой версии Модулы. Уилкс, до этого работавший в DEC, вернулся в Англию и устроился в исследовательский центр Olivetti. Никлаус Вирт в это время был занят разработкой нового языка программирования Oberon, но не отказал Уилксу в помощи. Окончательное описание Модулы-3 было сделано в январе 1989 года. Модула-3 получила распространение преимущественно в академической среде, как язык для обучения программированию, и почти не использовалась в промышленности. Причиной этого могла послужить гибель DEC — основного разработчика языка. В настоящее время техническую поддержку Модулы-3 предоставляет корпорация Elego Software Solutions GmbH.


Главная

Языки программирования: 1GL и 2GL | 3GL (Яву) | Пионеры ООП | 4GL и RAD | Визуально-объектные | Сценарные (скриптовые) | Ява-подобные Парадигмы информатики

Алгоритмы | Бизнес-анализ | Жизненный цикл программ | Интернет | IT-стандарты | ОС | СУБД | Искусственный интеллект и 5GL

ИТ-менеджмент | Электроника | Математика | Эвристика | Компьютерные игры

На правах рекламы (см. условия):    


© «Сайт Игоря Гаршина», 2002, 2005. Пишите письма (Письмо И.Гаршину).
Страница обновлена 14.11.2016
Я.Метрика: просмотры, визиты и хиты сегодня