1 1. ALFABET, SŁOWA I JĘZYKI FORMALNE
Transkrypt
1 1. ALFABET, SŁOWA I JĘZYKI FORMALNE
1. ALFABET, SŁOWA I JĘZYKI FORMALNE - podstawowe definicje. A. ALFABET Alfabetem nazywamy dowolny niepusty zbiór skończony. Elementy alfabetu nazywamy symbolami. B. SŁOWA Słowem z alfabetu Σ nazywamy dowolny, skończony ciąg symboli ze zbioru Σ. Zbiór wszystkich słów z alfabetu Σ nazywamy słownikiem (dopełnieniem) alfabetu Σ i oznaczamy symbolem Σ*. Słowem pustym nazywamy ciąg 0 symboli i oznaczamy go przez λ. Słowo puste jest słowem z każdego słownika ale nie jest symbolem żadnego alfabetu. Jeżeli jakiś symbol występuje kolejno po sobie n razy to stosujemy zapis potęgowy. Parametry słów: |A| - długością słowa tzn. ilość symboli ciągu tworzącego dane słowo. Słowo λ ma długość 0. |A(x)|- liczbę wystąpień znaku x w słowie . Działania na słowach: Złożeniem (konkatenacją) słów A=a1…an, B=b1…bm, nazywamy słowo AB=a1…anb1…bm. Potęgą n-tą słowa A nazywamy n krotne złożenie słowa A: Transpozycją słowa A=a1 a2…an nazywamy słowo AT=an… a2a1. Przyrostki, przedrostki i podsłowa: Przyrostkiem (przedrostkiem) słowa A z alfabetu Σ nazywamy dowolne słowo słowo , dla którego istnieje spełniające warunek: A=CB (A=BC) Podsłowem słowa A z alfabetu Σ nazywamy dowolne słowo , dla którego istnieją słowa B i D (nad tym alfabetem) spełniające warunek: A=BCD C. JĘZYKI FORMALNE Językiem formalnym nad alfabetem Σ nazywamy dowolny podzbiór słownika Σ*. Działania na językach formalnych: Niech L, Ł będą dowolnymi językami nad alfabetem Σ. Wówczas określamy: sumę języków L i Ł jako zbiór: L + Ł := L ∪ Ł := { A∊Σ*: A∊ L ∨ A ∊ Ł } iloczyn języków L i Ł jako zbiór: L ∩ Ł := { A∊ Σ*: A∊ L ∧ A ∊ Ł } różnicę języków L i Ł jako zbiór: L \ Ł := { A∊ Σ*: A∊ L ∧ A ∉ Ł } złożenie języków L i Ł jako zbiór: L · Ł := { AB∊ Σ*: A∊ L ∧ B ∊ Ł } domknięcie języka L jako zbiór: L* := ∪i≧0 Li domknięcie dodatnie języka L jako zbiór: L+ := ∪i≧1 Li dopełnienie języka L jako zbiór: L’ := Σ* \ L Własności języków formalnych Tw. Dla dowolnych języków formalnych L, Ł nad alfabetem Σ zachodzą następujące własności: a) L ⊂ L* b) jeżeli L ⊂ Ł, to L*⊂ Ł* c) (L*)* = L* 1