formel diller ve soyut makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... ·...

20
Biçimsel Diller ve Soyut Makineler (Formal Languages and Automata)

Upload: others

Post on 13-Jan-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Biçimsel Diller

ve

Soyut Makineler(Formal Languages and Automata)

Page 2: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Dil ve Formel Dil Kavramları

Dil, özellikle insanlar için, karmaşık iletişim sistemlerini edinme ve kullanmakapasitesi ya da bu karmaşık iletişim sistemlerinden herhangi birine verilenaddır.

Bir dilin formel olabilmesi için bazı niteliklerinin matematiksel kesinlikte tanımlıolması gereklidir. Bu özellikler;

Sembollerden oluşan bir alfabe ve

Bu alfabedeki sembollerden oluşan bir ifadenin dile uygun (well-formed) olupolmadığını belirleyen oluşum (formation) kurallarıdır.

Bu şekildeki ilk formel dil Gottlob Frege tarafından 1879 yılında tanımlanmış olupbirinci dereceden mantık (first-order logic) olarak adlandırılmaktadır.

Formel diller özellikle dilbilim ve bilgisayar bilimleri açısından önem taşımaktadır.

Page 3: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Dilbilim ve Formel Diller

Dilbilimde formel diller, insan dilinin (yani doğal dilin) bilimsel bir şekilde

incelenmesi amacıyla kullanılmaktadır.

Dilbilimciler, üretimsel (generative) bir yaklaşıma önem verirler. Bunun

nedeni, bir dile göre kabul edilebilir herhangi bir cümlenin oluşturulmasında

kullanılabilecek (sonlu) kurallar kümesi olan dil düzeneğini / grameri

(grammar) tanımlama / ortaya koyma işiyle ilgilenmeleridir.

Bir gramer cümlelerin yalnızca biçimleriyle (form) ilgilenmekte olup,

anlamlarını tanımlamamakta, farklı bağlamlarda kullanımlarıyla da

ilgilenmemektedir.

Page 4: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Gramer ve Formel Diller

Noam Chomsky, 1957 yılında yayınlanan Syntactic Structures (Sözdizimsel

Yapılar) adlı kitabında dilsel bilginin formel bir gramer kullanarak

modellenebileceğini ortaya koymuştur.

Chomsky, formel gramerlerin konuşmacı ya da dinleyiciye sonsuz sayıda

cümleyi sınırlı sayıda gramer kuralı ve sonlu sayıda terimle üretme ve

yorumlama yeteneği kazandırdığını kurduğu modelle göstermiştir.

Chomsky’e göre insan beyni, dilin düzenlenmesini sağlayan sınırlı bir kurallar

kümesine sahiptir ve bu kurallar kümesini Evrensel Gramer (Universal

Grammar) olarak adlandırmıştır. Gramerin temel kuralları beyinde

donanımsal olarak (yani doğuştan gelecek şekilde) kodlanmıştır ve

öğretilmelerine gerek kalmadan kendilerini kullanıma sokmaktadırlar.

Page 5: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Gramer ve Formel Diller

Chomsky, formel gramerleri artan ifade gücünü temel alacak şekilde

sınıflandırarak birbirinden ayıran hiyerarşik bir yapı önermiştir.

Bu hiyerarşideki her bir üst sınıf kendinden altta olan sınıflara göre daha

geniş bir formel dil üretim kapasitesine sahiptir.

Gerçekte de bu hiyerarşiye uygun biçimde doğal dilin bazı boyutları için

daha karmaşık formel gramerlere ihtiyaç duyulmaktadır.

Örneğin, bir düzenli dil (regular language) Türkçe’nin morfolojik yapısını

modellemede yeterli olmaktayken, sözdizimini modellemede yetersiz

kalmaktadır.

Page 6: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Chomsky Hiyerarşisi

Grammar Type Grammar Accepted Language Accepted Automaton

Type 0 Unrestricted grammar Recursively

enumerable

language

Turing

Machine

Type 1 Context-sensitive grammar Context-sensitive

language

Linear-

bounded

automaton

Type 2 Context-free grammar Context-free

language

Pushdown

automaton

Type 3 Regular grammar Regular language Finite state

automaton

Page 7: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Bilgisayar Bilimleri ve Formel Diller

Bilgisayar bilimlerinde formel diller programlama dillerinin kesin ve katı kurallarınıtanımlamada kullanılmaktadır. Bu yönüyle derleyicilerin de temellerinioluşturmaktadırlar.

Bir derleyici, bir programlama dilinde (kaynak dil) yazılmış olan bir kaynakkodun başka bir bilgisayar diline (hedef dil) dönüştürülmesi işini yerine getirenprogram ya da programlar kümesidir.

Derleyicilerin en genel amacı, kaynak kodun çalıştırılabilir bir program halinegetirilmesi için dönüştürülmesidir.

Bu amaçla bilgisayar bilimlerinde önem verilen, soyut makinelere (otomatlar)dayanan bir tanıma (recognition) yaklaşımıdır. Bu yaklaşımda soyut makine birgirdi cümlesi almakta ve bu cümlenin referans alınan dile ait olup olmadığınıbelirlemektedir.

Page 8: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Derleyiciler

Page 9: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Derleme Aşamaları

Page 10: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Otomatlar ve Formel Diller

« Automata » terimi Yunancadan gelmekte ve « kendi kendine eylemde bulunabilen »anlamına gelmektedir.

Bir otomat, önceden belirlenmiş bir işlemler dizisini takip ederek kendiliğinden çalışabilensoyut bir bilgisayım cihazıdır.

