Що насправді означає без контексту в терміні граматика без контексту?


29

Я вивчав компілятори деякий час, і шукав, що означає «контекст» у граматиці і що означає для граматики бути «без контексту», але безрезультатно.

То чи може хтось у цьому допомогти?


7
Що ви маєте на увазі під "справді"? Які пояснення ви читали, а що не розумієте? IIRC, кожен напівпристойний підручник з цього питання пояснить, що вони означають.
Рафаель

2
Ось прикладний приклад. Розгляньте слово «читати». Це одне слово, яке має два абсолютно різних значення. Одне - теперішнє напруження «читати», інше - минуле час «я читаю». Якщо ви побачили слово "прочитане" у фрагменті тексту, ви не можете розмежувати, яке з двох значень воно представляє, не дивлячись на контекст. Таким чином, англійська мова є залежною від контексту, тому що ви не можете проаналізувати кожен маркер (слово), не розглядаючи його в контексті. Граматика, що залежає від контексту, - це те, в якому значення кожного лексема однозначно виводиться з одного лексема, який його представляє.
Олександр - Відновіть Моніку

Відповіді:


30

Контекст можна пояснити стосовно правил виробництва, дозволених для різних граматик в ієрархії Хомського.

Якщо розглядати безконтекстні граматики, то правила їх виготовлення мають таку форму:

Aα

Отже, ви можете помітити, що ліва частина цього виду правил складається лише з одного нетермінального символу; таким чином, підміна нетермінального символу відбувається без урахування його "контексту", тобто інших символів, якими він оточений.

З іншого боку, якщо врахувати правила виробництва контекстно-залежних граматик, вони мають таку форму:

βAγβαγ

Aαβγ

βγ

Більш детальну інформацію ви можете знайти в цій відповіді з математики та в цій відповіді з інженерії програмного забезпечення.


Дякую за відповідь. Але дивно для мене те, що подібне питання було задано і з математики SE.
Шаді Атеф

1
βγ

1
@Frozn AFAIK, наведене тут - це стандартне визначення відповідно до ієрархії Чмоського. Звичайно, є граматики більш потужні, ніж контекстно-чутливі, які дозволяють виробляти будь-який тип виробництва, але стандартні контекстно-чутливі граматики цього не роблять.
Бакуріу

2
@Frozn: Бакаріу правий, тут мова йде про граматики, визначені згідно з ієрархією Хомського, що ґрунтується на дедалі обмежуючих умовах виробничих правил. Зокрема, безконтекстні граматики - це граматики типу 2, а контекстно-чутливі - 1-го типу. Однак граматики типу 0 мають правила виготовлення, які не обмежуються жодними обмеженнями і тому називаються необмеженими системами переписування. Тут ви можете знайти короткий опис ієрархії Хомського з деякими прикладами.
PieCot

βAγδ|βAγ||δ|

17

AthingsstuffAmore-stuffthingsExpr розширюється до того ж виду вираження, чи ви пишете завдання (наприклад, x:=y+z), передаючи аргументи функції (наприклад, f(y+z)) або повертаючи значення з функція (наприклад, return y+z).


4

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

Що стосується безконтекстних граматик, це те, що коли існує кілька способів заміни нетермінального символу, застосовуючи різні правила з одним і тим же нетермінальним правою стороною, вибір того, яке правило застосовувати, ніколи не залежить від того, що відбувається навколо цього символу в процесі деривації.

Ви можете думати про них як про безвідмовну мову походження , коротко - без контексту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.