╔══════════════════════════════════════╗
║ Языки программирования. ║▒
╚══════════════════════════════════════╝▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Несмотря на то,что языков программирова-
ния сегодня более 500,их можно разделить
на 2 группы: в первую отнесем те языки,ко-
торые позволяют заложить в машину способ
решения задачи (алгоритм),вторая группа -
это логические функциональные языки,кото-
рые привлекают внимание в связи с исследо-
ваниями в области искусственного интеллек-
та.К первой группе относятся ФорТран,Бей-
сик,Алгол,Си,Паскаль и т.д.,ко второй
Лисп,Пролог,Лого и т.д.Первые представите-
ли обеих групп появились одновременно в
50-е годы.Одним из патриархов языков счи-
тают Фортран.Фортран (от англ. FORmula
TRANslating System - система трансляции
формул) ориентирован на решение научно--
технических задач,был разработан IBM в се-
редине 50-х годов,что определило его осо-
бенности.В то время начинка компьютера бы-
ла дорогой,поэтому традиционный Фортран
экономно обращается с памятью и в нем от-
сутствует возможность косвенной адреса-
ции.Он плохо поддается структурирова-
нию.Программисты считают это его недостат-
ком.И все же на Фортране в нашей стране
пишут более 30 лет: среди причин машины
типа IBM и огромное число готовых прог-
рамм.Одна из последних версий - Фортран
8x.Бейсик (от англ. Beginner's All-Purpose
Symbolic Instruction Code - универсальный
символический код инструкций для начинаю-
щих) прямой потомок Фортрана и самый попу-
лярный язык программирования.Появился он в
1964 г.Назвать автора сложно,но основная
заслуга в его появлении принадлежит амери-
канцам Джону Кемени и Томасу Курцу.Ин-
терпритатор этого языка занимал в памяти
ЭВМ 80-х годов не более 8 Кб,чем и привлек
к себе не только любителей,но и профессио-
налов.В отличии от Фортрана он обрабатыва-
ет не только числовые,но и символьные пе-
ременные,поэтому оказался более удобным
для решения повседневных задач.Простота
Бейсика обернулась трудностями структури-
рования,а также невозможностью рекур-
сии.Сейчас разработаны мощные компиляторы
Бейсика,которые дают богатую лексику,высо-
кое быстродействие,а также возможность
структурного программирования (констркуция
WHILE - WEND).Алгол (от англ. ALGOrithmic
Language - алгоритмический язык) появился
почти сразу же после Фортрана.Ему присущи
все черты алгоритмического языка.В нем
предусмотрена возможность рекурсии.Однов-
ременно с языком были разработаны теорети-
ческие критерии: способность к структури-
рованию,самодокументация и т.д.Принято
различать Алгол 60 (полностью отсутствова-
ли средства ввода-вывода) и более совер-
шенный Алгол 68.Но как часто бывает язык
опоздал и деньги затраченные на IBMовский
Фортран остановили развитие Алгола.Он так
и остался языком теории.Большую из-
вестность получили принципы впервые зало-
женные в Алгол.Они легли в основу
ПЛ/1,Паскаля и Си.Си (от англ. C - 3-я
буква алфавита) был задуман как инструмент
для развития операционной системы Unix,ко-
торый возник в начале 70-х годов.На тот
момент Си был главным орудием системного
программиста,он позволял решать такие за-
дачи,которые в ином случае потребовали бы
использование Ассемблера.Язык требует от
программиста высокой дисциплина,но доспу-
кает краткие формулировки.Си по сути язы-
ковой сердечник,который легко изучить,но
трудно освоить способ письма.Необходимые
расширения опредляются в нем как функции
пользователя.На практике любая система Си
содержит достаточно обширную библиотеку
функций,необходимость которых возникает по
ходу программирования.Привлекательная чер-
та Си - наличие структурности,модульнос-
ти,определение типов данных и рекурсив-
ность.Практически для каждого типа ЭВМ
имеется хотя бы одна версия компилятора
Си.Машинные программы,пораждаемые компиля-
тором,более компактны и выполняются
быстрее,чем те,что генерирует компилятор
Паскаля,и все же по общему мнению Си не
самый подходящий язык для начинающего
программиста.Пасклаль (Pascal - назван так
в честь знаменитого математика Блеза Пас-
каля) явился первым образцом языка истинно
структурного программирования.Однако при-
ходится часто слышать упреки в адрес Пас-
каля из-за его излишней формальнос-
ти,жестких и мелочных требованиях к прог-
раммисту.Иногда Паскаль сравнивают с квад-
ратным колесом.Модула-2 (от англ.
Modula-2) - прямой наследник Паскаля.Автор
1-го и 2-го профессор Никлаус Вирт из
Швейцарии.В Модуле появились черты которые
заставляют вспомнить о Си,позволяющие
программисту "заглядывать внутрь" маши-
ны.Язык расчитан на организацию парал-
лельных процессов,что обеспечивает высокое
быстродействие готовой программы.Кобол (от
англ. COmmon Business Oriented Language -
язык ориентированный на общий бизнес) -
старый язык разработанный для исследований
в экономической сфере.Позволяет эффективно
работать с большим количеством данных,на-
сыщен разнообразными возможностями поис-
ка,сортировки и распределения.О программах
на Коболе (основанны на широком использо-
вании английского языка) говорят,что они
понятны даже тем,кто не владеет Кобо-
лом,поскольку тексты программы не нуждают-
ся в специальных комментариях.Подобные
программы называют самодокументирующими-
ся.Еще один плюс его структурированность.К
минусам можно отнести то,что на Коболе
можно запрограммировать только простейшие
алгебраические вычисления.Для инженерных
расчетов он не годится.Еще одна причи-
на,которая сдерживает этот язык - наличие
в США специально созданного отраслевого
комитета,вырабатывающего стандарты за соб-
людением которых следит правительственая
комиссия. Как это всегда бывает в подобных
случаях фирмы,занимающиеся ПО не торопятся
подгонять свои заготовки к требованиям ко-
миссии.ПЛ/1 (от англ. PL/1 - Programming
Language 1 - язык программирования 1) -
результат первой попытки создать универ-
сальный язык используя популярные качества
других языков.Создавался он фирмой IBM в
начале 60-х и получил черты Фортрана,Алго-
ла и Кобола.Напоминает большой конструктор
с большим количеством деталей,так что
пользователю достаточно освоить только те
части языка которые ему необходимы.Прог-
раммисту начинавшему с Бейсика легче изу-
чить ПЛ/1 нежели Паскаль.Цель,которую
преследовали разработчики языка определила
его конструкцию - большинство операторов
громоздки.В общем - живой динозавр в Вави-
лоне языков программирования.В полном об-
ьеме ПЛ/1 так и не был реализован на пер-
сональных компьютерах.Ада (в честь графини
Августы Ады Лавлейс - дочери лорда Байро-
на,написавшей вместе с Чарльзом Беббиджем
первую программу для придуманной аналити-
ческой машины еще в 1830 году) несмотря на
романтичную историю с названием был разра-
ботан по заданию министерства обороны
США.Предназначался для программирования
встроенных в военную аппаратуру специали-
зированных ЭВМ,поэтому отдано должное осо-
бенностям технических систем.Также ориен-
тирован на создание больших программных
проектов.Структура языка напоминает Пас-
каль и позволяет контролировать парал-
лельные вычислительные процессы.Пока что
министерство обороны США использует Аду
для всех программных разработок.Будушее
Ады на персональных компьютерах неопреде-
ленно.Форт (от англ. Forth - вперед и од-
новременно Fourth - четвертый) - язык для
решения задач управления.Сегодняшний Форт
практически не поддается классификации:
интерпритатор,компилятор или операционная
система?Основная идея Форта - опираясь на
исходный словарь определять новые сло-
ва.Включать их в библиотеку и через них
определять новые слова.Последнее слово и
есть программа решающая задачу.Ядро Фор-
та,т.е. функции,которые необходимы для
первичного диалога с машиной очень ком-
пактны,а порождаемые тексты в машинных ко-
дах весьма эффективны.Программы на Форте
тяжело читать "непосвященным",а математи-
ческие выражения получаются не очень наг-
лядным.Форт требует от программиста усид-
чивости,но позволяет написать любую прог-
рамму: от видеоигры до большой систе-
мы,причем работающей в реальном време-
ни.Лисп (от англ. Lisp) второй после
Фортрана язык,если говорить о возрас-
те.Лисп представитель языков функцио-
нального программирования.Ориентирован на
динамическую обработку данных,кстати нет
особых различий между данными и программи
Лиспа: числа и знаки,программы и данные
считаются списками,что позволяет програм-
мисту эффективно их перерабатывать,т.о.
программа способна перерабатывать сама се-
бя. Это позволяет использовать Лисп решать
задачи для которых отсутствует четкий ал-
горитм решения.Обычно ЯЗЫК создают ориен-
тируясь на конкретную машину.В данном слу-
чае для новых версий Лиспа появились спе-
циальные Лисп-компьютеры,архитекрута кото-
рых соответствует структуре язы-
ка.Большинство версий Лиспа приобрели чер-
ты других языков и значительно отклоняются
от "чистого" Лиспа.Устройство языка позво-
ляет доопределять новые конструкции,что
напоминает Форт.В основном Лисп применяет-
ся для построения систем искусственного
интеллекта.Пролог (от англ. PROLOG -
PROgramming in LOGic - логическое програм-
мирование) появился как европейский проти-
вовес американскому Лиспу и относится к
языкам для создания систем искусственного
интеллекта.Основная концепция языка - пе-
реводить логическую задачу в текст прог-
раммы.Компьютер должен самостоятельно вы-
водить результат из фактов и правил,при
этом не получая от программиста путь реше-
ния.Программист определяет лишь объекты и
относящиеся к ним логические связи.Как и
Лисп он не различает данные и програм-
му.Широко распространен Турбо Пролог для
персональных компьютеров,но в нем от-
сутствует свойство изменять исполнемую
программу.Оккам (ОCCAM - в честь философа
У.Оккама,утверждавшего,что понятие несво-
димые к интуитивному знанию и не поддающи-
еся проверке опытом,должны быть удалены из
науки: "Сущности не следует умножать без
необходимости") - пример того,как ПО сле-
дует за техническими новинками,предназна-
чен для использования совместно с
транспьютером,т.е. микропроцессором,осно-
ванном на использовании нескольких парал-
лельно работающих процессоров.Оккам делит
решение задачи на параллельно протекающие
процессы.Смолтолк (от англ. Small Talk -
короткий разговор) умеет работать с
абстрактными объектами,которые не имеют
ничего общего ни с техническими свойствами
компьютера,ни с классическими объектами
переработки,т.е. числами или литерными це-
почками.Используется в области искусствен-
ного интеллекта.Такое же название носит
интерактивная среда программирования,раз-
работанная научно-исследовательским
центром Ксерокс,ведущим работы в области
искусственного интеллекта.В концепциях
этих двух языков есть идеи,которые превос-
ходят возможности современных компьютеров.
Текст набит по статье "Школа начинающего
программиста" из журнала "Наука и жизнь"
номер 9,1989 год.