Язык Си в примерах/Простая грамматика: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 13:
можно прочитать как
 
:«Слово типа A '''представляет собой''' слияние словслова типа B, слова типа C и слова типа D.»
 
Но в теории [[w:Формальные грамматики|формальных грамматик]] принята другая терминология:
 
:«Из символа A '''можно вывести''' последовательность символов B, C и D.»
 
Расмотрим три правила, в которых присутствует только один символ S (точнее один нетерминальный символ), и три терминальных (то есть нераскладываемых, таких символов, из которых ничего нельзя вывести кроме их самих) символов <tt>'0', '1', '2', '3'</tt>:
 
Расмотрим три правила, в которых присутствует только один символ S (точнее один нетерминальный символ), и три терминальных (то есть нераскладываемых, таких символов, из которых ничего нельзя вывести кроме их самих) символов <tt>'0', '1', '2', '3'</tt>:
 
S -> '0'
Строка 27 ⟶ 26 :
S -> '3' S S S
 
Правило <tt>S -> '3' S S S</tt> , к примеру, означает, что если <tt>A</tt>''a'', <tt>B</tt>''b'' и <tt>C</tt>''c'' являются корректными словами (принадлежатсловами, выводимыми из грамматикесимвола <tt>S</tt>), то и слово <tt>3ABC3</tt>''abc'' тоже является корректным (пробелы не считаются).
 
* Примеры корректных слов: 0, 10, 110, 200, 2100, 2010, 1111111110.
Строка 128 ⟶ 127 :
printf ("Correct\n");
}
 
 
:'''Задача 4.''' Прочитайте учебный текст про грамматики. Напишите грамматики следующих языков
::* Язык записи действительных чисел в языке Си.
::* Язык записи email адресов.