Описание синтаксиса языка ПАСКАЛЬ в виде СД



Источник :                                           Н. Вирт. Алгоритма + Структуры данных = Программы.

М.: Мир, 1985. с.406.

Приложение 4

 

Описание синтаксиса языка ADA в виде РБНФ

 

 

Источник:                                                     Н. Джехани. Язык АДА. М.: Мир, 1988. 552 с.

( Упрощенный вариант )

 

1 компилируемый_ модуль::=                                                                                        { спецификация_использования_3 } библиотечный_модуль_2

2 библиотечный_модуль ::=  тело_пакета_5 | тело_подпрограммы_21 

3 спецификация_использования ::= USE имя_пакета_4 {"," имя_пакета_4 }

4 имя_пакета ::= простое_имя_148

5 тело_пакета ::=                                                                                           PACKAGE BODY простое_имя_пакета_6 IS                                                     { раздел_описаний_7 }                                                                             [ BEGIN                                                                                                                         последовательность_операторов_89                                                    [ EXCEPTION                                                                                                                           обработчик_исключений_139                                                                   { обработчик_исключений_139 } ] ]                                                      END [ простое_имя_пакета_6 ]

6 простое_имя_пакета ::= простое_имя_148

7 раздел_описаний ::= { основной_элемент_описания_8 }                                   { дополнительный_элемент_описания_10 }

8 основной_элемент_описания ::= основное_описание_9                                   | спецификация_представления_77 | спецификация_использования_3

9 основное_описание ::= описание_числа_27 | описание_суб-константы_156 | описание_объекта_25 | описание_типа_29 | описание_подтипа_34 |           | описание_переименования_72 | описание_исключения_138

10 дополнительный_элемент_описания ::= тело_подпрограммы_21                    | тело_пакета_5 | тело_задачи_24 | описание_подпрограммы_15                                  | описание_пакета_13 | описание_задачи_22 | след_тела_11

11 след_тела ::= спецификация_подпрограммы_16 IS SEPARATE ";"                | PACKAGE BODY простое_имя_пакета_6 IS SEPARATE ";"                   | TASK BODY простое_имя_задачи_12 IS SEPARATE ";"

12 простое_имя_задачи ::= простое_имя_148

13 описание_пакета ::= спецификация_пакета_14 ";"

14 спецификация_пакета ::=                                                                              PACKAGE идентификатор_179 IS                                                                         { основной_элемент_описания_8 }                                                                      [ PRIVATE { основной_элемент_описания_8 } ]                               END [ простое_имя_пакета_6 ]

15 описание_подпрограммы ::= спецификация_подпрограммы_16 ";"

16 спецификация_подпрограммы ::=                                                                              PROCEDURE идентификатор_179 [раздел_формальных_параметров_18] | FUNCTION обозначение_17 [ раздел_формальных_параметров_18 ]       RETURN обозначение_типа_36

17 обозначение ::= идентификатор_179

18 раздел_формальных_параметров ::=                                                                       "(" спецификация_параметра_19 { ";" спецификация_параметра_19 } ")"

19 спецификация_параметра ::= список_идентификаторов_26 ":" вид_20         обозначение_типа_36 [ ":="  выражение_141 ]

20 вид ::= [ IN ] | IN OUT | OUT

21 тело_подпрограммы ::=                                                                                                спецификация_подпрограммы_16 IS                                                                  [ раздел_описаний_7 ]                                                                         BEGIN                                                                                                                           последовательность_операторов_89                                    [ EXCEPTION                                                                                                                             обработчик_исключений_139                                                                  { обработчик_исключений_139 } ]                                                         END [ обозначение_17 ] ";"

22 описание_задачи ::= спецификация_задачи_23 ";"

23 спецификация_задачи ::=                                                                                            TASK [ TYPE ] идентификатор_179 [ IS                                                                { описание_входа_88 }                                                                                             { спецификация_представления_77 }                                                 END [ простое_имя_задачи_12 ] ]

24 тело_задачи ::=                                                                                                               TASK BODY простое_имя_задачи_12 IS                                                                [ раздел_описаний_7 ]                                                                              BEGIN                                                                                                                           последовательность_операторов_89                                    [ EXCEPTION                                                                                                                             обработчик_исключений_139                                                                  { обработчик_исключений_139 } ] ]                                                 END [ простое_имя_задачи_12 ]

