Вопрос

У меня есть вопрос из теста в классе языков программирования, который сбивает меня с толку.

Укажите контекстно-свободную грамматику для генерации следующего языка

L = { aibjck | 0 <= я <= j <= i + k }

Я совершенно незнаком с этой нотацией.Кажется, я не могу найти что-либо в книге или своих заметках по этому поводу, и я понятия не имею, как запросить ответ в Google.

Если вы узнаете это, как это называется и что это значит?

Это было полезно?

Решение

a^ i просто означает повторяющееся i несколько раз.Итак, a ^ 2 = aa, b ^ 10 = bbbbbbbbbbb и т.д.

Другие советы

Часто,

  • {} означает "совокупность"
  • | означает "такой, что"

Я понятия не имею, что a, b, c являются. i и j являются неотрицательными числами, будучи больше или равными нулю.Обычно эти буквы зарезервированы для целых чисел.Тот факт , что

i <= i + k

означает, что k также неотрицательно.

Если a, b, и c являются реалами, то мне кажется, что L это просто набор действительных чисел.Однако это кажется очень надуманным и изощренным способом его определения.Это было бы что - то вроде Dr .Заговор Зла с целью убить Остина Пауэрса.

Итак, у вас есть "набор из a в степени i, умноженный на b в степени j, и c в степени j, такой, что i, j и k положительны, а j больше или равно i ..." и так далее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top