Gramatica formală

Gramaticile formale sunt modele matematice ale gramaticilor care sunt utilizate pentru a genera și descrie în mod unic limbaje formale . Acestea sunt utilizate în informatică teoretică , în special în teoria calculabilității , și în construcția compilatorului, pe de o parte, pentru a determina în mod clar dacă un cuvânt este un element al unui limbaj și, pe de altă parte, pentru a investiga sau a dovedi proprietățile acestor formale. limbi. Gramaticile formale sunt clasificate folosind sistemele Semi-Thue date în ierarhia Chomsky .

Descriere

Cu o gramatică formală, începând de la un simbol de început ( numită și variabilă de început ), regulile de producție pot fi aplicate dintr-un set de reguli, care generează șiruri de caractere ( cuvinte ) noi din simbolul de început , care la rândul lor pot fi înlocuite în continuare. Acest proces se mai numește derivare .

Vocabularul unei gramatici, constând în unirea disjunctă a unui alfabet de simboluri terminale cu un set de simboluri non-terminale , specifică ce simboluri pot fi utilizate pentru aceasta. Setul de simboluri terminale definește ce caractere sunt alcătuite din cuvinte care nu pot fi derivate în continuare. Luate împreună, aceste cuvinte alcătuiesc limbajul formal descris de gramatică. Simbolul de start, pe de altă parte, trebuie să fie un simbol non-terminal. Simbolurile non-terminale suplimentare permit reguli mai diferențiate.

Prin definiție, regulile de producție sunt perechi ordonate care sunt, de asemenea, scrise. Se aplică unui șir înlocuind o apariție a șirului în cu . În partea stângă a regulii trebuie să existe întotdeauna cel puțin un simbol non-terminal. O mulțime de reguli cu aceeași parte stângă, care este , de asemenea , sunt abreviat ca .

De exemplu, se poate utiliza setul de reguli pentru fiecare deriva sau să obțină șirul .

Așa cum mai multe reguli pot fi aplicabile unui șir dat, nu trebuie să existe întotdeauna doar un singur loc în șirul pe care se potrivește o regulă. Gramaticile formale nu dictează nicio ordine. Toate cuvintele care constau numai din simboluri terminale care pot fi derivate din simbolul de început se numără în limbajul descris de gramatică.

definiție

O gramatică formală este reprezentată de 4- tuplu , în care:

  • , un set finit de simboluri , care se numește set de simboluri sau vocabular ,
  • , un subset de , numit și alfabet și ale cărui elemente se numesc simboluri terminale ,
  • , un set finit de reguli de producție , de asemenea
  • , simbolul de start .

Aici, corpul navei Kleenesche reprezintă un set de caractere (sau cuvinte).

Setul este setul de simboluri neterminal ( de asemenea , numit neterminal sau metasymbols ), în special caracterul de start aparține. Cuvântul din partea stângă a perechilor de reguli nu trebuie să fie format exclusiv din caractere terminale, care pot fi exprimate și printr-o concatenare :

.

Nu are prea mult sens dacă cuvântul din dreapta are simbolul de început. Unii autori iau în considerare acest lucru prin restricționarea corespunzătoare a setului asociat, i. H. prin înlocuire.

Unii autori se referă alternativ la cvadruplu ca gramatică . Există, de asemenea, următoarele denumiri diferite:

  • pentru caracterele terminale , aici ,
  • pentru întregul vocabular ( set de simboluri ) al tuturor simbolurilor , aici ,
  • pentru caracterele non-terminale ( variabile ), aici ,
  • pentru cuvântul gol, aici .

Limbajul descris de o gramatică

O regulă a unei gramatici date spune că într-un cuvânt cu R ca infix , R poate fi înlocuit cu Q, astfel încât să fie creat un nou cuvânt cu un infix. Se vorbește, de asemenea, despre faptul că în trece peste gramatică sau prin regulă , sau că a fost derivat din. Acest lucru poate fi notat prin (adesea în loc de ). Dacă trebuie exprimat doar că cuvântul de la poate apărea în gramatică fără a denumi o regulă, se scrie în schimb ( dacă gramatica este evidentă din context, de asemenea simplă ). În consecință, o astfel de tranziție de la o relație de tranziție este o extensie naturală a tuturor contextelor posibile , și anume:

,

în cazul în care aici reprezintă concatenarea cuvintelor.

Dacă există o succesiune de cuvinte în care este adevărat că pentru fiecare număr natural cu cuvântul în trece peste ( ), atunci ceea ce este reprezentat prin poate fi derivat în pași de la . O astfel de secvență de cuvinte se numește un derivat sau calcul al în lungime . Mai mult, în mijloace derivabile dacă există cel puțin unul astfel încât să poată fi derivat în pași de la . Dacă în poate fi derivat, aceasta este reprezentată de notație . Acesta este definit în plus , că pentru fiecare cuvânt , care este, astfel că relația este plicul reflexiv-tranzitivă a relației .

