Я пытался и сжег свой мозг, чтобы понять определение обычных языков в Дискретная математика и ее приложения (Розен), не достигнув цели понимания того, почему определение в этой книге именно такое. На странице (789) я перефразирую определение:
Грамматики типа 3 определяются следующим образом:
w1 --> w2
Где w1 – нетерминал, а w2 – следующий формат:
w2 = aB
w2 = a
Где B — нетерминал, а a — терминал. Особый случай — это когда w1 — начальный символ, а w2 — лямбда (пустая строка):
w1 = S
S --> lambda
Два вопроса, на которые не нашел ответа. Во-первых, почему w2 не может иметь форму Ba. Во-вторых, почему лямбда разрешена только для начального символа только. В книге говорится, что регулярные языки эквивалентны автомату с конечным состоянием, и мы можем легко увидеть, что мы можем построить FSA для обоих случаев. Я посмотрел на другие ресурсы, и в этих ресурсах таких ограничений нет.