Düzenli ifadeler, düzenli gramerler ve sonlu otomata aynı şey için sadece üç farklı biçimciliktir. Herhangi birinden diğerine dönüştürmek için algoritmalar vardır.
Üçünün hepsine sahip olmamızın temel nedeni, bağımsız olarak yaratılmış olmalarıdır, ilk denklem seti (ayrıca başka birçok formalizm de vardır) Kleene tarafından kanıtlanmıştır (bu sonuç veya bir kısmına Kleene Teoremi denir).
Bu bağlamda, modelleri hangi yönde çalıştırmak istediğinize bağlı olarak, hepsi normal bir dilin dizelerini tanır veya oluşturur ve matematiksel olarak, bu anlamda bir fark yoktur.
Elbette, biçimselliğin detayları nedeniyle bazen bir modelin belirli bir görev için diğerinden daha kolay kullanılması mümkündür. Dahası, bir insanın kafasında çalışma şekli, bilgisayarlar gibi biraz farklı, sonlu bir otomata "hissetmek", normal ifadeler, daha küçük alt dizelerden ve normal gramerlerden daha fazla bir dilbilgisi gibi "hissetmek" gibi "hissetmek" bir dilde bir cümlenin türetilmesi veya sınıflandırılması (tarihe baktığınızda şaşırtıcı olmayan bir şekilde).
İkisini karşılaştırmak için, bunları tanımlayalım:
Düzenli ifadeler
Dolayısıyla düzenli ifadeler özyinelemeli olarak şu şekilde tanımlanır:
- ∅ normal bir ifadedir
- ε normal bir ifadedir
- a ∈ Σbir , her için düzenli bir ifadedira ∈ Σ
- eğer ve düzenli ifadeler daha sonra
BbirB
- A ⋅ B normal bir ifadedir (birleşme)
- A ∣ B normal bir ifadedir (alternatif)
- bir* düzenli bir ifadedir (Kleene yıldızı)
Bazı semantiklerle birlikte (yani operatörleri dize almak için nasıl yorumladığımız), normal bir dilde dize oluşturma yöntemi elde ederiz.
Düzenli Gramerler
Düzenli dilbilgisi dört tuptan burada terminal olmayanlar kümesidir, terminaller kümesidir, başlangıç terminali değildir ve kümedir Başlangıç sembolünü adım adım nasıl içinde bir dizeye değiştireceğimizi söyleyen yapımlar . , üretimlerini iki türden birinden alabilir (her ikisi de değil):N Σ S P Σ ∗ P( N, Σ , P, S∈ N)N-ΣSPΣ*P
Sağ Doğrusal Gramerler
, , terminal olmayan terminaller ve boş dizesi için tüm kurallar şu şekildedir:C a εBCaε
- B→a
- B→aC
- B→ε
Sol Doğrusal Gramerler
Sol doğrusal dilbilgisi aynıdır, ancak # 2 kuralı .B→Ca
Ponder Gezilecek Yerler
Bu tanımlara bakarak ve onlarla oynadığımızda, normal ifadelerin eşleşen kurallara veya her seferinde dizelerle başa çıkma yollarına benzediğini görebiliriz.
Gramerler dizenin bölümlerini "etiketliyor" gibi görünüyor ve dizeyi doğrulamak için etiketleri yeni etiketler altında gruplandırıyor gibi görünüyor (yani dizeye veya tam tersi olursa mutlu oluruz).S
Ancak bunlar gerçekten aynı temel şeyi yapıyor ve işlevlerinin metaforuna nasıl baktığınız gerçekten size kalmış.