Как работает простой калькулятор со скобками?

Я хочу узнать, как работают калькуляторы. Например, предположим, что у нас есть входные данные в инфиксной нотации, например:

1 + 2 x 10 - 2

Синтаксический анализатор должен соблюдать общепринятые математические правила. В приведенном выше примере это означает:

1 + (2 x 10) - 2 = 19 (а не 3 x 10 - 2 = 28)

А затем рассмотрим следующее:

1 + 2 x ((2 / 9) + 7) - 2

Включает ли это абстрактное синтаксическое дерево? Бинарное дерево? Как обеспечивается математически правильный порядок операций? Должен ли я использовать алгоритм маневровой станции, чтобы преобразовать это в постфиксную нотацию? И потом, как бы я разобрал его в постфиксной нотации? Зачем конвертировать в первую очередь?

Есть ли руководство, показывающее, как устроены эти относительно простые калькуляторы? Или может кто объяснит?

21
задан Proud Member 20 March 2012 в 12:08
поделиться