Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Описание [ править ]

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

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

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

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

Пример программы [ править ]

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

1 x = 0, z = 1 - x 2/2 + x 4/2 · 3 · 4 - x 6/2 · 3 · 4 · 5 · 6 + x 8/2 · 3 · 4 · 5 · 6 · 7 · 8 - x 10/2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10,
 ПЕЧАТЬ x , z . е = х - 1,05, CP 1, ОСТАНОВКА

Приложения [ править ]

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

Влияние на FORTRAN [ править ]

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

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

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

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

См. Также [ править ]

Заметки [ править ]

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

Ссылки [ править ]

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