668 Приложение. Обзоры языков
Хорошая сводка возможностей FORTRAN 90 дается в [21]. Книга [49] являет
ся хорошим обзором языка C. Ранние этапы развития FORTRAN и COBOL опи
саны в материалах конференции ACM по истории языков программирования, про
водившейся в 1978 г. [117], а развитие языка C рассматривалось на второй такой
же конференции, прошедшей в 1993 г. [4].
История Pascal изложена самим Виртом в [119]. Ясное и понятное описание
языка было опубликовано Иенсеном (Jensen) и Виртом в [59]; аннотированная
версия стандарта содержит несколько хороших советов по использованию языка
[70]. Дальнейшие критические замечания о Pascal можно найти в [116]. Сравне
нию языков C и Pascal посвящена статья [40].
На основе Pascal были разработаны языки системного программирования:
параллельный Pascal [22] и Modula [118]. Тем не менее в данной области ни тот,
ни другой не смогли выдержать конкуренции с языком C.
История и развитие языка Ada описывается в [120]. Книга [20] дает более пол
ное описание программирования на Ada, чем это было возможно здесь, тогда как
[58] описывает стандарт языка.
Разработка языка C++ на основе C описывается в [108]. Подробному описа
нию C++ посвящено несколько недавно вышедших книг [72, 88 и 109].
История Smalltalk описана в [63]. Более полное описание стандарта языка
Smalltalk80 дано в [44]. Альтернативная разработка объектноориентированного
языка на примере языка Eiffel представлена в работе Бертрана Мейера (Bertrand
Meyer) [82].
Язык LISP, к сожалению, не имеет стандартного описания. Исходная версия
языка дается в легкой для чтения книге Маккарти (McCatrhy) [80]. Диалект Scheme
рассматривается в [1]. Сommon LISP определен в книге Стила (Steele) [105], а в [45]
вы найдете хорошее введение в Common LISP. Обзор полной превратностей исто
рии этого языка приведен в [106].
Спецификация стандартного ML описана в [83], в то время как книга Ульмана
(Ullman) [115] представляет ясное описание языка, полезное при его изучении.
Создание компилятора AT&T Standard ML (который использовался для разра
ботки примеров в нашей книге) описано в [12].
Интерес к функциональным языкам программирования заметно возрос в кон
це 70х гг., после знаменитой лекции Бэкуса (Backus) по случаю получения пре
мии Тьюринга, в которой он критиковал «узкое место» компьютеров с архитекту
рой фон Неймана, отражающееся в традиционных языках программирования [15].
В качестве альтернативы языку ML Дэвидом Тернером (David Turner) был пред
ложен язык Miranda, свойства которого во многом были аналогичны свойствам
ML. Miranda — полностью функциональный язык, в то время как в ML допускает
ся присваивание.
Начальный этап развития логического программирования описан в [67], а ис
тория Prolog — в [30]. Использование языка рассматривается в [28 и 107].