2.2 Diller ve Yapıları
Dilleri kabaca düzenli ve bağlam duyarsız (context-free) olarak sınıflandırabiliriz.
Burada düzenli'nin anlamı, belirli bir grafik algoritması içinde herhangi
bir kelimenin
o dilden olup olmadığına karar verebilmemizdir. Örneğin: yanyana üç sıfır
haricinde
herşeyi kabul eden dil düzenlidir. Bunun için aşağıdaki gibi bir DFA oluşturabiliriz.
Fakat içinde a ve b harflerini eşit sayıda barındıran bir dil düzenli değildir.
Bunun
nedeni a ve b harlerinin sayılarını tutamıyor olmamız.
Asıl sorun ise bütün işe yarayan dillerin düzenli olmaması. Türkçe sonsuz
bir dildir.
Örneğin: Büyük bir dolaptaki çekmeceden bahsederken 'içindeki' deriz. O
çekmecenin
içindeki bir kutu için 'içindekindeki', onun içindeki için 'içindekindekindeki'
.... Ayrıca
sağdan eklemeli bir dil olması işleri ayrıca zorlaştırmaktadır. Türkçede
4000 kadar fiil
ve bunların herbirine gelebilecek 2000 kadar ek olması, bazı düzenli dillerdeki
gibi
kelime listesi kullanarak imla kontrolü yapmamızı imkansızlaştırmaktadır.
Ancak genel
kullanımdaki kelimelerin listesiyle kontrol yapılabilir. Bu da pek sağlıklı
olmaz.