- •Дискретная математика
- •Введение
- •1. Введение в теорию множеств
- •1.1. Множества
- •Основные понятия
- •Операции над множествами
- •Свойства операций объединения и пересечения
- •1.2. Отношения
- •1.2.1. Бинарные отношения. Основные определения
- •1.2.2. Свойства бинарных отношений
- •2. Теория графов
- •2.1. Основные понятия
- •2.2. Способы задания графов
- •2.4. Сети и их свойства1
- •3. Введение в математическую логику
- •3.1. Логика высказываний
- •3.1.1. Высказывания
- •3.1.1.1. Понятие высказывания
- •2.1.1.2. Логические связки
- •1.1.3. Условные высказывания
- •1.1.4. Эквивалентные высказывания
- •3.1.2. Аксиоматические системы
- •3.1.2.1. Умозаключения
- •3.1.3. Полнота в логике высказываний
- •3.1.3.1. Эквивалентные замены логических связок
- •3.2. Логика предикатов
- •3.2.1. Определение предиката
- •3.2.2. Кванторы. Их свойства и применение
- •3.2.2.1. Квантор всеобщности и квантор существования
- •4. Прикладная теория алгоритмов
- •4.1. Алгоритм: определение и основные свойства
- •4.2. Реализация управляющих алгоритмов
- •4.3. Формализация понятия алгоритма
- •4.4. Машина Тьюринга
- •4.5. Свойства машины Тьюринга
- •4.6. Реализация машины Тьюринга
- •4.7. Формальные системы и алгоритмы.
- •5. Комбинаторный анализ
- •5.1. Основное правило комбинаторики
- •5.2. Правило суммы
- •5.3. Правило прямого произведения
- •5.4. Перестановки
- •5.5. Число различных k-элементарных подмножеств n-элементарного множества
- •5.6. Число подмножеств данного множества
- •5.7. Размещение элементов множества
- •5.7. Размещения с повторениями
- •5.8. Размещения без повторений
- •5.9. Комбинации элементов с повторениями
- •6. Языки и грамматики
- •6.1. Основные определения
- •6.2. Формальные грамматики
- •6.3. Грамматики с ограничениями на правила
- •6.4. Способы записи синтаксиса языка
- •Метаязык Хомского
- •Метаязык Хомского-Щутценберже
- •Бэкуса-Наура формы (бнф)
- •Список рекомендуемой литературы
Метаязык Хомского
Метаязык Хомского вышел из недр математической логики. Он имеет следующую систему обозначений:
символ “” отделяет левую часть правила от правой (читается как "порождает" и "это есть");
нетерминалы обозначаются буквой А с индексом, указывающим на его номер;
терминалы - это символы используемые в описываемом языке;
каждое правило определяет порождение одной новой цепочки, причем один и тот же нетерминал может встречаться в нескольких правилах слева.
Описание идентификатора на метаязыке Хомского будет выглядеть следующим образом:
1. A1 A |
23. A1 W |
45. A1 s |
2. A1 B |
24. A1 X |
46. A1 t |
3. A1 C |
25. A1 Y |
47. A1 u |
4. A1 D |
26. A1 Z |
48. A1 v |
5. A1 E |
27. A1 a |
49. A1 w |
6. A1 F |
28. A1 b |
50. A1 x |
7. A1 G |
29. A1 c |
51. A1 y |
8. A1 H |
30. A1 d |
52. A1 z |
9. A1 I |
31. A1 e |
53. A2 0 |
10. A1 J |
32. A1 f |
54. A2 1 |
11. A1 K |
33. A1 g |
55. A2 2 |
12. A1 L |
34. A1 h |
56. A2 3 |
13. A1 M |
35. A1 i |
57. A2 4 |
14. A1 N |
36. A1 j |
58. A2 5 |
15. A1 O |
37. A1 k |
59. A2 6 |
16. A1 P |
38. A1 l |
60. A2 7 |
17. A1 Q |
39. A1 m |
61. A2 8 |
18. A1 R |
40. A1 n |
62. A2 9 |
19. A1 S |
41. A1 o |
63. A3 A1 |
20. A1 T |
42. A1 p |
64. A3 A3A1 |
21. A1 U |
43. A1 q |
65. A3 A3A2 |
22. A1 V |
44. A1 r |
|
Метаязык Хомского-Щутценберже
Приведенный в предыдущем разделе пример описания идентификатора показывает громоздкость метаязыка Хомского, что позволяет эффективно использовать его только для описания небольших абстрактных языков. Более компактное описание возможно с применением метаязыка Хомского-Щутценберже, использующего следующие обозначения метасимволов:
символ “=” отделяет левую часть правила от правой (вместо символа “”);
нетерминалы обозначаются буквой А с индексом, указывающим на его номер;
терминалы - это символы используемые в описываемом языке;
каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом “+”, что позволяет, при желании, использовать в левой части только разные нетерминалы.
Введение возможности альтернативного перечисления позволило сократить описание языков. Описание идентификатора будет выглядеть следующим образом:
A1=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+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
A2=0+1+2+4+5+6+7+8+9
A3=A1+A3A1+A3A2