Читать курсовая по Отсутствует: "Синтаксический анализатор" Страница 2
- 1
- 2
- 3
- 4
- . . .
- последняя »
или процесса обработки данных.
Для описания синтаксиса языков программирования наибольшее распространение получила форма Бэкуса-Наура и ее различные модификации
Форма Бэкуса-Наура
Форма Бэкуса-Наура (БНФ) представляет собой очень естественный способ описания синтаксиса. В БНФ каждое определяемое понятие - это металингвистическая переменная. Значением металингвистической переменной может быть любая конструкция из некоторого фиксированного для этого понятия набора конструкций. Каждая металингвистическая форма определяет одну металингвистическую переменную и состоит из двух частей: левой и правой. В левой части записывается определяемая металингвистическая переменная, которая заключается в угловые скобки '' (предполагается, что эти скобки являются метасимволами и не принадлежат алфавиту определяемого языка), например: , , . В правой части формы записываются все варианты определения конструкции, задаваемой этой формой. Каждый вариант представляет собой цепочку основных символов определяемого языка и металингвистических переменных. Варианты разделяются металингвистической связкой '|', имеющей смысл «или». Левая и правая части формы разделяются метасимволом ':=', означающим «по определению есть».
На практике для описания синтаксиса языков программирования часто используют расширения БНФ, позволяющие более естественно представлять альтернативные, необязательные и повторяющиеся части металингвистических формул. Так, одно из расширений БНФ (РБНФ) разрешает использовать следующие упрощения:
1. необязательные элементы синтаксической конструкции заключаются в квадратные скобки ' [' и ']';
2. альтернативные варианты могут в случае необходимости заключаться в квадратные скобки для образования многовариантного выбора;
. элементы синтаксической конструкции, повторяющиеся нуль и более раз, заключаются в фигурные скобки ' {' и '}'.
Форма Бэкуса-Наура для задания :=[program ] {;}.
:=|||
:= label {,}
:=|
:= type {;}
:==
:=
:=||
:=integer|char|
:=
:=string
:=..
:= const {;}
:==
:=
:=|
:= var {;}
:= :
:= {,}
:=
:= begin end
:={;}
:= [метка:]
:= |||||||
:=:=
:= read ()
:= write ()
:={,}
:= goto
:=if then [else ]
:= repeat until
:=
:= ||||||
:=length ()
:=concat (,)
:=replace (,,)
:=pos (,)
:=StrChar (,)
:= copy (,,)
:= Same (,)
:=
:=
:=
:=ε
- 1
- 2
- 3
- 4
- . . .
- последняя »
Похожие работы
Интересная статья: Основы написания курсовой работы

(Назад)
(Cкачать работу)