25 описание_объекта ::= список_идентификаторов_26 ":"[ CONSTANT ]           указание_подтипа_35 [ ":=" выражение_141 ]                                                 | список_идентификаторов_26 ":"[ CONSTANT ]                                                определение_ограниченного_типа_массива_55 [ ":=" выражение_141 ]

26 список_идентификаторов ::= идентификатор_179 {"," идентификатор_179 }

27 описание_числа ::= список_идентификаторов_26 ":" CONSTANT                    ":=" универсальное_статическое_выражение_28

28 универсальное_статическое_выражение ::= выражение_141

29 описание_типа ::= полное_описание_типа_30                                                       | неполное_описание_типа_31 | описание_личного_типа_32

30 полное_описание_типа ::= TYPE идентификатор_179                                       [ раздел_дискриминантов_63 ] IS определение_типа_33

31 неполное_описание_типа::=                                                                                       TYPE идентификатор_179 [ раздел_дискриминантов_63 ]

32 описание_личного_типа ::= TYPE идентификатор_179                                        [ раздел_дискриминантов_63 ] IS [ LIMITED ] PRIVATE

33 определение_типа ::= определение_перечислимого_типа_43                           | определение_целого_типа_46                                                               | определение_вещественного_типа_47                                                               | определение_типа_массива_52                                                                                     | определение_типа_записи_59                                                               | определение_ссылочного_типа_71                                                                    | определение_производного_типа_40

34 описание_подтипа ::= SUBTYPE идентификатор_179 IS                              указание_подтипа_35

35 указание_подтипа ::= обозначение_типа_36 [ ограничение_39 ]

36 обозначение_типа ::= имя_типа_37 | имя_подтипа_38

37 имя_типа ::= идентификатор_179

38 имя_подтипа ::= идентификатор_179

39 ограничение ::= ограничение_диапазона_41                                                          | ограничение_плавающего_типа_48                                                   | ограничение_фиксированного_типа_50                                                           | ограничение_индекса_57                                                                                 | ограничение_дискриминанта_65

40 определение_производного_типа ::= NEW указание_подтипа_35

41 ограничение_диапазона ::= RANGE диапазон_42

42 диапазон ::= простое_выражение_143 ".." простое_выражение_143

43 определение_перечислимого_типа ::=                                                                     ( спецификация_литерала_перечисления_44                                                { "," спецификация_литерала_перечисления_44 } )

44 спецификация_литерала_перечисления ::= литерал_перечисления_45

45 литерал_перечисления ::= идентификатор_179 | символьный_литерал_184

46 определение_целого_типа ::= ограничение_диапазона_41

47 определение_вещественного_типа ::= ограничение_плавающего_типа_48 | ограничение_фиксированного_типа_50

48 ограничение_плавающего_типа ::=                                                                                         определение_точности_плавающего_типа_49                                                         [ ограничение_диапазона_41 ]

49 определение_точности_плавающего_типа ::=                                                      DIGITS статическое_простое_выражение_168

50 ограничение_фиксированного_типа ::=                                                                  определение_точности_фиксиров_типа_51 [ограничение_диапазона_41]

51 определение_точности_фиксиров_типа ::=                                            DELTA статическое_простое_выражение_168

52 определение_типа_массива ::=                                                                                  определение_неограниченного_типа_массива_53                                                  | определение_ограниченного_типа_массива_55

53 определение_неограниченного_типа_массива ::=                                                              ARRAY "(" определение_подтипа_индекса_56                                                                         { "," определение_подтипа_индекса_56 } ")" OF                                          указание_подтипа_компоненты_54

54 указание_подтипа_компоненты ::= указание_подтипа_35

55 определение_ограниченного_типа_массива ::=                                                   ARRAY ограничение_индекса_57 OF указание_подтипа_компоненты_54

56 определение_подтипа_индекса ::= обозначение_типа_36 RANGE "< >"

57 ограничение_индекса ::=                                                                                              "(" дискретный_диапазон_58 { , дискретный_диапазон_58 } ")"

58 дискретный_диапазон ::= указание_подтипа_35 | диапазон_42

59 определение_типа_записи ::=                                                                                     RECORD список_компонент_60 END RECORD

60 список_компонент ::=                                                                                                    описание_компоненты_61 { описание_компоненты_61 }                                       | { описание_компоненты_61 } раздел_вариантов_67 | NULL