1950’lerde Stephen Kleene, sonlu bir bellekle donanmış soyut durum makineleri olan sonluotomatları ortaya atmıştır.

Kleene, bu modelle temel mantıksal öncülleri kullanarak böyle bir modelin sembol dizileriile eşleniklik gösterdiğini belirtmiştir.

Alan Turing (ve ondan bağımsız olarak Emil Post ile John Backus), bas-bırak otomatlarının(push-down automata) ardında yatan düşünceleri ortaya koymuşlardır.

Alan Turing, 1936’da Turing Makinesi kavramını ortaya atmıştır. Bu makine, bir soyut durummakinesi olup, şerit şeklinde sonsuz bir belleğe sahiptir. Turing makineleri, herhangi biralgoritmanın işleyişinin benzetimini yapabileceği gibi daha yüksek seviyelerdeki biçimseldilleri de tanıyabilmektedir.

Page 11: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Otomatlar ve Gramerler

Hangi formel dil sınıfı hangi otomat türüyle tanınabilmektedir?

Chomsky hiyerarşisi ile farklı tipteki otomatlar arasında bir eşleniklik vardır. Bu

nedenle formel dillere ilişkin kuramlar hem gramerler hem de otomatlar olarak

ele alınabilmektedir.

Page 12: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Chomsky Hiyerarşisi

Page 13: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Formel Dillerin Betimlenmesi: Üretimsel

(Generative)Yaklaşım

Üretimsel yaklaşımda bir dil, bir gramer tarafından üretilen karakter

katarlarının (string) kümesidir.

Bu yaklaşımdaki üretim süreci;

bir başlangıç sembolü ile başlama,

yeniden yazma (rewrite) kuralları ile genişletme,

dile ait bir ifade üretildiğinde de durma şeklinde gerçekleştirilmektedir.

Page 14: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Formel Dillerin Betimlenmesi: Tanıma

(Recognition)Yaklaşımı

Bu yaklaşıma göre bir dil bir otomat tarafından kabul edilen ifadeler /

katarlar kümesidir.

Bu yaklaşımdaki tanıma süreci;

Bir başlangıç durumu ile başlama,

Katardaki semboller yardımıyla diğer durumlara geçişler,

Bütün katar tükendiğinde kabul durumuna ulaşma ya da katarın belirli bir

konumunda reddetme şeklinde olmaktadır.

Page 15: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Formel Diller: Tanımlar ve Temel

Kavramlar

Bir formel dil, o dilin üzerinden tanımlanmış olduğu alfabedeki sembollerin

kullanımıyla oluşturulan sonlu karakter dizilerinin / ifadelerin kümesidir.

Alfabe, sonlu ve boş olmayan bir semboller kümesidir.

∑1 = {0, 1}

∑2 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

∑3 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}

∑4 = {a, b, c, ...., z}

Page 16: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Formel Diller: Tanımlar ve Temel

Kavramlar

Bir ∑ alfabesi üzerinde tanımlı olan bir katar (ya da kelime), ∑ alfabesindeki

sembollerden oluşan sonlu bir dizidir.

1010 ϵ ∑1

123 ϵ ∑2

merhaba ϵ ∑4

Bir alfabedeki her sembol kendi başına bir katardır.

ε veya λ boş katardır ve sembol içermez.

Page 17: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Formel Diller: Tanımlar ve Temel

Kavramlar

|w|, w katarının uzunluğudur.

|a| = 1

|125| = 3

| ε | = 0

Bir ∑ alfabesinin k’ıncı kuvveti (k-th power), o alfabedeki semboller

kullanılarak oluşturulan k uzunluğundaki katarların kümesidir.

∑0 = herhangi bir ∑ için {ε}

∑11 = {0, 1}

∑12 = {00, 01, 10, 11}

Page 18: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Formel Diller: Tanımlar ve Temel

Kavramlar

Bir ∑ alfabesi için tanımlanan Kleene sonlandırıcıları (closures) şunlardır;

∑ alfabesi için ∑* bu alfabeden oluşturulan boş katar da dahil olmak üzere tümkatarların kümesini göstermektedir ve Kleene Yıldızı (Kleene Star) olarakadlandırılmaktadır.

Gösterimi : ∑* = ∑0 ∪ ∑1 ∪ ∑2 ∪…….

Örnek − Eğer ∑ = {a, b} ise ∑*= {λ, a, b, aa, ab, ba, bb,………..}

∑ alfabesi için ∑+ bu alfabeden oluşturulan boş katar hariç tüm katarlarınkümesini göstermektedir ve Kleene Artısı (Kleene Plus) olarakadlandırılmaktadır.

Gösterimi : ∑+ = ∑1 ∪ ∑2 ∪…….

∑+ = ∑* − { λ }

Örnek − Eğer ∑ = { a, b } ise ∑+ ={ a, b, aa, ab, ba, bb,………..}

Page 19: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Formel Diller: Tanımlar ve Temel

Kavramlar

Formel dilin matematiksel tanımı: belirli bir ∑ alfabesi için ∑* nin herhangi bir

alt kümesi bir dildir.

İngilizce, Türkçe, Çince,...

C, Pascal, Java, HTML,...

İkili tabandaki asal sayılar:

{10, 11, 101, 111, 1011, ... }

{ε}

Page 20: Formel Diller ve Soyut Makinelerpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-01 · Turing Machine Type 1 Context-sensitive grammar Context-sensitive language

Formel Diller: Tanımlar ve Temel

Kavramlar

L1 ve L2 dillerinin sırasıyla ∑1 ve ∑2 alfabeleri üzerinden tanımlanmış diller

olduğunu kabul edersek;