Gramatyki formalne, hierarchia Chomsky`ego

Transkrypt

Gramatyki formalne, hierarchia Chomsky`ego
Gramatyki formalne, hierarchia Chomsky’ego
Pojęcie gramatyki formalnej
(lingwistyka matematyczna)
Gramatyka formalna to uporządkowana czwórka:
G=(V,T,P,S)
gdzie:
V jest zbiorem symboli nieterminalnych
T jest zbiorem symboli terminalnych
P jest zbiorem produkcji, z których każda ma postać:

+, *
S jest symbolem początkowym
 = V  T jest słownikiem
Hierarchia Chomsky’ego
Klasa 0
Gramatyki klasy 0 to gramatyki kombinatoryczne (GKomb) (gramatyki nieograniczone).
Definicja gramatyki klasy 0 nie nakłada żadnych ograniczeń na postać produkcji gramatyki
w stosunku do ogólnej definicji gramatyki formalnej.
P:

+, *
Języki generowane przez gramatyki klasy 0 to języki rekurencyjnie przeliczalne (JRP).
Problem polegający na określeniu czy słowo w  L(GKomb) jest nierozstrzygalny.
Klasa 1
Gramatyki klasy 1 to gramatyki kontekstowe (GK) (gramatyki nieskracające).
Definicja gramatyki klasy 1 nakłada następujące ograniczenia na postać produkcji gramatyki:
P:

,+
0 < ||  || oraz dodatkowo jeżeli język
zawiera słowo puste dopuszczalna jest produkcja
postaci S  
Powyższe ograniczenie nałożone na postać produkcji wyjaśnia nazwę gramatyki
nieskracającej. Długość łańcucha  nie może być krótsza od długości łańcucha .
Postać produkcji gramatyk nieskracających można także opisać inaczej i stąd ich drugie
określenie jako gramatyki kontekstowe.
P:
A  
AV,
,*,
+
W postaci tej nazywanej postacią normalną produkcje opisują możliwości zastąpienia
symbolu nieterminalnego A łańcuchem  tylko w lewostronnym kontekście 
i prawostronnym kontekście .
Języki generowane przez gramatyki klasy 1 to języki kontekstowe (JK).
Problem polegający na określeniu czy słowo w  L(GK) jest rozstrzygalny.
Klasa 2
Gramatyki klasy 2 to gramatyki bezkontekstowe (GBK).
Definicja gramatyki klasy 2 nakłada ograniczenie na postać głowy produkcji określając, że
zawierać może ona tylko symbol nieterminalny.
P:
A
AV,
*
Pojęcie gramatyki bezkontekstowej pochodzi od tego, że produkcje tej gramatyki określają
reguły zastępowania symbolu nieterminalnego A przez łańcuch  niezależnie od kontekstu,
w jakim znajduje się symbol A.
Języki generowane przez gramatyki klasy 2 to języki bezkontekstowe (JBK).
Problem polegający na określeniu czy słowo w  L(GBK) jest rozstrzygalny.
Klasa gramatyk bezkontekstowych jest bardzo istotną klasą w informatyce ze względu na to,
że za pomocą GBK opisuje się składnię języków programowania.
Klasa 3
Gramatyki klasy 3 to gramatyki regularne (GR) (gramatyki liniowe).
Definicja gramatyki klasy 3 nakłada ograniczenie na postać ciała produkcji określając, że
w łańcuchu stanowiącym ciało produkcji może wystąpić tylko jeden symbol nieterminalny
i musi się on znajdować na początku bądź na końcu łańcucha.
Gramatyki liniowe możemy podzielić na:
Gramatyki prawostronnie liniowe
P:
A  xB
Ax
A,BV,
xT*
A,BV,
xT*
oraz na gramatyki lewostronnie liniowe
P:
A  Bx
Ax
Gramatyki, w których występują produkcje dopuszczalne w gramatykach lewo- i prawostronnych to gramatyki liniowe, czyli regularne.
Języki generowane przez gramatyki klasy 3 to języki regularne (JR).
Problem, który rozstrzyga czy słowo w  L(GR) jest rozstrzygalny.
Klasa gramatyk regularnych jest również bardzo istotną klasą w informatyce ze względu na
to, że za pomocą GR opisuje się składnię elementów leksykalnych (słownikowych) języków
programowania.
Poniżej przedstawiono zawieranie się klas gramatyk i języków formalnych.
GR  GBK  GK  GKomb
JR  JBK  JK  JRP
Automaty, hierarchia Chomsky’ego
Klasa 3
Automat skończony, JR
Klasa 2
Automat ze stosem, JBK
Klasa 1
Automat ograniczony liniowo, JK
Klasa 0
Maszyna Turinga, JRP
Rodzaj
automatu
Ruch
Zapis na
taśmie
Automat
skończony
w jedną stronę
nie
AZS
Automat ze
stosem
w jedną stronę
AOL
Automat
ograniczony
liniowo
Maszyna
Turinga
AS
MT
Długość
taśmy
Funkcja
przejścia
Stos
skończona
21
nie
nie
skończona
32
tak
w obie strony
tak
skończona
23
nie
w obie strony
tak
nieskończona
23
nie