Produkcja (computer science) - Production (computer science)

Produkcja lub produkcja reguła w informatyce jest reguła przepisywania określając zastąpienie symboli, które mogą być wykonywane rekurencyjnie do generowania nowych sekwencji symboli. Skończony zestaw produkcji jest głównym składnikiem w specyfikacji gramatykę formalną (konkretnie gramatyki generatywne ). Inne składniki są skończony zestaw z symboli nieterminalowi , skończony zestaw (znany jako alfabetu) z symboli końcowych , który jest odłączony od i odróżnić symboli czyli symbolu startu .

W nieograniczonego gramatyki , produkcja jest postaci gdzie i są arbitralne ciągi terminali i nieterminali jednak nie może być pusty. Jeśli jest łańcuchem pustym, to oznaczamy symbolem lub (zamiast pozostawić puste boczny prawy). Więc produkcje są członkami iloczyn kartezjański

,

gdzie to słowa , to gwiazda Kleene operatora wskazuje konkatenacji , a oznacza zestaw związek . Jeśli nie pozwolić symbol początek występuje w (słowo po prawej stronie), musimy zastąpić przez po prawej stronie symbolu kartezjańskiej produktu.

Inne rodzaje formalnej gramatyki w hierarchii Chomsky'ego nałożyć dodatkowe ograniczenia dotyczące tego, co stanowi produkcję. Zwłaszcza w gramatyce bezkontekstowych , strona lewa produkcji musi być pojedynczym nieterminalowi symbol. Więc produkcje mają postać:

generacja gramatyka

Aby wygenerować ciąg w języku, zaczyna się ciąg składający się tylko z jednym symbolem startowym , a następnie kolejno stosuje zasady (dowolną ilość razy, w dowolnej kolejności), aby przepisać ten ciąg. To zatrzymuje się, gdy otrzymujemy ciąg zawierający tylko terminale. Język składa się ze wszystkich ciągów, które mogą być generowane w ten sposób. Jakaś konkretna sekwencja wyborów prawnych podjętych w trakcie tego procesu przepisywania daje jeden konkretny ciąg znaków w języku. Jeśli istnieje wiele różnych sposobów generowania ten jeden ciąg, a następnie gramatyka mówi się niejednoznaczna .

Dla przykładu przyjmijmy, że alfabet składa się i , z symbolem startowym i mamy następujące zasady:

1.
2.

Następnie zaczynamy , i może wybrać regułę stosuje się do niego. Jeśli zdecydujemy reguły 1, wymienimy się i uzyskać ciąg . Jeżeli ponownie wybierzemy reguły 1, wymienimy się i uzyskać ciąg . Proces ten jest powtarzany aż do mamy tylko symbole z alfabetu (tj, i ). Jeśli teraz wybrać regułę 2, wymienimy się i uzyskać ciąg , i gotowe. Możemy napisać tę serię wyborów bardziej krótko, za pomocą symboli: . Językiem gramatyki jest zbiorem wszystkich ciągów, które mogą być generowane przy użyciu tego procesu: .

Zobacz też

Referencje

  1. ^ Patrz Klaus Reinhardt: Prioritatszahlerautomaten und die synchronizacji von Halbspursprachen ; Fakultät Informatik der Universität Stuttgart; 1994 (niemiecki)