Формальные языки

Грамматики для арифметических выражений


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

          Г1. 23 :  R = { <H>

          ® <I><R>,

            <R> ® <W><I><R>,


            <R> ® $,


            <W> ® +,


            <W> ® * }.

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

             

                Г1. 24 :  R = { <G>

                ® <H><Q>,

                  <G> ® (<H>)<Q>,


                  <Q> ® <W><G>,


                  <Q> ® $ }.

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

                   

                      Г1. 25 :  R = { <E>

                      ® <G><P>,

                        <E> ® (<E>)<P>,


                        <P> ® <W><E>,


                        <P> ® $ }.

                       


                     

                  • Пред.Страница  След.Страница   Раздел   Содержание



                  • Содержание раздела