1. Material didactic pentru elevii din cadrul
Colegiului Pedagogic “Ion Creangă”
la disciplina “Informatica”
Способы описания
грамматических конструкций.
Метаязык БНФ.
Синтаксические диаграммы.
Profesor:
Masliuc Alina
2. Любой язык программирования определяется через
синтаксис и семантику:
Cинтаксис – это совокупность правил, которые
задают структуру программу;
Cемантика – это совокупность правил,
определяющих смысл и значение соответствующих
программы.
2
3. Метаязык БНФ
Cинтаксис любого языка программирования может
быть описан с помощью одного из языков общения
между людьми, например, русского, румынского,
английского и т.д
Для лаконичного и точного описания синтаксиса
языков программирования были разработаны
специальные языки, называемые
метаязыками.
Самым распространенным метаязыком
является метаязык БНФ – формы Бэкуса-Наура.
3
5. 5
Терминальные символы - символы,
из которых состоит программа на
языке ПАСКАЛЬ.
Например : цифры 0, 1, 2 …, 9
буквы A, B, C, …, Z
6. 6
Нетерминальные символы – символы,
которые обозначают грамматические
единицы (конструкции) языка.
Нетерминальные символы записываются
между знаками < >.
Например : <Цифра>
<Буква>
7. 7
Описание синтаксиса языка ПАСКАЛЬ состоит из
совокупности металингвистических формул.
Под металингвистической формулой будем понимать
конструкцию, состоящую из двух частей:
левой - находится нетерминальный символ;
правой - находится терминальные символы,
разделенные определенными символами с
определенным значением.
разделенных символами: ::=, что означает «является по
определению».
8. 8
Определенные символы
│ - символ означающего «или»;
{ } – альтернативу между фигурными скобками
может отсуствовать или повторяться произвольное
число раз ;
[ ] – альтернатива в квадратных скобках может
отсутствовать или отображаться.
9. 9
Например, металингвистических формул:
<Цифра> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<Буква> ::= 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
10. 10
Правой части металингвистической формулы
может быть указана последовательность из двух и
более символов. Такая запись соответствует
операции конкатенации (присоединения).
Например: <Ид> ::= <Буква><Цифра>
Этот пример определяет грамматическую
конструкцию <Ид> как букву, за которой следует
цифра.
примеры : a4
x9
e7
11. В случае, если некоторая часть определения
нетерминального символа может отсуствовать или
повторяться произвольное число раз, оно
заключается в фигурные скобки: { }.
11
Например :
<Целое без знака> ::= <Цифра> {<Цифра>}
Этот пример определяет нетерминальный символ
<Целое без знака> как непустую последователь-
ность цифр.
примеры : 0000 3a5910 - не соответствует
001
1900
12. В случае, когда некоторая часть определения
нетерминального символа может отсуствовать или
присуствовать ровно один раз, оно заключаются в
квадратные скобки [ ].
12
Например :
<Масштабный множитель> ::= [+ | –] <Целое без знака>
Этот пример определяет масштабный множитель как
целое число без знака, которому может
предшествовать + или – .
примеры : + 1 3 - 5 - не соответствует
- 20
30
14. 14
Какие из приведенных ниже последовательностей
соответствуют определению лексической единицы <Число> ?
<Число> ::= <Цифра> {<Цифра>}
X
X
X X
X
15. 15
Какие из приведенных ниже последовательностей
соответствуют определению лексической единицы
<Арифметическое выражение> ?
<Арифметическое выражение> ::= <Число> {<Знак><Число>}
X
X
X
17. 17
Терминальные символы на
синтактических диаграммах заключаются в
круг или овал.
Нетерминальные символы заключаются в
прямоугольник.
Определенные символы заключаются
со стрелками .