HESAP Hesap soyut bir süreçtir. Bu çarpıcı ifade üzerine bazıları, hesaplayıcı dediğimiz somut makinelerde cereyan eden somut süreçlerin nasıl olup da hesap sayılmayacağını sorgulayabilirler. Bunun basit şekildeki bir cevabı şöyledir: Soyut düzey Somut düzey (kesiklik var; süreklilik örnekleniyor) Hesap sürecinin zaman ekseninde geçtiği durumlar q,, q n p [z, z ],, p [z n-, z n ] Somut sürecin zaman ekseninde geçtiği durumlar Hesap sürecinin başlangıç durumu q p z Somut sürecin başlangıç durumu Hesap sürecinin son durumu q n p Zn Somut sürecin son durumu (süreklilik var) süreklilik örnekleniyor Meselâ, bir hastanın ateşi sürekli, onun hemşire tarafından izlenişi kesikli. Bir hesap gerçekleştirilirken onun bir ortamı ve bir de kullanılan nesneleri vardır. Hesap ortamlarına genel olarak hareketliler diyoruz. Hesabın temel öğelerinden birisi simge dir. yapılabilmesi için bir ortam ve bir de hesap nesne gerekir. Hareketliler soyut hesap mekanizmalarını oluştururlar. Hesapta kullanılan nesnelerin soyut karşılığı da simgelerdir. Simgeler: yorumsuz soyut hesap nesneleridir. Onların anlam ifade etmesi için yorum fonksiyonları kullanılır. 3+5=8 3: şekilcik Bunun temsil ettiği bir simge var. Bu simge 3 simgesidir. Farklı { 3 } şekilcikler 3 (somut) 3 Temsil ettikleri 3 simgesi (soyut) yorum Anlam(ör. sıfırdan sonraki üçüncü doğal sayı) ş Temsil bağıntısı s Yorum bağıntısı a ş 2 s 2 a 2 Ş: Şekilcikler kümesi Elemanları: (Somut) şekilcikler S: Simgeler kümesi Elemanları: (Soyut) simgeler A: Anlamlar kümesi Elemanları: (Soyut) Anlamlar Nesne Nesne yazılış 998-29 D. Çalıkoğlu - -
isim Anlam söyleniş Simge Nesne yazılış Şekilcik Anlam Okunuş Simge - isim Şekilcik Simge dizgisi Şekilcik dizgisi F : A B Yorum fonksiyonu Hesap ve Dil Teorisine Giriş Hesabın Esası: Hareket. Herhangi bir yerde hareket yoksa hesap olmaz. Hareket varsa o, tâbi olduğu kurallar çerçevesinde bir hesaptır. Ör. Güne bakan çiçeğinin, güneşe doğru dönmesi, ekilen bir tohumdan çıkan filizin yukarı, kökün aşağı doğru büyümesi. Hareket: Durum değiştirmek Durum değiştirebilmek için: Birden fazla muhtemel duruma sahip olmak lâzım. (En basit örnek, flip-flop daki ve durumu) Ele aldığımız Hesap Teorisi çerçevesinde Hesap Mekanizmaları: Hareketliler «Automata» (Tekil olunca: «Automaton») Hesap Nesneleri: Simgeler Simgeler: Yorumsuz, soyut hesap nesneleridir. Yorum ilave edilmediği takdirde, biz hiçbir yorum varsayamayız. (< gibi düşünemeyiz.) Yorumsuz bir nesneye yorum kazandırışın resmî (matematiksel) bir yolu, bir Yorum fonksiyonu ile bir anlam a nişanlamaktır. Yorum fonksiyonu f: A B A kümesi a yorumsuz soyut simgeler a 2 B kümesi anlamlar b b 2 A ile temsil edilen kümeden B ile temsil edilen anlamlar kümesine bir fonksiyon tanımlanmış. Yorumsuz soyut elemanlar kümesinde x diye bir soyut eleman olsun. x f(x) Yani x den f(x) e gitmek yorumdur. 3+5=2 şeklinde bir yazılış olsun. Bu nedir? Doğru mudur, yanlış mıdır? 998-29 D. Çalıkoğlu - 2 -
Böyle bir yazılışın doğru mu, yanlış mı, olduğunu tartışmadan önce, kuralını ve anlamını ortaya koymak gerekir; çünki doğru veya yanlış olmak ifadenin kendinden değil, ait olduğu mantık sisteminden gelir. Bunun aslı, yorumsuz bir simge dizgisidir. 3 simgesi, 2 den sonra geldiğini bildiğimiz sayı mı yoksa salt bir simge midir? Aynı şekilde + da bir işarettir. Diğer bir deyişle bu ifade örneğin, yaygın olarak bilinen aritmetik sisteminin doğru ifadelerinden değildir, fakat mod 6 aritmetiği sisteminin doğru ifadelerindendir. Teorik hesap mekanizması neyin üzerinde hesap yapacak, simgeler üzerinde hesap yapacak. Örnek: Önümüzde bir makine var ve bu makinenin girdisi ve çıktısı olsun. Aşağıdaki şekilde gösterildiği gibi. Girdi Girdi şeridi: Kafa: q Okuyuş Yönü: Birden fazla durumu gösteren modeller: Başlangıç Durumu İşareti: Çıktı q q q : lamba yanıyor durumu. Girdi olursa q da kalsın. Burada makina q durumuna girdiği zaman lamba yanıyor. q q, q 2 Buradaki ve lar yorumsuz. girdi şeridi bu hesap mekanizmasına verildiği zaman, q dan başlar ve şöyle işler: Gelen girdiler: Durum geçişleri: q q q 2 q q q q 2 q 2 Yani geldiği zaman q dan q e gider. Bu ve 'lerin her bir tanesi bir simgedir. girdi şeridinin tamamı da simge dizgisi adını alır. Bu dizgiyi = u olarak gösterelim, bunun uzunluğu u = 7 deriz. Teorinin daha geniş olabilmesi için, bir de uzunluğu olan, (Uzunluğu olmayan değil!) ve ε (epsilon) ile gösterilen bir "boş dizgi" tanımlanır. Yani ε, içinde hiç simge olmayan bir dizgidir. ε = Bitişim işlemi(simge dizgileri üzerinde): y = aab, z = ba olsun, y.z = aab.ba = aabba işte bu, y ile z nin bitişimidir. ε, bitişim işleminin etkisiz elemanıdır. Her hangi bir u dizgisi için, u.ε = ε.u = u olur. Tanım(Alfabe): Alfabe, sonlu ve boş olmayan bir simge kümesidir, genellikle ile gösterilir. 998-29 D. Çalıkoğlu - 3 -
ör. = {a, b} 2 simgelik bir alfabe. örnekler: {} {,} {a,b} {A,...,Z} dizgi«string»: sonlu simge dizgisi (,, gibi) ε: boş dizgi bitişim işlemi: = y, her hangi bir dizgi olsun. ε y= y ε=y ε bitişim işleminin etkisiz öğesi. Tanım(y i ): y, her hangi bir dizgi olsun. Özyineleyişli tarzda bir tanım: y = ε y i = y y i- (i için) ör. 3 = L ve L 2 birer dil olsun. (Elemanları dizgi olan kümeler) L ve L 2 kümelerinin bitişimi: L L 2 = {u u 2 u L, u 2 L 2 } olarak tanımlanır. Bu tanıma uyan, bu kümenin elemanıdır. {aab, bc} {aba, ba} = {aababa, aabba, bcaba, bcba} aabba {aab, bc} {aba, ba}?... Evet çünki, aabba= aab ba ve aab {aab, bc}, ba {aba, ba} aaba {aab, bc} {aba, ba}?... Hayır çünki,... L her hangi bir dil olsun; Dillerin bitişiminde etkisiz eleman: {ε} {ε} L = L {ε}= L (L = {u u L }) A: küme A = A =A ( etkisiz eleman) Dillerin bitişiminde yutan elemandır: Genelde boş kümeyi temsil eden, diller bağlamında, "boş dil"i yani içinde hiç dizgi olmayan dili temsil eder. Dolayısıyla tanıma göre, L = L = Açıklayış: A, eğer A bir küme ise kümenin niceliğini, dizgi ise de dizginin uzunluğunu (bir doğal sayı) ifade eder. Tanım(L i ): L, her hangi bir dil olsun. Özyinelemeli tarzda bir tanım: L = {ε} L i = L L i- (i için) Kaydedelim ki, i = { {ε} eğer i = ise eğer i ise Her hangi bir L dili için, L -nin yıldızı şöyle tanımlanır: L * = U (i ) (L i )= L U L U L 2 U L * Sonlu mu? (olabilir, ne durumda?) 998-29 D. Çalıkoğlu - 4 -
== Her simge, aynı zamanda, bir uzunluğunda bir dizgidir. Dolayısıyla, her alfabe de bir uzunluğundaki dizgilerden oluşan (üstelik sonlu) bir dildir. Buna göre, L yerine bir Σ alfabesi alınacak olursa, Σ * : Σ -nın elemanları haricinde simge bulunmayan bütün dizgiler kümesi olur. Şöyle ki, Σ * = U (i ) (Σ i )= Σ U Σ U Σ 2 U... Σ * kümesinin oluşumuna bakalım: Σ : Sıfır uzunluğundaki bütün dizgiler (ki yalnız ε -dan ibaret) bunu oluşturur. Σ : Bir uzunluğundaki bütün dizgiler (yani Σ -nın elemanları) bunu oluşturur. Σ 2 = Σ Σ: İki uzunluğundaki bütün dizgiler bunu oluşturur.... vs. Alıştırım: Genelde i için Σ i = Σ i denebilir mi? Σ = {a, b} için Σ * = { ε, a, b, aa, ab, ba, bb, aaa, aab,...} Bu tanıma göre, (Σ boş olamayacağından dolayı) Σ * sonsuz bir kümedir. Fakat elemanlarının hiç birisinin uzunluğu sonsuz değildir. Bir Σ alfabesi için, L Σ * olduğu takdirde L, Σ alfabesinde bir Dil dir. (Σ *, Σ içindeki elemanlarla oluşturulabilecek bütün dizgileri kapsar.) (Σ *, ) bir monoid olmaktadır. Diller Diller, doğal diller ve resmi diller olarak ikiye ayrılır. Doğal Diller: İnsanların doğduktan sonra ana dil olarak toplumlarından öğrendikleri ve bireyler arası iletişim kurmakta yararlandıkları ifade sistemleri (Türkçe, İngilizce). Bunlar resmi tanıma bağlı değildir. Doğar, gelişir ve hatta latince dilinde olduğu gibi ölür. Resmi Diller: Kavramsal varlıkları matematiksel (resmi) tanımla küme kavramı kullanılarak ortaya konur. Üyelik kuralları (bir dilde hangi cümlelerin olduğu) sabittir. Yani bir elemanın bir resmi dile ait olup olmadığı sabit bir kuralla ifade edilir. Bilgisayar bilimlerinde daha çok resmi diller inceleniyor. Aynı zamanda hesap teorisi gibi konulara da eğiliniyor. Özellikle dil teorisinde dilleri ayırt eden mekanizmalar var. u : Evrensel şekilcik kümesi (sonlu) [Bknz. Matematik Sohbeti ] u * : Evrensel dizgi kümesi ( sayılabilir sonsuz) Kuvvet kümesi: power set = 2 u* sayılamaz sonsuz Rakamlar kümesi = {,, 2,...,9} rakamları simge olarak kullandığımız zaman oluşturduğumuz dizgiler var. Rakamlar kümesi = R diyelim. L N = ((R {}) R * )U {}= {,,2,,9,,,2,,99,,,2, } Bu, bütün doğal sayıların, en solda sıfır kullanmamak şartıyla, tabanındaki yazılışlarından oluşan dizgiler kümesinin ifadesidir. Bu küme de bir dildir. f nn : L N N şeklinde öyle bir tam, - ve örten bir işlev vardır ki, her bir u L N için, f nn (u)= n u olup, n u, u -nun ifade ettiği sayıdır. Bir L X L N olsun, N X = {f nn (u) u L X } şeklinde, L X -e tekabül eden, doğal sayıların bir alt kümesi vardır. 2 L N = {L L L N } L N -nin kuvvet kümesinin tanımı bu şekilde yapılır 998-29 D. Çalıkoğlu - 5 -
ve bu küme sayılamaz sonsuzdur. f nn işlevini, 2 L N -yi, 2 N -ye nişanlayacak şekilde genişletelim. f nn (L X )= N X.. Bütün sonlu tanımlar, u * -ın elmanı olduğu ve tamamı sadece sayılabilir sonsuz çoklukta olduğuna göre, buna karşılık diller sayılamaz sonsuz çoklukta olduğuna göre, sonlu tanımı bulunmayan diller vardır. 998-29 D. Çalıkoğlu - 6 -