Главная arrow Средства разработки
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Введение Печать

Это изображение «Вавилонской башни» компьютерного века украшало суперобложку книги Джин Сэммит «Языки программирования», в которой содержался обзор множества не совместимых друг с другом компьютерных языков, существовавших к моменту выхода книги в свет (1969). Для целого поколения специалистов по информатике эта иллюстрация символизировала неэффективность сопровождения множества языков, каждый из которых нуждался в собственном трансляторе и специально обученных программистах.
 
В самом начале 60-х годов мир компьютерных языков казался очень простым. В программировании господствовали три языка: Фортран и Кобол владели американской наукой и бизнесом, Алгол-60 был распространен в Европе.

Новейший язык PL/I претендовал на то, чтобы, соединив в себе лучшие черты этих трех языков, стать универсальным языковым средством. Но при внешнем спокойствии шла напряженная работа. В колледжах и исследовательских лабораториях фирм, в работах отдельных исследователей и дискуссиях в авторитетных комитетах зарождались новые языки, предназначенные для программирования современных компьютеров.

К концу 60-х годов языки начали размножаться в таком темпе, что, по словам одного специалиста по информатике, разработчику «следовало знать не менее десятка языков, чтобы заслужить общественное признание».

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

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

Эта нелепая ситуация была обыграна в 1969 г., когда Джин Сэммит опубликовала книгу «Языки программирования» - первый сравнительный исторический обзор достижений в этой области.

На суперобложке и лицевом форзаце книги красовалась небрежно построенная башня, спирально устремляющаяся в небо, на которой были начертаны названия 117 различных языков. На самой вершине башни, как бы венчая все остальное, было написано BABEL (Вавилон - символ смешения языков).

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

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

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

Некоторые из этих языков в свою очередь породили новые. Например, в 60-х годах было создано два языка, Movie и Scanner, которые способствовали внедрению компьютера в мультипликацию. От этой пары произошла система БАГСИС (BUGSYS, Bug System система «жук»), позволявшая перемещать по экрану компьютера фигурки, похожие на жуков.

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

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

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

С 50-х годов специалисты по искусственному интеллекту искали язык, пригодный для манипулирования понятиями, выраженными словами и фразами на естественном языке. Первым результатом этих поисков явилось семейство языков под названием ИПЛ (IPL, от Information Processing Language - языки обработки информации). Он было создано пионером в области искусственного интеллекта Алленом Ньюэллом (Allen Newell) и его сотрудниками.

Вначале работа велась в Rand Corporation, а затем в Технологическом институте Карнеги (позднее Карнеги-Меллона) в Питтсбурге, бастионе исследований по искусственному интеллекту.

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

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

Благодаря настойчивости Маккарти в МТИ был начат ряд проектов разделения времени, и несколько лет спустя два профессора Дартмутского колледжа, Джон Кемени и Томас Курц позаимствовали эту идею для своего вводного курса по информатике.

В дальнейшем для обучения начаткам программирования на своей новой системе разделения времени Кемени и Курц написали простой, легкий в изучении язык, моделируемый на Фортране.

Они назвали его Бейсик (BASIC, от Beginner's All-purpose Symbolic Instruction Code - универсальный код символических инструкций для начинающих). Бейсику (богатому на диалекты) было суждено завоевать невероятную популярность и стать основным языком микрокомпьютерной революции, начавшейся в. 70-х годах.