Formel Diller ve Soyut Makineler

Slides:



Advertisements
Benzer bir sunumlar
Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
Advertisements

Yrd. Doç. Dr. M. Fatih HOCAOĞLU Mühendislik ve Mimarlık Fakültesi Endüstri Mühendisliği Bölümü.
BAS-BIRAK OTOMATLARI (YIĞITLI ÖZDEVİNİRLER)
SONLU DURUM OTOMATLARI
SONLU DURUM OTOMATLARI
TURING MAKİNELERİ Yılmaz Kılıçaslan.
Özyinelemeli(Recursive) Algoritma Tasarımı
SONLU DURUM OTOMATLARI
Sonlu Durum Makinesi M=(S, I, O, f, g, s0) S:durumlar kümesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bağlama Duyarlı Diller
SONLU OTOMATLARIN PROGRAMLANMASI
Derleyici Teorisine Giriş
PROLOG PROGRAMLAMA DİLİNDE
DÜZENLİ İFADELER Regular Expressions Edip Serdar GÜNER.
DÜZENLİ GRAMERLER Yılmaz Kılıçaslan.
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ
BAĞLAMDAN BAĞIMSIZ GRAMERLER ÖZYİNELEMELİ GEÇİŞ AĞLARI (Chomsky Hiyerarşisi: Tip 2) Yılmaz Kılıçaslan.
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ
BAĞLAMA DUYARLI GRAMERLER
BAĞLAMA DUYARLI GRAMERLER
BAĞLAMA DUYARLI GRAMERLER
SONLU DURUM OTOMATLARININ PROGRAMLANMASI
Otomata Teorisinin Uygulama Alanları
DÜZENLİ İFADELER Regular Expressions.
BİL 102 BİLGİSAYAR PROGRAMLAMA DERS 1. PROGRAM GELİŞTİRME AŞAMALARI 1- Probleme ilişkin veriler nelerdir? 2- Çözüm yöntemi nasıl olacaktır? 3- Çözüm sonucunda.
Sözcüksel Çözümleme/Analiz (Lexical Analysis)
Biçimsel Diller ve Soyut Makineler
SONLU OTOMATLAR Yılmaz Kılıçaslan.
Sentaks (Sözdizim) ve Semantik (Anlam)
BISON (YACC) (Yet Another Compiler Compiler)
Değişkenler Programda Değişken Tanımlama. Değişken nedir? (Variables) Program içinde kullanılan veri(data)nin tutulduğu alanın adıdır. Her veri bir tür.
Bölüm 3: Sentaks ve Semantiği Tanımlama
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Biçimsel Diller ve Soyut Makineler Push-Down Automata (PDAs)
NFA-, NFA, DFA dönüşümü 1.
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ - Sayılabilirlik - Yılmaz Kılıçaslan.
Biçimsel Diller ve Soyut Makineler
Biçimsel Diller ve Soyut Makineler
Regüler İfadeler ve Regüler Diller
Biçimsel Diller ve Soyut Makineler
Formel Diller ve Soyut Makineler
Algoritma ve Akış Şemaları
Formel Diller ve Soyut Makineler
Formel Diller ve Soyut Makineler
SEMBOLLER.
Formel Diller ve Soyut Makineler
Turing Machines Turing Makineleri.
DİL ÇEVRİMİ Yüksek düzeyli bir dilde yazılmış bir program ancak makine diline çevrilerek bir bilgisayarda çalıştırılabilir.
Sentaks ve semantik tarifi
PROGRAMLAMAYA GİRİŞ FORTRAN 77.
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Mühendisliğine Giriş
NİŞANTAŞI ÜNİVERSİTESİ
BLGM471 Özdevinirler Kuramı
Belirsiz Sonlu Özdevinirler
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Ortam Bağımsız Dillerin Özellikleri
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Algoritmalar II Ders 9 Dinamik Programlama ve Açgözlü Yaklaşım Soruları.
OBG’nin ABÖ’ye Dönüştürülmesi ABÖ’nün OBG’ye Dönüştürülmesi
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
ÜÇGENLER. A B C C kenarı a kenarı b kenarı A B C.
NİŞANTAŞI ÜNİVERSİTESİ
Ortam-Bağımsız Gramerler (OBG)
Altbasımlı Özdevinirler
Sunum transkripti:

