Вы, наверное, задавались вопросом, как работали старые научные калькуляторы или почему некоторые языки программирования, кажется, записывают математические вычисления наоборот. Хотя нас с детства учили, что символы сложения и вычитания всегда располагаются посередине чисел, существует удивительный мир, называемый Обратная польская нотация Это противоречит всему, что нам известно.
Эта система не является современным изобретением; она берет свое начало в чистой логике и стремлении сделать алгебраические выражения более эффективными. В отличие от того, что мы обычно делаем, здесь порядок множителей меняет способ их записи, что позволяет нам... Забудьте о скобках совсем. и упростить загрузку данных в компьютерные системы.
Происхождение: От Яна Лукасевича к информатике
Всё началось в 1924 году благодаря блестящему польскому математику, логику и философу по имени... Ян ЛукасевичЭтот человек поставил перед собой задачу упростить пропозициональную логику и создал так называемую префиксную нотацию (или польскую нотацию), где оператор ставится перед операндами. Например, если мы хотим сложить 3 и 4, вместо того чтобы написать 3 + 4, мы напишем + 3 4.
Хотя поначалу это казалось лишь любопытной затеей для логиков и философов, и даже упоминалось Алонзо Чёрчем в его текстах по математической логике, в конечном итоге эта идея проникла в мир информатики. Фактически, так появился язык программирования. Синтаксис LISP основан на... Именно в этой префиксной модели демонстрируется, что то, что было создано для логики, в итоге стало жестоким инструментом для кода.
Что же такое обратная польская нотация?
Если в префиксной записи оператор располагается впереди, используется обратная польская запись (также известная как RPN). Обратная польская запись (или постфиксная запись) делает прямо противоположное: она размещает операторы после операндов. Таким образом, наша обычная сумма 2 и 5 становится 2 5 +.
Наиболее мощным преимуществом этой системы является то, что, пока операторы имеют фиксированное число операндов, Скобки можно убрать.Рассмотрим в качестве примера операцию 5 * (12 + 4). В традиционной системе счисления для принудительного сложения необходимы скобки; однако в обратной польской записи это просто записывается как 5 12 4 + *Для машины это гораздо чище и проще.
Золотой век Hewlett-Packard и калькуляторов.
В середине 60-х годов австралийский учёный Чарльз Леонард Хэмблин усовершенствовал алгоритмы для внедрения этой системы в электронные устройства. Именно тогда компания... Hewlett-Packard Они решили рискнуть и в 1968 году выпустили HP-9100A — настольный калькулятор, изменивший правила игры. Вскоре после этого появился легендарный HP-35Первый карманный научный калькулятор, благодаря которому обратная порядковая шкала (RPN) попала в руки тысяч инженеров и студентов в период с 1972 по 1975 год.
Использование этих машин требовало немного дополнительных умственных усилий для интерпретации результатов, но это было гораздо экономичнее с точки зрения количества импульсовВместо того чтобы писать длинное уравнение и нажимать кнопку «равно», вы вводите числа и операторы, которые обрабатываются мгновенно, что значительно ускоряет рабочий процесс.
Техническая реализация: трубы и переходы.
С точки зрения программирования, обратная польская запись (RPN) замечательна тем, что её чрезвычайно легко реализовать с помощью... структура данных, называемая стекомСистема сохраняет числа в стеке и, как только появляется оператор, извлекает последние введенные значения, выполняет вычисление и помещает результат обратно в стек.
Именно благодаря этой эффективности, хотя мы больше не видим так много физических калькуляторов с этой системой, обратная польская запись (RPN) продолжает существовать в основе современных технологий. Она широко используется в стеково-ориентированные языки а также в операционных системах, основанных на конвейерной обработке данных или потоковой передаче данных, классическим примером чего является его присутствие в среде Юникс.
Интересные факты о Лукасевиче и логике
Ян Лукасевич оставил нам не только этот способ записи математики. Он был пионером в области многозначной логики и модальной логики. Он даже занимался решением интеллектуальных задач, таких как... парадокс лжеца (фраза «это неверно»). Его решение было блестящим: он утверждал, что логические принципы применимы только к объектам, которые могут быть переменными значениями, а поскольку эта противоречивая фраза не может быть значением переменной, просто Это нелогично. и традиционный логический анализ к этому не применим.
Это увлекательное путешествие от ума польского логика до схем калькуляторов HP и ядра Unix показывает нам, как альтернативный способ организации информации может оптимизировать обработку данных. Устраняя необходимость в скобках и опираясь на использование стеков, обратная польская нотация остается невидимой, но фундаментальной опорой в архитектуре многих современных компьютерных систем.