Acum, limbajul formal generat de gramatică este limbajul care constă din toate cuvintele care, pe de o parte, constau doar din simboluri terminale și, pe de altă parte, pot fi derivate din simbolul de început cu un număr finit de pași:

Nu contează în ce ordine sunt aplicate regulile de producție cuvintelor derivate sau dacă există mai multe opțiuni pentru derivarea unui cuvânt . Două gramatici și sunt echivalente dacă și numai dacă limbile generate de și sunt egale:

Dacă toate caracterele terminale apar în cuvintele limbajelor formale, atunci caracterele terminale trebuie să se potrivească. Caracterele non-terminale, pe de altă parte, sunt complet gratuite.

Exemple

fie o gramatică cu simbolurile terminale , simbolurile non-terminale , simbolul de început și cu regulile

Aici este cuvântul gol , care este un cuvânt de lungime 0. Această gramatică definește limbajul tuturor cuvintelor formei cu . Deci, din cauza următoarelor derivațiile, cuvintele , și elemente ale limbii descrise de către :

  • , folosind regula (2),
  • , prin intermediul regulilor (1), (4) și (6),
  • , prin intermediul regulilor (1), (1), (4), (3), (5), (6) și (7).

Dar există și alte modalități de a obține cuvântul din .

O altă gramatică care descrie aceeași limbă este gramatica fără context, cu regulile:

Fiecare limbaj recursiv enumerabil este generat de mai multe gramatici ( numărabile, infinit multe ). Cu toate acestea, există și limbi care nu pot fi generate de nicio gramatică.

Clasele de gramatică

Gramaticile sunt alocate claselor care se caracterizează prin asemănări. Cea mai cunoscută clasificare a fost descrisă de Noam Chomsky și Marcel Schützenberger folosind ierarhia Chomsky .

Ierarhia Chomsky

Ierarhia Chomsky împarte gramaticile în clase de tip 0 la tip 3 în funcție de tipul de norme de producție:

  • Gramaticile de tip 0: gramaticile structurii frazelor sunt gramatici formale nelimitate.
  • Gramaticile de tip 1: gramaticile sensibile la context pot consta doar din reguli în care exact un simbol non-terminal este înlocuit cu un șir de caractere. Acest simbol poate fi, de asemenea, înconjurat de alte simboluri în partea stângă a regulii, care indică un context în care trebuie să aibă loc înlocuirea.
  • Gramaticile de tip 2: în gramaticile fără context , pe de altă parte, poate exista doar un simbol non-terminal în partea stângă a regulilor. Simbolul poate fi apoi înlocuit indiferent de context.
  • Gramaticile de tip 3: În cazul gramaticilor obișnuite , laturile din stânga regulilor conțin, de asemenea, doar un simbol non-terminal. În gramaticile obișnuite din stânga, partea dreaptă a regulii poate consta din cel mult un simbol non-terminal urmat de cel mult un simbol terminal (de exemplu ). La gramatici destul de regulate de altă parte, în partea dreaptă a maximum un simbol terminal poate exista, cel mai urmeaza un neterminal (Ex:. ).

Clasele de limbă asociate sunt în scădere în dimensiune. Există următoarea relație reală de incluziune :

Pentru clasele de limba în funcție de tipul cu următoarele se aplică: .

Alte cursuri de limbă

În afară de ierarhia Chomsky, s-au stabilit și alte clase de gramatică:

Vezi si

literatură

  • Katrin Erk, Lutz Priese: Informatică teoretică. O introducere cuprinzătoare . A doua ediție extinsă. Springer-Verlag, Berlin și colab. 2002, ISBN 3-540-42624-8 , pp. 53-61 .

Link-uri web

Dovezi individuale

  1. Peter Bachmann: Fundamentele teoriei computerizate . Cottbus 2001, p. 47 ( PDF [accesat la 12 februarie 2011] note de curs).
  2. În timp ce semnificația și sau în cazul dat este clară, trebuie să clarificați ce se înțelege cu (precum și cel frecvent utilizat ) verificând contextul; în cazul în care-o de patru ori gramatica la care nu pot părăsi.
  3. a b Klaus Reinhardt: Mașini de plată cu prioritate și sincronizarea limbilor autoșenilă ( amintire originalului din 17 ianuarie 2018 în Internet Archive ) Info: Arhiva link a fost inserat și nu în mod automat încă verificată. Vă rugăm să verificați linkul original și arhivă conform instrucțiunilor și apoi eliminați această notificare. , Facultatea de Informatică de la Universitatea din Stuttgart; Teza de doctorat 1994. Cvadruplul gramatical este literalmente specificat aici, ceea ce înseamnă în denumirea aleasă aici . @ 1@ 2Șablon: Webachiv / IABot / users.informatik.uni-halle.de