61 описание_компоненты ::= список_идентификаторов_26 ":"                               определение_подтипа_компоненты_62 [ ":=" выражение_141 ]

62 определение_подтипа_компоненты ::= указание_подтипа_35

63 раздел_дискриминантов ::=          "(" спецификация_дискриминанта_64                              { ";" спецификация_дискриминанта_64} ")"

64 спецификация_дискриминанта := список_идентификаторов_26 ":"                 обозначение_типа_36 [ ":=" выражение_141 ]

65 ограничение_дискриминанта ::= "(" сопоставление_дискриминанта_66       { "," сопоставление_дискриминанта_66 } ")"

66 сопоставление_дискриминанта ::= [ простое_имя_дискриминанта_76                         { "|" простое_имя_дискриминанта_76 } "=>" ] выражение_141

67 раздел_вариантов ::=                                                                                                    CASE простое_имя_дискриминанта_76 IS                                                               вариант_68 { вариант_68 }                                                                       END CASE ";"

68 вариант ::= WHEN выбор_69 { "|" выбор_69 } "=>" список_компонент_60

69 выбор ::= простое_выражение_143  | дискретный_диапазон_58                    | OTHERS | простое_имя_компоненты_70

70 простое_имя_компоненты ::= простое_имя_148

71 определение_ссылочного_типа ::= ACCESS указание_подтипа_35

72 описание_переименования ::=                                                                                    идентификатор_179 ":" обозначение_типа_36 RENAMES имя_объекта";" | идентификатор_179 ":" EXCEPTION RENAMES имя_исключения_74";"       | PACKAGE идентификатор_179 RENAMES имя_пакета_4";"

| спецификация_подпрограммы_16 RENAMES                                                                                                                имя_подпрограммы_или_входа_73 ";"

73 имя_подпрограммы_или_входа ::= простое_имя_148

74 имя_исключения ::= простое_имя_148

75 имя_объекта ::= простое_имя_148

76 простое_имя_дискриминанта ::= простое_имя_148

77 спецификация_представления ::=

спецификация_представления_типа_78 | спецификация_адреса_87

78 спецификация_представления_типа ::= спецификация_длины_79                   | спецификация_представления_перечисления_80                                                       | спецификация_представления_записи_82

79 спецификация_длины ::= FOR атрибут_154 USE простое_выражение_143

80 спецификация_представления_перечисления ::=                                                 FOR простое_имя_типа_81 USE агрегат_157

81 простое_имя_типа ::= простое_имя_148

82 спецификация_представления_записи ::=                                                               FOR простое_имя_типа_81  USE                                                            RECORD [ спецификация_выравнивания_83 ]                                                                   { спецификация_компоненты_84 }                                                      END RECORD

83 спецификация_выравнивания ::=                                                                               AT MOD статическое_простое_выражение_168

84 спецификация_компоненты ::= имя_компоненты_85 AT                               статическое_простое_выражение_168 RANGE статический_диапазон_86

85 имя_компоненты ::= простое_имя_148

86 статический_диапазон ::= диапазон_42

87 спецификация_адреса ::=                                                                                             FOR простое_имя_148 USE AT простое_выражение_143

88 описание_входа ::= ENTRY идентификатор_179                                                    ["(" дискретный_диапазон_58 ")"] [ раздел_формальных_параметров_18 ]

89 последовательность_операторов ::= оператор_90 { оператор_90 }

90 оператор ::= {метка_93 } простой_оператор_91                                                      | { метка_93 } составной_оператор_92

91 простой_оператор ::= пустой_оператор_95 | оператор_присваивания_96    | оператор_вызова_процедуры_114 | оператор_перехода_112              | оператор_выхода_109  | оператор_возврата_111 | оператор_задержки_126            | оператор_вызова_входа_121 | оператор_прекращения_136                            | оператор_возбуждения_100   

92 составной_оператор ::= условный_оператор_98 | оператор_выбора_101      | оператор_цикла_102 | оператор_блока_107 | оператор_принятия_123   | оператор_отбора_127

93 метка ::= "<<" простое_имя_метки_94 ">>"

94 простое_имя_метки ::= простое_имя_148

95 пустой_оператор ::= NULL

96 оператор_присваивания ::= имя_переменной_97 := выражение_141 ;

97 имя_переменной ::= имя_147

