Организация и функционирование компьютеров


БНФ - метаязык описания синтаксиса языков программирования


По мере создания все новых и новых языков программирования в связи с проблемой программирования трансляторов появилась острая необходи­мость в формализации описания синтаксиса языка. Язык, используемый для формализации синтаксиса другого языка, называется метаязыком. В насто­ящее время наиболее употребительным для описания синтаксиса языков программирования является метаязык форм Бэкуса?Наура (сокращенно БНФ). Идея этого метаязыка заключается в структурировании понятий исходного языка программирования и определения более сложных понятий через более простые. Для этого в языке БНФ приняты следующие соглашения.

Любое понятие Паскаля изображается своим наименованием, заключенным в угловые скобки: <...> . Предложение БНФ представляет собой одно определение некоторого понятия Паскаля через другие в форме: понятие Паскаля, после которого следует знак  “::=“, после которого записывается определение понятия. В составе определения могут использоваться другие понятия языка программирования (в нашем случае Паскаля), символы алфавита (терминальные символы) и ключевые слова языка программирования, а также специальные символы языка БНФ, которые имеют определенный смысл. В качестве таких символов используются вертикальная черта и круглые, квадратные и фигурные скобки. Их использование подчиняется следующим правилам:

  • запись <понятие1> ::= <понятие2>  <понятие3>

    и т.д. означает, что первое понятие в Паскале представляет собой последовательную запись остальных понятий;

  • запись <понятие1> ::= <понятие2> | <понятие3> | и т.д. означает, что первое понятие совпадает с одним из остальных понятий;
  • круглые скобки используются для группировки сложных конструкций БНФ внутри простых;
  • часть определения, заключенная в квадратные скобки, не обязательна;
  • часть определения, заключенная в фигурные скобки, может быть повторена произвольное число раз (в том числе ни одного раза);
  • вместо сложного понятия Паскаля в формы БНФ могут входить терминальные символы и ключевые слова; для того, чтобы отличать их от символов БНФ (например, скобок) условимся, что мы будем выделять символы Паскаля и ключевые слова жирным курсивом .



  • - Начало -  - Назад -  - Вперед -