Limbaj regulat

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică teoretică, un limbaj regulat este un limbaj formal , adică constând dintr-un set de șiruri construite cu un alfabet finit, care este descris printr-o expresie regulată , generată de o gramatică generativă regulată (sau de tip 3, conform ierarhiei Chomsky ) sau acceptat de un automat cu stare finită ( automat finit determinist sau automat cu stare finită nedeterminist ).

Limbi regulate bazate pe un alfabet

Setul de limbi obișnuite bazate pe un alfabet este definit recursiv după cum urmează:

  • limbă goală este un limbaj obișnuit.
  • limba conținând doar șirul gol este un limbaj obișnuit.
  • pentru fiecare personaj , limba singleton este un limbaj obișnuit.
  • de sine Și atunci sunt limbi obișnuite , , Și sunt limbi obișnuite.
  • nicio altă limbă activată este regulat.

Toate limbile limitate sunt regulate. Un alt exemplu tipic include limba care constă din toate șirurile alfabetului și care conține un număr par de a sau limba constând din toate șirurile de formă: zero sau mai mult a urmat de zero sau mai mult b .

Proprietăți de închidere

Limbile obișnuite sunt închise în ceea ce privește următoarele operațiuni:

  • completa
  • steaua lui kleene
  • concatenare
  • Uniune
  • intersecție
  • diferență
  • reflex

Probleme legate de limbile obișnuite

Chomsky-Hierarchy.jpg

În ierarhia Chomsky, limbile regulate corespund limbajelor generate de gramaticile de tip 3 . Este posibil să se stabilească dacă un limbaj este regulat sau nu utilizând teorema Myhill-Nerode . În schimb, este posibil să se demonstreze că un limbaj nu este regulat folosind lema de pompare pentru limbi obișnuite .

Având două limbi obișnuite și puteți verifica includerea folosind proprietățile de închidere. Din acest motiv, este posibil să se stabilească dacă două limbi regulate sunt echivalente.

Abordarea algebrică

Există două abordări algebrice pure pentru a defini limbaje regulate. De sine este un alfabet finit e denotă monoidul liber pe constând din toate șirurile , este un homomorfism al monoidului unde este un monoid finit , e este un subset de , unde funcția inversă este regulat. Fiecare limbă obișnuită vine în această formă.

De sine este un subset de , se poate defini o relație de echivalență în după cum urmează: este definit

Limba este regulat dacă și numai dacă numărul de clase echivalente de s-a terminat; în acest caz, acest număr este egal cu numărul stărilor celui mai puțin determinist automat finit pe care îl acceptă .

Bibliografie

  • Giorgio Ausiello, Fabrizio D'Amore, Giorgio Gambosi, Limbaje de modelare a complexității, Milano, Franco Angeli Editore, 2003, ISBN 88-464-4470-1 .
  • ( EN ) language regular , în Academic Press Dictionary of Science and Technology , Oxford, Elsevier Science & Technology, 1992.
  • ( EN ) John E. Hopcroft , Rajeev Motwani; Jeffrey D. Ullman , Expresii și limbi regulate , în Introducere în teoria automatelor, limbi și calcul , Addison Wesley, 15 iulie 2006, ISBN 978-0-321-46225-1 .
  • (EN) Martin Davis , Ron Sigal; Elaine J. Weyuker, Regular Languages , in Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science , Morgan Kaufmann, 17 februarie 1994, ISBN 978-0-12-206382-4 .

Elemente conexe

Alte proiecte

linkuri externe

Teoria automatelor : limbaje formale și gramatici formale
Ierarhia Chomsky Gramatica formală Limba Automat minim
Tipul-0 (nelimitat) Recursiv enumerabil Mașină Turing
(nelimitat) Recursiv Decider
Tipul 1 Context dependent Context dependent Automat liniar
Tipul 2 Fără context Fără context Automat cu baterie ND
Tipul 3 Regulat Regulat Stări finite
Fiecare categorie de limbă sau gramatică este un subset adecvat al categoriei imediat deasupra acesteia.
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT