Система Ланинга и Цирлера - Laning and Zierler system

В Система Ланинга и Цирлера (иногда называемый «Джорджем» пользователями) был одним из первых операционных алгебраических компиляторы, то есть система, способная принимать математические формулы в алгебраическая запись и производя эквивалентные Машинный код (термин «компилятор» еще не был изобретен, и система называлась « толковательный программа »). Реализована в 1952 г.[1] для Массачусетский технологический институт ВИХРЬ от Дж. Холкомб Лэнинг и Нил Цирлер. Ему предшествует UNIVAC А-2, IBM Speedcoding и ряд систем, которые были предложены, но не реализованы.

Описание

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

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

Система приняла ввод перфолента произведенный Фриден Флексоуритер. В набор символов в использовании на установке Whirlwind включены "верхний регистр "(верхний индекс) цифр и дефис, которые использовались для обозначения индексов массива, кодов функций и (целых) показателей. Как и другие обозначения программирования того времени, система принимала только однобуквенные имена переменных и умножение указывалось сопоставлением операндов. Выпуклая точка была доступна для явного указания на умножение (символ был создан путем заполнения нижней половины двоеточия!) Система также включала поддержку решения линейных дифференциальных уравнений с помощью Метод Рунге – Кутты.

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

Пример программы

Следующий пример, взятый со страницы 11 руководства к системе, оценивает для с использованием Серия Тейлор расширение. Реализация не очень эффективна, и система уже включает в своей библиотеке подпрограмм, но этот пример дает представление о синтаксисе системы. Обратите внимание, что деление в системе оценивается после умножения:

 1 Икс = 0,   z = 1 - Икс2/2 + Икс4/2·3·4 - Икс6/2·3·4·5·6     + Икс8/2·3·4·5·6·7·8 - Икс10/2·3·4·5·6·7·8·9·10,
   РАСПЕЧАТАТЬ Икс, z.   е = Икс - 1.05, CP 1, СТОП

Приложения

Для системы написано несколько приложений. Одно задокументированное приложение, созданное самими Ланингом и Цирлером, связано с проблемой в области аэронавтики. Задача требовала для выражения семи систем дифференциальных уравнений и была передана в Вихрь, потому что он был слишком велик для Массачусетского технологического института. Дифференциальный анализатор обрабатывать. Авторы, воспользовавшись особенностью своей системы программирования Рунге-Кутта, создали программу из 97 операторов за два с половиной часа. Программа успешно запустилась с первого раза.

Влияние на FORTRAN

Некоторые источники утверждают, что система Ланинга и Цирлера послужила источником вдохновения для FORTRAN. Джон Бэкус сам признал, что внес свой вклад в это заблуждение:

Влияние системы Ланинга и Цирлера на развитие FORTRAN - это вопрос, который был запутан множеством искажений с моей стороны. В течение многих лет я считал, что идея использования алгебраической нотации в FORTRAN пришла к нам после просмотра демонстрации системы Ланинга и Цирлера в Массачусетском технологическом институте. (Бэкус) [1]

Изучив документацию того времени, Бэкус узнал, что проект FORTRAN «идет полным ходом», когда он и его команда получили возможность увидеть работы Лэнинга и Цирлера:

[Мы] мы уже рассматривали алгебраический ввод, значительно более сложный, чем система Ланинга и Цирлера, когда мы впервые услышали об их новаторской работе ... [Трудно сказать, какие новые идеи мы получили, если таковые вообще появились, увидев демонстрация своей системы. (Бэкус, op cit)

Смотрите также

Заметки

  1. ^ Дж. В. Бакус, История FORTRAN I, II и III. Труды Первой конференции ACM SIGPLAN по истории языков программирования

использованная литература

  • Бэкус, Дж. У. История FORTRAN I, II и III. Труды Первой конференции ACM SIGPLAN по истории языков программирования (Доступно онлайн ).
  • Лэнинг, Дж. и Н. Цирлер. Программа для перевода математических уравнений для Whirlwind I. Инженерный меморандум E-364, Лаборатория приборов, Массачусетский технологический институт. (Имеется в наличии онлайн ).
  • Саммет, Жан Э., "Языки программирования: история и основы" Прентис-Холл, 1969
  • «Раннее развитие языков программирования» в История вычислений в двадцатом веке, Нью-Йорк, Academic Press, 1980. ISBN  0-12-491650-3
Конкретный