Для описания синтаксиса используются Расширенные Бэкуса-Наура Формы (РБНФ). Варианты разделяются знаком |. Квадратные скобки [ и ] означают необязательность записанного внутри них выражения, а фигурные скобки { и } означают его повторение (возможно 0 раз). Нетерминальные символы начинаются с заглавной буквы (например, Оператор). Терминальные символы или начинаются малой буквой (например, идент), или записываются целиком заглавными буквами (например, BEGIN), или заключаются в кавычки (например, ":=").
Алгол-60 | Паскаль | ТП2.0 | ТП5.0 | ТП5.5 | ТП6.0 |
ОП |
М2 | Оберон | О2 |
Си |
Си++ |
Ява |
Ада |
|
Лексем |
1085 |
1012 |
1184 |
1331 |
1410 |
1488 |
1825 |
887 |
765 |
726 |
917 |
1662 |
1771 |
2206 |
Нетерминалов |
119 |
110 |
124 |
127 |
135 |
143 |
180 |
70 |
62 |
43 |
53 |
126 |
174 |
226 |
Непустых правил |
108 |
87 |
101 |
105 |
112 |
118 |
146 |
69 |
59 |
42 |
49 |
117 |
160 |
171 |
Знаков РБНФ |
475 |
447 |
550 |
660 |
697 |
721 |
884 |
414 |
361 |
336 |
400 |
768 |
773 |
992 |
Сложность правила |
9.1 |
9.2 |
9.6 |
10.5 |
10.4 |
10.4 |
10.1 |
12.7 |
12.3 |
16.9 |
17.3 |
13.2 |
10.2 |
9.76 |
Терминалов |
92 |
84 |
87 |
87 |
87 |
89 |
90 |
88 |
90 |
91 |
123 |
131 |
121 |
102 |
Служебных слов |
25 |
35 |
42 |
48 |
52 |
55 |
83 |
39 |
32 |
34 |
27 |
47 |
48 |
63 |
Всего терминалов |
117 |
119 |
129 |
135 |
139 |
144 |
173 |
127 |
122 |
125 |
150 |
178 |
169 |
165 |
Рис. 1. Сложность синтаксиса языков программирования
С. Свердлов с3с@uni-vologda.ac.ru |
|
TM Oberon-2 Compiler |
|
|