98 условный_оператор ::=                                                                                                 IF условие_99 THEN                                                                                                 последовательность_операторов_89                                               {ELSIF условие_99 THEN                                                                                                   последовательность_операторов_89 }                                 [ ELSE последовательность_операторов_89 ]                                                   END IF ";"

99 условие ::= выражение_141

100 оператор_возбуждения ::= RAISE [ имя_исключения_74 ] ";"

101 оператор_выбора ::=                                                                                                     CASE выражение_141 IS                                                                                          альтернатива_оператора_выбора        _102                                                                   { альтернатива_оператора_выбора_102 }                                                          END CASE ";"

102 альтернатива_оператора_выбора ::=       WHEN выбор_69 { "|" выбор_69 } "=>"   последовательность_операторов_89

103 оператор_цикла ::=                                                                                                                        [ простое_имя_цикла_104 ":" ] [ схема_итерации_105 ] LOOP                                 последовательность_операторов_89                                                    END LOOP [ простое_имя_цикла_104 ] ";"

104 простое_имя_цикла ::= простое_имя_148

105 схема_итерации ::=                                                                                        WHILE условие_99 | FOR спецификация_параметра_цикла_106

106 спецификация_параметра_цикла ::=                                                                                        идентификатор_179 IN [ REVERSE] дискретный_диапазон_58

107 оператор_блока ::=                                                                                                        [ простое_имя_блока_108 ":" ] [ DECLARE раздел_описаний_7 ]              BEGIN                                                                                                                                          последовательность_операторов_89                                              [ EXCEPTION                                                                                                              обработчик_исключений_139                                                                                 { обработчик_исключений_139 } ]                                                END [ простое_имя_блока_108 ] ";"

108 простое_имя_блока ::= простое_имя_148

109 оператор_выхода ::= EXIT [ имя_цикла_110 ] [ WHEN условие_99 ] ";"

110 имя_цикла ::= простое_имя_148

111 оператор_возврата ::= RETURN [ выражение_141 ] ";"

112 оператор_перехода ::= GOTO имя_метки_113 ";"

113 имя_метки ::= простое_имя_148

114 оператор_вызова_процедуры ::=                                                                                              имя_процедуры_115 [ раздел_фактических_параметров_116 ] ";"

115 имя_процедуры ::= простое_имя_148

116 раздел_фактических_параметров ::= "("сопоставление_параметров_117      { "," сопоставление_параметров_117 } ")"

117 сопоставление_параметров ::=                                                                                 [ формальный_параметр_118 "=>" ] фактический_параметр_120

118 формальный_параметр ::= простое_имя_параметра_119

119 простое_имя_параметра ::= простое_имя_148

120 фактический_параметр ::= выражение_141 | имя_переменной _97                  | обозначение_типа_36 "(" имя_переменной_97 ")"

121 оператор_вызова_входа ::=                                                                                        имя_входа_122 [ раздел_фактических_параметров_116 ] ";"

122 имя_входа ::= простое_имя_148

123 оператор_принятия ::=                                                                                                  ACCEPT простое_имя_148  [ "(" индекс_входа_125 ")" ]                                                        [ раздел_формальных_параметров_18 ]                                              [ DO                                                                                                                               последовательность_операторов_89                                    END [ простое_имя_входа_124 ] ] ";"

124 простое_имя_входа ::= простое_имя_148

125 индекс_входа ::= выражение_141

126 оператор_задержки ::= DELAY простое_выражение_143 ";"

127 оператор_отбора ::= отбор_с_ожиданием_128                                                      | условный вызов_входа_134 | временной_вызов_входа_135

128 отбор_с_ожиданием ::=                                                                                                SELECT                                                                                                                        альтернатива_отбора_129                                                                                       { OR                                                                                                                                альтернатива_отбора_129 }                                                     [ ELSE последовательность_операторов_89 ]                                                   END SELECT ";"

129 альтернатива_отбора ::=                                                                                             [ WHEN условие_99 "=>" ] альтернатива_отбора_с_ожиданием_130

130 альтернатива_отбора_с_ожиданием ::= альтернатива_принятия_131                        | альтернатива_задержки_132 | альтернатива_завершения_133

131 альтернатива_принятия ::=                                                                                                         оператор_принятия_123 [ последовательность_операторов_89 ]

132 альтернатива_задержки ::=                                                                                                         оператор_задержки_126 [ последовательность_операторов_89 ]

133 альтернатива_завершения ::= TERMINATE ";"

134 условный_вызов_входа ::=                                                                                                          SELECT                                                                                                                         оператор_вызова_входа_121                                                                                  [ последовательность_операторов_89 ]                                            ELSE последовательность_операторов_89                                        END SELECT ";"

135 временной_вызов_входа ::=                                                                                        SELECT                                                                                                                        оператор_вызова_входа_121                                                                                  [ последовательность_операторов_89 ]                                            OR                                                                                                                                  альтернатива_задержки_132                                                                   END SELECT ";"

136 оператор_прекращения ::=ABORT имя_задачи_137 {"," имя_задачи_137 }";"

137 имя_задачи ::= простое_имя_148

138 описание_исключения ::= список_идентификаторов_26 ":"EXCEPTION";"

139 обработчик_исключений ::= WHEN выбор_исключения_140                             { "|" выбор_исключения_140 } "=>" последовательность_операторов_89

140 выбор_исключения ::= имя_исключения_74 | OTHERS

141 выражение ::= отношение_142 { AND отношение_142 }                                     | отношение_142 { AND THEN отношение_142 }                                                | отношение_142 { OR отношение_142 }                                                                | отношение_142 { OR ELSE отношение_142 }                                                     | отношение_142 { XOR отношение_142 }

142 отношение ::= простое_выражение_143 [ операция_отношения_161                простое_выражение_143 ]                                                                          | простое_выражение_143 [ NOT ] IN диапазон_42                                          | простое_выражение_143 [ NOT ] IN обозначение_типа_36

143 простое_выражение ::= [ унарная_аддитивная_операция_163] слагаемое_144 { бинарная_аддитивная_операция_162 слагаемое_144 }

144 слагаемое ::=                                                                                                                    множитель_145 {мультипликативная_операция_164 множитель_145 }

145 множитель ::= первичное_146 [ "**" первичное_146 ]                                          | ABS первичное_146 | NOT первичное_146

146 первичное ::= числовой_литерал_169 | NULL | агрегат_157                               | строковый_литерал_185 | имя_147 | генератор_166 | вызов_функции_159          | преобразование_типа_165 | квалифицированное_выражение_167                           | " (" выражение_141 ")"

147 имя ::= простое_имя_148 | индексированная_компонента_149  | отрезок_150    | именуемая_компонента _151 | символьный_литерал_184 | атрибут_154

148 простое_имя ::= идентификатор_179

149 индексированная_компонента ::=                                                                             префикс_152 "(" выражение_141 {"," выражение_141 } ")"

150 отрезок ::= префикс_152 "(" дискретный_диапазон_58 ")"

151 именуемая_компонента ::= префикс_152 "." постфикс_153

152 префикс ::= имя_147 | вызов_функции_159

153 постфикс ::= простое_имя_148 | символьный_литерал_184 | ALL

154 атрибут ::= префикс_152 "" обозначение_атрибута_155

155 обозначение_атрибута ::=                                                                                           простое_имя_148 [ универсальное_статическое_выражение_28 ]

156 описание_суб-константы ::=                                                                                      список_идентификаторов_26 ":" CONSTANT обозначение_типа_36

157 агрегат ::=                                                                                                                                         "("сопоставление_компонент_158 {"," сопоставление_компонент_158 }")"

158 сопоставление_компонент ::=                                                                                     [ выбор_69  { “|” выбор_69 } "=>" ] выражение_141

159 вызов_функции ::=                                                                           имя_функции_160 [ раздел_фактических_параметров_116 ]

160 имя_функции ::= простое_имя_148

161 операция_отношения ::= "="  |  "/="  |  "<"  |  "<="  |  ">"  |  ">="

162 бинарная_аддитивная_операция ::= "+" | ""  | "&"

163 унарная_аддитивная_операция ::= "+" | ""

164 мультипликативная_операция ::= "*" | "/"  | MOD | REM

165 преобразование_типа ::= обозначение_типа_36 "(" выражение_141 ")"

166 генератор = NEW указание_подтипа_35                                                                   | NEW квалифицированное_выражение_167

167 квалифицированное_выражение =                                                                            обозначение_типа_36 "" "(" выражение_141 ")"                                                 | обозначение_типа_36 "" агрегат_157

168 статическое_простое_выражение ::= выражение_141