Formel Diller ve Soyut Makineler BAĞLAMDAN BAĞIMSIZ gramerler CONTEXT – FREE GRAMMARS

Chomsky Hiyerarşisi Karmaşıklık Özyinelemeli - Sayılabilir Diller : Turing Makinesi (Recursively – Enumerable Languages : Turing Machine) Bağlama - Duyarlı Diller : Doğrusal – Sınırlandırılmış Otomatlar (Context – Sensitive Languages : Linear – Bounded Automata) 1 2 3 Bağlam - Bağımsız Diller : Bas – Bırak Otomatları (Context – Free Languages : Push – Down Automata) Düzenli Diller : Sonlu - Durum Otomatları (Regular Language : Finite – State Automata) *(Dil : Otomat)

Bağlamdan Bağımsız Diller Tip – 2 düzeyinde yer alan ve düzenli gramerler / ifadeler / diller’den daha yüksek ifade gücüne sahip bir dil sınıfıdır. İfade gücü daha yüksek olsa da tüm olası dilleri tanıma imkanına sahip değildir. Ardında yatan temel düşünce «değişkenlerin» dizgelere (string) karşılık gelecek şekilde kullanımıdır. Bu değişkenler özyinelemeli (recursive) bir şekilde birbirleri üzerinden tanımlanırlar. Bu düzeydeki dillerin tanımı için özyinelemeli bir notasyona sahip olan Bağlamdan Bağımsız Gramerler (CFG) kullanılır. Kullanım alanları: Ayrıştırma (parse) ağaçları Derleyiciler XML

Tip – 3’den Tip – 2’ye Geçiş a(a|b)*b Bu düzenli ifade ile; önce bir a, ardından 0 veya daha fazla sayıda a ya da b, son olarak da bir b sembollerinden oluşan dizgeler tanımlanır. Yani bu düzenli ifade ön, orta ve son kısım olmak üzere 3 parçaya ayrılabilir. Ön kısım: a Orta kısım: (a|b)* Son kısım: b

Tip – 3’den Tip – 2’ye Geçiş S bir dilde bir dizge, M de orta kısım olmak üzere; S → aMb şeklinde bir kural yazılabilir. Buradaki M a veya b sembollerinden oluşabilir. M → A ve M → B iki yeni kural olup, A ve B dile ait dizgelerdir. A → ε, A → aA ve B → ε, B → bB aaab dizgesi aşağıdaki gibi oluşturulur: S → aMb S → aAb (M → A) S → aaAb (A → aA) S → aaab

Bağlamdan Bağımsızlık Kurallarla değiştirme işlemi, sadece değişecek sembol üzerinde yapılır ve önündeki ya da ardındaki kısımlara bakılmaz. Bu nedenle bağlamdan bağımsız (context - free) olarak adlandırılır. S, A, B ve M terminal olmayan a, b ve ε ise terminal semboller olarak adlandırılır. Tüm dizgeler sadece terminal sembollerden oluşabilir.

Bağlamdan Bağımsız Gramerler Bir bağlamdan bağımsız gramer G = (N, T, R, S) şeklinde tanımlanır. N, terminal olmayan semboller kümesi T, terminal semboller kümesi R, üretim kuralları S, başlangıç sembolü Kurallar uygulanarak dile ait tüm dizgeler elde edilebilir. Oluşturulan L(G) dili bağlam bağımsız dil olarak adlandırılır.

Örnek Programlama dilleri için doğru yazılmış aritmetik ifadeler gösteren dil.

Örnek Dengeli parantezler için CFG ve örnek üretim.

Örnek S → aS S → Bb B → cB B → ε S aS aaS aaBb aacBb aaccBb aaccb S aS

Örnek L = {0n1n : n > 0} S → 0S1 S → 01

Örnek İçinde alt dizge olarak «aba» barındıran tüm dizgeler. S → AabaA A →aA A →bA A → ε

Örnek L = {wwR : w ∈ (a + b)∗} S → aSa S → bSb S → ε