Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 18
Текст из файла (страница 18)
Развитие этого языка происходило в период с 1960 по 1962 год. и он оставался стандартной версией языка ГОКТКА1Ч вплоть до выхода в 1978 году сообщения о выпуске языка ГОКТКА)Ч 77 (А!ЧБ!. 1978а). По многим параметрам язык ГОКТКА!Ч 1Ч был значительно лучше языка ГОКТКА1Ч П. Среди важнейших его ново- Глава 2. Обзор основных языков программирования 66 введений было явное объявление типов переменных. логический оператор 1Г. а также возможность передавать одни подпрограммы другим в качестве их параметров. Язык ЕОКТКА)4 77 полдерживач большинство свойств языка ЕОКТКАН!Ч. кроме того, в него были добавлены обраоотка символьных строк. логические операторы управления циклами. а также возможность использования оператора ЕЬЯЕ в структуре выбора 1 Г.
Название ЕОКТКАМ 90 используется для обозначения позднейшей версии языка ГОКТКА1Ч (А)4Б1, 1992). Язык ЕОКТКАМ 90 разительно отличается от языка ЕОКТКАМ 77. Наиболее значительные изменения кратко описываются ниже. Встроен набор функций. выполняюший действия с массивами. В их число входят: ВОТРКОВОСТ, МАТМОЬ. ТВАЕЯРОЯЕ. МдХЧАЬ. М1ЯЧА . РВОЭУСТ и ЯУМ. о назначении которых можно догадаться по названиям ("скалярное произвеление".
"умножение матриц", "транспонирование", "максимальная величина". "минимальная величина". "произведение' и "сумма"). Зто только некоторые из наиболее полезных доступных функций. Если массивы были объявлены как А ЬОСАТАВЬЕ. то они могут по команде линами- чески размещаться в памяти и удачяться из нее. Послелняя возможность является радикальным изменением по сравнению с предыдушими версиями языка ЕОКТКАИ. имевшими только статические данные. Была введена форма записей, названных производными типами.
Частью языка ЕОКТКАИ 90 стали также указатели. Были добавлены новые управляюшие операторы: оператор многовариантного ветвления САЯЕ. оператор ЕХ1Т вЂ” лля преждевременного выхода и оператор СТСг Š— лля передачи управления на начало цикла без выхода из цикла. Подпрограммы могут быть рекурсивными. а также иметь необязательные и ключевые параметры.
Была добавлена возможность использования модулей, аналогичных пакетам языка Ада. Молули могут содержать объявления ланных и подпрограммы. кажлую из которых для управления внешним лоступом можно описать с помощью спецификаторов РК1ЧАТЕ либо РУВЬРС. В описании языка ЕОКТКА)ч 90 появилась новая концепция, позволявшая удалять свойства языка. присутствовавшие в ранних версиях. Хотя язык ЕОКТКА)4 90 и облалач всеми возможностями языка ЕОКТКАН 77, было составлено два списка свойств, которые могли быть ликвидированы в следуюшей (после языка ЕОКТКА)4 90) версии языка ЕОКТКАМ.
В этом списке были указаны такие операторы, как арифметический оператор 1Г и назначенный оператор ООТО. Список свойств. не рекомендуемых к употреблению, включал свойства, от которых планировалось отказаться во второй версии, которая последует за языком ЕОКТКА)Ч 90. В этом списке находились операторы СОММОМ, Е001ЧАЬЕИСЕ, вычисляемый оператор ОСТО. а также операторные функции. 2.3.6. Оценка Команда разработчиков первоначального варианта языка ГОКТКАМ полагача. что разработка языка — только необходимая прелюдия перед насушной залачей разработки транслятора. Более того, им никогда не приходило на ум.
что язык ЕОКТКА)Ч мог бы использоваться на компьютерах производства лругих корпораций, а не корпорации 1ВМ. Действительно. они были вынуждены продумывать построение компиляторов языка ЕОКТКАН для других машин, созлаваемых корпорацией 1ВМ. только потому, что преемник компьютера 1ВМ 704. компьютер 1ВМ 709, был выпушен до выпуска компилятора языка ЕОКТКАН, предназначенного для компьютера 1ВМ 701.
Тот факт, что язык 6У 2.3. Компьютер (ВМ 704 и язык ГОКТКАМ ЕОКТКА)Ч был реазьно использован на компьютерах, а все последующие языки программирования своим появлением в той или иной степени обязаны языку ЕОКТКА)Ч, является действительно впечатляющим в свете скромных притязаний его разработчиков. Одним из свойств языка ЕОКТКА)Ч 1 и всех его последующих версий, за исключением языка ЕОКТКА)Ч 90. позволявшим создание высоко оптимизированных компиляторов, было то, что типы и ячейки памяти для всех переменных фиксировались до выполнения программы. В процессе выполнения программы новые переменные не вводились, и распределение памяти не производилось. Таким образом, гибкость программирования была принесена в жертву простоте и эффективности. Подобное решение исключило возможность создания рекурсивных подпрограмм и затруднило реализацию структур данных, которые могли бы динамически увеличиваться или изменять вид.
Разумеется, программы, создаваемые во время разработки ранних версий языка ЕОКТКА)Ч, были вычислительными по своей природе и простыми по сравнению с современными программными проектами. Следовательно, жертва была не так уж и велика. Трудно переоценить глобальный успех языка ЕОКТКА)Ч: он действительно разительно и навечно изменил способ использования компьютеров. Это, разумеется, произошло в значительной мере благодаря тому. что он оказался первым широко используемым языком высокого уровня. По сравнению с концепциями и языками, разработанными позже. ранние версии языка ЕОКТКАМ значительно проигрывают, как и следовало ожидать. Все-таки выпущенному Фордом в 1910 году автомобилю "Моде! Т" далеко до созданного в 1998 голу автомобиля "Рога Мцзгапй'.
Тем не менее, несмотря на недостаточность языка ЕОКТКА)Ч, движущая сила вложенных в него огромных инвестиций, помимо других факторов, вывела его в число самых используемых языков высокого уровня. Алан Перлис (А!ап Рег!В), один из разработчиков языка АЬООЬ 60, в 1978 году сказал: "Язык ЕОКТКА1Ч вЂ” это Йндиа/галса (смешанный язык из элементов романских, греческого и восточных языков, служащий для общения в восточном Средиземноморье; также язык с широкой сферой употребления, жаргон.
— Приз(.перев.) компьютерного мира. Это язык улиц, в лучшем, а не вульгарном смысле этого слова. Он выжил и будет жить. поскольку он был создан для того, чтобы быть замечательно полезной частью жизненно важной коммерческой деятельности" ()Уехе1Ыа(, 1981). Ниже следует пример программы на языке ЕОКТКА)Ч 90. С ПРИМЕР ПРОГРАММЫ НА ЯЗЫКЕ ГОНТНАН 90 С ВВОД: ЦЕЛОЕ ЧИСЛО Ь1БТ ЬЕН, МЕНЬШЕ 100, ЗА КОТОРЫМ С СЛЕДУЕТ НАБОР ЦЕЛЫХ ЧИСЕЛ, В КОЛИЧЕСТВЕ С ЫБТ ЬЕН С ВЫВОД: КСЛИЧЕСТВО ВВЕДЕННЫХ ВЕЛИЧИН, КОТОРЫЕ БОЛЬШЕ ИХ СРЕДНЕГО С АРИФМЕТИЧЕСКОГО 1НТЕОЕК 1НТЫЯТ(99) 1НТЕОЕН ЫЯТ ЬЕН, СООНТЕК, ЯОМ, АУЕНАЯЕ, НЕЯОт Т НЕЯОЬТ = 0 ЯОМ = 0 КЕАО ~, ЫЯТ ЬЕН 1Е ((1.1ЯТ 1.ЕН .ЯТ. О) .АНО.
(ЫЯТ ЬЕН .ЬТ. 100)) ТНЕН С СЧИТЫВАНИЕ ВХОДНЫХ ВЕЛИЧИН В МАССИВ И ВЫЧИСЛЕНИЕ ИХ СУММЫ ОО 10 СООНТЕН = 1, Ь1ЯТ ЬЕН НЕАО *, 1НТЫЯТ(СООНТЕК) ЯОМ = ЯПМ ь 1НТЫЯТ(СООНТЕН) Глава 2. Обзор основных языков программирования То СОВТТВОЕ С ВЫЧИСЛЕРИЕ оЕ"ЧЕ О АЧЕВАВЕ = " ".: Г 5. С ПОДСЧЕТ Ч11С..й В:.Т: Ч::Р " ' ='=':- ВО ОО 20 С ".:..ЕР =,:БТ ВЕВ-'. Т = ВЕВ." Т ЕЯЕ 20 СОВТ КОЕ С ВЫВОД РЕЗУЛЬТАТ .В РВТНТ С С В"'..' '.. КО О 'Е Сг,,Е РЕ В О Р В О *ВЕ"С1 ЕЕВЕ ЕКО ВТОР 2.4. Функциональное программирование: язык Е1$Р Первый язык функциоиадьногЬ программирования быд изобретен для поддержки языковых средств обработки списков.
потребность в которых возникла с появдениекг первых работ в области искусственного интеллекта. 2.4.1. Истоки работ в области искусственного интеллекта и обработка списков Интерес к искусственному интеллекту начал появляться в середине 1950-х годов в различных областях.
Потребность в нем ошушадась частично в лингвистике. частично в философии, а частично — в математике. Лингвисты сосредоточились на обработке текстов на естественном языке. Психологов интересовало моделирование способностей человека к запоминаншо и воспроизведению воспоминаний. а также другие фундаментальные процессы человеческого мышления. Математики изучали механизл1 протекания таких процессов размышления.
как доказательство теорем. Все эти исследования пришли к одному выволу: должны быть созданы некоторые методы. которые позволили бы колы пьютерам обрабатывать символьные данные, храняшиеся в виде связных списков. Отметим также, что в то время практически все вычисления производились с числовыми данными, хранящимися в виде массивов. Концепция обработки списков была разработана Алденом Ньюелом (Айеп Хеттей). Дж. Шоу (1. С. ВЬаьт) и Гербертом Саймоном (НегЬеп 5!топ), Впервые она была опубликована в классической работе.