Кто-нибудь узнает эту незнакомую запись? - PullRequest
0 голосов
/ 05 декабря 2009

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

Дать контекстную грамматику для генерации следующего языка

L = {a i b j c k | 0 <= i <= j <= i + k} </p>

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

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

Ответы [ 2 ]

2 голосов
/ 05 декабря 2009

а ^ я просто означает повторение я раз. Таким образом, a ^ 2 = aa, b ^ 10 = bbbbbbbbbb и т. Д.

0 голосов
/ 05 декабря 2009

Часто

  • {} означает «набор»
  • | означает «такой, что»

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

i <= i + k

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

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

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

...