Запитання з тегом «context-free-grammar»

20
Це C ++ без контексту чи залежно від контексту?
Я часто чую твердження, що C ++ - це контекстна мова. Візьмемо такий приклад: a b(c); Це змінне визначення чи оголошення функції? Це залежить від значення символу c. Якщо cє змінною , то a b(c);визначає змінну, названу bтипу a. Він безпосередньо ініціалізований з c. Але якщо cце тип , то …

2
Що таке контекстна безкоштовна граматика?
Чи може хтось пояснити мені, що таке контекстна граматика? Подивившись на запис у Вікіпедії, а потім у Вікіпедію на офіційній граматиці, я залишаюсь абсолютно і зовсім збентежений. Невже хтось буде такий добрий, щоб пояснити, що це за речі? Мені це цікаво, тому що я хочу дослідити синтаксичний аналіз, а також …

8
Регулярна граматика проти контексту
Я навчаюся для мого тесту з обчислювальних мов , і є одна ідея, що я маю проблеми, обертаючи голову. Я зрозумів, що звичайні граматики простіші і не можуть містити двозначності, але не можуть виконувати багато завдань, необхідних для мов програмування. Я також розумів, що безконтекстні граматики допускають неоднозначність, але допускають …

1
Сила визнання “сучасних” регулярних виразів
Який клас мов насправді визнають справжні сучасні регулярні вирази? Всякий раз, коли існує група захоплення необмеженої довжини із зворотним посиланням (наприклад (.*)_\1), регулярний вираз тепер відповідає нерегулярній мові. Але цього, самого по собі, недостатньо, щоб зіставити щось на зразок S ::= '(' S ')' | ε- контекстно-вільної мови відповідних пар …

1
Різниця між синтаксичним аналізатором LL та рекурсивним спуском?
Нещодавно я намагався навчити себе, як працюють парсери (для мов / безконтекстних граматик), і, здається, більшість із них має сенс, крім одного. Зосереджую свою увагу, зокрема, на граматиках LL (k) , для яких двома основними алгоритмами, здається, є парсер LL (за допомогою таблиці стеків / синтаксичного аналізу) та парсер рекурсивного …

2
Чому граматика BNF C допускає декларації з порожньою послідовністю init-деклараторів?
Переглядаючи граматику BNF C, я подумав, що дивно, що виробниче правило для декларації виглядає таким чином (згідно https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of% 20C% 20in% 20Backus-Naur% 20form.htm ): <declaration> ::= {<declaration-specifier>}+ {<init-declarator>}* ; Навіщо використовувати *кількісний коефіцієнт (що означає нуль або більше подій) для init-declarator? Це дозволяє твердженням, таким як int;або void;бути синтаксично дійсними, навіть …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.