Limbaj regulat
Î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
Î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
- Wikimedia Commons conține imagini sau alte fișiere în limbă obișnuită
linkuri externe
- ( EN ) Grail + , pe grailplus.org , Universitatea din Western Ontario (arhivat din original la 18 octombrie 2016) .
- (EN) jflap pe jflap.org, Universitatea Duke .