ВУЗ:
Составители:
7
then | else | while | do | true | false
<разделитель> ::= ( | ) | , | ; | : | := | . | { | } |+ | - | * | / | ∨ | ∧ | ¬ | = | < | >
<программа> ::=
program <описание> ; <тело>.
<описание> ::=
var <идентификатор> {, <идентификатор>}: (int | bool)
<тело> ::=
begin {<оператор>; } end
<оператор> ::= <присваивания> | <условный> | <цикла> | <составной> |
<ввода> | <вывода>
<присваивания> ::= <идентификатор> := <выражение>
<условный> ::=
if <выражение> then <оператор> else <оператор>
<цикла> ::=
while <выражение> do <оператор>
<составной>:: =
begin {<оператор> ;} end
<ввода>:: =
read(<идентификатор>)
<вывода>:: =
write(<выражение>)
<выражение>:: = <сумма> | <сумма> ( = | < | >) <сумма>
<сумма> ::= <произведение> { (+ | - | ∨) <произведение>}
<произведение>:: = <множитель> { (* | / | ∧) <множитель>}
<множитель>:: = <идентификатор> | <число> | <логическая_константа> |
¬ <множитель> | (<выражение>)
<логическая_константа>:: =
true | false
Диаграммы Вирта
В метаязыке диаграмм Вирта используются графические примитивы,
представленные на рисунке 2.1.
При построении диаграмм учитывают следующие правила:
-
каждый графический элемент, соответствующий терминалу или не-
терминалу, имеет по одному входу и выходу, которые обычно изображаются на
противоположных сторонах;
-
каждому правилу соответствует своя графическая диаграмма, на кото-
рой терминалы и нетерминалы соединяются посредством дуг;
-
альтернативы в правилах задаются ветвлением дуг, а итерации - их
слиянием;
-
должна быть одна входная дуга (располагается обычно слева или свер-
ху), задающая начало правила и помеченная именем определяемого нетермина-
ла, и одна выходная, задающая его конец (обычно располагается справа и сни-
зу);
-
стрелки на дугах диаграмм обычно не ставятся, а направления связей
отслеживаются движением от начальной дуги в соответствии с плавными изги-
бами промежуточных дуг и ветвлений.
then | else | while | do | true | false <разделитель> ::= ( | ) | , | ; | : | := | . | { | } |+ | - | * | / | ∨ | ∧ | ¬ | = | < | > <программа> ::= program <описание> ; <тело>. <описание> ::= var <идентификатор> {, <идентификатор>}: (int | bool) <тело> ::= begin {<оператор>; } end <оператор> ::= <присваивания> | <условный> | <цикла> | <составной> | <ввода> | <вывода> <присваивания> ::= <идентификатор> := <выражение> <условный> ::= if <выражение> then <оператор> else <оператор> <цикла> ::= while <выражение> do <оператор> <составной>:: = begin {<оператор> ;} end <ввода>:: = read(<идентификатор>) <вывода>:: = write(<выражение>) <выражение>:: = <сумма> | <сумма> ( = | < | >) <сумма> <сумма> ::= <произведение> { (+ | - | ∨) <произведение>} <произведение>:: = <множитель> { (* | / | ∧) <множитель>} <множитель>:: = <идентификатор> | <число> | <логическая_константа> | ¬ <множитель> | (<выражение>) <логическая_константа>:: = true | false Диаграммы Вирта В метаязыке диаграмм Вирта используются графические примитивы, представленные на рисунке 2.1. При построении диаграмм учитывают следующие правила: - каждый графический элемент, соответствующий терминалу или не- терминалу, имеет по одному входу и выходу, которые обычно изображаются на противоположных сторонах; - каждому правилу соответствует своя графическая диаграмма, на кото- рой терминалы и нетерминалы соединяются посредством дуг; - альтернативы в правилах задаются ветвлением дуг, а итерации - их слиянием; - должна быть одна входная дуга (располагается обычно слева или свер- ху), задающая начало правила и помеченная именем определяемого нетермина- ла, и одна выходная, задающая его конец (обычно располагается справа и сни- зу); - стрелки на дугах диаграмм обычно не ставятся, а направления связей отслеживаются движением от начальной дуги в соответствии с плавными изги- бами промежуточных дуг и ветвлений. 7
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »