Нескінченна мова проти кінцевої мови


16

Мені незрозуміло щодо використання словосполучень "нескінченна" мова або "кінцева" мова в комп'ютерній теорії.

Я думаю , що корінь проблеми в тому , що мова як L={ab} є нескінченною в тому сенсі , що він може генерувати нескінченну (але рахункове) число рядків. Тим не менш, його все ще можна розпізнати за допомогою автомата з кінцевим станом.

Це також не допомагає, що книга Сіпсера насправді не відрізняється від цього (принаймні, наскільки я можу сказати). Питання щодо нескінченних / обмежених мов та їхнього відношення до звичайних мов виникло у вибірковому іспиті.


1
Це нескінченно, тому що ab*(зірка Клейна) означає, що ви можете мати нульову або більше комбінацій рядка ab, це включає потенційну нескінченну кількість рядків: {"", ab ^ 1, ab ^ 2, ab ^ 3, ... ., ab ^ n}. Однак ви все ще можете створити FSM, який розпізнає цю мову, оскільки в реальності немає можливості створити нескінченний рядок, коли обробляється машиною, всі рядки повинні бути кінцевими, але це не робить мову самою кінцевою. Мови нескінченності є теоретичними.
Мисливець Макміллен

1
"Кінцево описувані" та "кінцеві" не є однаковими. Наприклад, ваш регулярний вираз - це кінцевий опис нескінченної мови; кінцевий автомат - це лише інший (але його називають кінцевим автоматом не тому, що це кінцевий опис, а тому, що він може зберігати лише постійну кількість біт). {a,b}
Рафаель

Чому кінцева кількість станів має бути більш значущою, ніж кінцевий опис будь-якої іншої машини?
бабу

Автомат може мати петлі, і ви можете використовувати деякі стани нескінченно.
doganulus

Відповіді:


28

О Боже. Це здається плутаниною, спричиненою термінологією (старої школи) «мови з кінцевою державою» як синонімом того, що сьогодні відомо як «звичайна мова».

У будь-якому разі, стандартні визначення для кінцевого / нескінченного, прийняті в наші дні, стосуються лише розміру мови:

  1. кінцевий мову будь-яка множина рядків, кінцевою потужності, | L | < .L|L|<
  2. нескінченний мову будь-яка множина рядків, з нескінченного ( 0 ) потужності | L | = .L0|L|=

Кінцевий завжди регулярний.L

Нескінченний може бути регулярним (іноді його називають "кінцевим станом"), розв'язуваним (іноді його називають "рекурсивним"), нерегулярним (нескінченним), нерозв'язним тощо.L


1
Спасибі Ран! Отже, щоб було зрозуміло, - це нескінченна мова? Тому я здогадуюсь, враховуючи нескінченну мову, нічого не можна знати про те, який це мова мови. L={ab}
тимберлі

1
це правильно. - нескінченна, регулярна мова. L={a,b}
Ран Г.

1
@timberly Звичайно, ми можемо знати і довести, що це за мова.
phant0m


4

Мені незрозуміло щодо використання словосполучень "нескінченна" мова або "кінцева" мова в комп'ютерній теорії.

Я думаю, що корінь проблеми полягає в тому, що мова на зразок нескінченна в тому сенсі, що може генерувати нескінченну (але підрахункову) кількість рядків. Тим не менш, його все ще можна розпізнати за допомогою автомата з кінцевим станом.L={ab}

Інше питання полягає в тому, що формальна теорія мови досить своєрідна в тому, як вона використовує термін "мова".

Для всіх у цьому світі, крім людей у ​​формальній теорії мови, мова - це система висловлювань, що використовуються для спілкування, тому кожне висловлювання має форму (свій синтаксис ) та якесь значення (свою семантику ). Формальна теорія мови, принаймні тієї частини, яка використовується в інформатиці, присвячена проблемі, як найкраще формально визначити синтаксис мов. Вся справа у взаємозв'язку між синтаксисом мов (як виглядають висловлювання) та формалізмами (мовами!), Наприклад, регулярними виразами, які використовуються для визначення синтаксису мов.

Отже, в теорії формальної мови "мова" визначається просто як "набір рядків". Зазвичай він не присвоює значення мовам рядків.

У той же час формалізми, що використовуються для опису мов, таких як регулярні вирази, також утворюють мови в цьому сенсі: наприклад, кожен регулярний вираз є рядком, а значить, набір регулярних виразів - це мова. Однак для цих формализмов, рядки на мові робити має сенс: наприклад, сенс кожного регулярного виразу мови воно означає.

ab{ab}abab{ab}

{ab}LLLL{ab}{ϵ,ab,abab,ababab,abababab,}{ab}

(ab)

(ab)

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