Конструирование трансляторов для языков программирования высокого уровня. Ярушкина Н.Г. - 23 стр.

UptoLike

Составители: 

- 24 -
Продолжение табл.3.1
+----------------------------------------------------------+
¦ ¦ СГ ¦ КСГ ¦
+------------+-------------------+-------------------------¦
¦ 4) И ¦ +-----+ +-----+ ¦ <>::=<><>...<> ¦
¦ ¦ -¦ +>¦ +->¦ ¦
¦ ¦ +-----+ +-----+ ¦ ¦
+------------+-------------------+-------------------------¦
¦ ¦ -->-------------->¦ ¦
¦ ¦ ^ +-----+ ¦ ¦ ¦
¦ 5) повтор ¦ +-¦ +-+ ¦ <>::=N[<>...<>] ¦
¦ ¦ +-----+ ¦ ¦
+----------------------------------------------------------+
Рассмотрим простую грамматику:
<имя>::=<буква>5[<символ>]
<символ>::=<буква>¦<цифра>
<буква>::=A..Z
<цифра>::=0..9
Синтаксический граф для нее будет иметь вид:
<имя>
¦ +-------+ +---+
+----¦ буква +------¦ 5 +-------->
+-------+ ¦ +---+ ¦
¦ +-------+ ¦
+-¦символ +--+
+-------+
+-------+ +---+ +-------+ +--- A -->-+
¦ буква +->-->¦ A ¦ ¦символ +->-¦ . Z -->-+->
+-------+ ¦ +---+ +-------+ ¦ . 0 -->-¦
+-> ... +--- 9 -->-+
¦ +---+
+->¦ Z ¦
+---+
Синтаксические графы служат как средством задания синтаксиса
входного языка, так и структуры транслятора этого языка. Сущест-
вует взаимное соответствие элементов синтаксических графов и эле-
ментов языков программирования.