169 числовой_литерал ::=                                                                                                    десятичный литерал_170  | литерал_по_основанию_173

170 десятичный литерал ::= целое_171 ["." целое_171 ] порядок_172

171 целое ::= цифра_178 { [ подчеркивание_186 ] цифра_178 }

172 порядок ::= "E" [ "+" ] целое_171 | "E"  "–" целое_171

173 литерал_по_основанию ::=           основание_174 "#" целое_по_основанию_175                      [ "." целое_по_основанию_175 ] [ "#" порядок_172 ]

174 основание ::= целое_171                                                  // в интервале 2 - 16

175 целое_по_основанию ::= расширенная цифра_176                                                { [ подчеркивание_186 ] расширенная_цифра_176 }

176 расширенная цифра ::= цифра_178  | спец_буква_177

177 спец_буква = "A" | "B" | "C" | "D" | "E" | "F"

178 цифра = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |"8" | "9"

179 идентификатор ::= буква_180 { [ подчеркивание_186 ]буква_или_цифра_180 }

180 буква_или_цифра ::= буква_180  | цифра_178

181 буква ::= прописная_буква_182 | строчная_буква_183

182 прописная_буква ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" |"I" | "J" | "K"      | "L" | "M" | "N" | "O" | "P" |"Q" | "R" | "S" | "T" | "V" | "W"| "X" | "Y"       | "Z"

183 строчная_буква ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" |"i" | "j" | "k" | "l"         | "m" | "n"| "o" | "p" |"q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" |"y" | "z"

184 символьный_литерал ::= "" графический_символ_187 ""

185 строковый_литерал ::= "" { графический_символ_187 } ""

186 подчеркивание ::= "_"

187 графический_символ ::= любой_представимый_на_дисплее_символ

 

___________________

Приложение 5

Грамматика простого языка программи­рования

Пример программы :

           program PRIM ;

                                   integer S , a[10], i ;  real S1;

                                          S = 0; i = 1;

                          LS: S = S + a[ i ] ;

                                          i = i + 1;  if i < 11 then goto LS ;

                                          S1 = 0.25 * S

                            end .                                                                             

1 <PRG> ® program ID ; <SO> <SOP> end .
2 <SO> ® <O> ; <PSO>
3 4 <PSO> ® <O> ; <PSO>            ® e
5 <O>   ® <T> <SP>
6 7 <T>   ® integer            ® real
8 <SP> ® <P> <PSP>
9 10 <PSP> ® , <P> <PSP>            ® e
11 <P>    ® ID <PP>
12 13 <PP> ® [ <SIG> ]            ® e
14 <SIG> ® CN <PSG>
15 16 <PSG> ® , CN <PSG>            ® e
17 <SOP> ® <OP> <PSOP>
18 19 <PSOP> ® ; <OP> <PSOP>            ® e
20 21 <OP> ® ID : <NOP>            ® <NOP>
22 23 24 <NOP> ® if <US> then <NOP> <ELE>            ® <PE> = <W>            ® goto ID
24 25 <ELE> ® else <NOP>            ® e
26 <US> ® <W> <ZS> <W>
27 28 29 <ZS> ® >            ® <            ® =
30 31 <W>  ® <S>            ® <W> + <S>
32 33 <S>    ® <M>            ® <S> * <M>
34 35 36 <M>  ® <PE>            ® CN            ® ( <W> )
37 <PE> ® ID <PPE>
38 39 <PPE> ® [ <SIW> ]            ® e
40 <SIW> ® <W> <PSW>
41 42 <PSW> ® , <W> <PSW>            ® e

Обозначения в грамматике:

<SO>    – список описаний

<O>       – описание

<T>       – тип

<SP>     – список переменных

<P>       – описываемая переменная

<SIG>   – список индексных границ

<SOP>  – список операторов

<OP>    – оператор общего вида

<NOP> – непомеченный оператор

<ELE>  – else-ветвь или пусто ( e ),

<US>    – условие

<ZS>     – знак сравнения

<W>      – выражение

<S>       – слагаемое

<M>      – множитель

<PE>     – переменная (простая или с индексами)

<SIW>  – список индексных выражений

           *) если необходимо определить продолжение некоторого элемента, то добавляется буква “P”, например, <SO> – <PSO> и т.п.

Приложение 6


Дата добавления: 2018-04-05; просмотров: 320; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!