Грамматика ложбана/18.16
Обратная польская нотация
cmavo | selma'o | значение |
---|---|---|
fu'a | FUhA | флаг обратной польской записи |
До сих пор условные обозначения Ложбана отображали довольно знакомые виды математического дискурса. Использование префиксных операторов могло показаться странным, когда они применялись к "+", но когда они применялись к "f", они выглядели как обычная запись функций. Теперь наступает резкий перелом. Обратная польская (ОП) нотация представляет собой нечто совершенно иное; даже математики нечасто используют ее. (Единственное распространенное применение ОП – это некоторые виды калькуляторов и реализация некоторых языков программирования).
В ОП записи оператор следует за операндами. (Польская нотация, в которой оператор предшествует операндам, – это другое название префиксной, mekso продуманой мысли такого рода, которое объясняется в разделе 18.6.) Количество операндов для каждого оператора всегда фиксировано. Никакие круглые скобки не требуются и не разрешаются. В Ложбане ОП нотация всегда явно обозначается fu'a в начале выражения; терминатор отсутствует. Вот простой пример:
18.110) li fu'a reboi ci su'i du li mu Число (ОП) два, три, плюс равно числу пять
Операнды – re и ci; оператор – su'i.
Вот более сложный пример:
18.111) li fu'a reboi ci pi'i voboi mu pi'i su'i du li rexa Число (ОП) (два, три, умножить), (четыри пять умножить) плюс равно числу два-шесть
Здесь операнды первого pi'i – re и ci; операнды второго pi'i – vo и mu (при необходимости вставляется boi), а операнды su'i – reboi ci pi'i, или 6, и voboi mu pi'i, или 20. Как видите, в мире обратной польской нотации легко заблудиться; с другой стороны, ее особенно легко понять механическому слушателю (который имеет глубокий умственный запас и не теряется).
Операндами оператора ОП могут быть любые допустимые операнды mekso, включая операнды со скобками mekso, которые могут содержать любой допустимый синтаксис, будь то ОП или что-то более традиционное.
В Ложбане операторы ОП всегда разбираются ровно с двумя операндами. А как быть с операторами, которые требуют только один операнд или более двух операндов? Простое решение дают нулевой операнд tu'o и нулевой оператор ge'a. Однооперандный оператор, например va'a, в обратной польской записи всегда выглядит как tu'o va'a. Оператор tu'o предоставляет второй операнд, который семантически игнорируется, но грамматически необходим. Аналогично, трехоперандная версия gei в обратной польской записи выглядит как ge'a gei , где ge'a эффективно объединяет 2-й и 3-й операнды в один операнд. Вот несколько примеров:
18.112) li fu'a ciboi muboi vu'u du li fu'a reboi tu'o va'a Число (ОП) (три, пять, минус) равно числу (ОП) два нуль смена-знака 3 - 5 = -2 18.113) li cinonoki'oki'o du li fu'a biboi ciboi panoboi ge'a gei Число три-ноль-ноль-разделитель-разделитель равно числу (ОП) 8, (3, 10, нуль-оп) научная-запись 300 000 000 = 3 × 108