FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 3

Benzer belgeler
FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 1

Chomsky Hiyerarşisi. Düzenli Diller ve Đfadeler 03/09/2014. Doç.Dr.Banu Diri

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 2

Otomata Teorisi (BİL 2114)

Formal Diller Ve Otomat Teorisi

Otomata Teorisi (BİL 2114)

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Soruları A KİTAPÇIĞI

Otomata Teorisi (BIL 2114)

Derleyici Kuramı (Compiler Theory)

Otomata Teorisi (BİL 2114)

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Örnek Soruları A0 KİTAPÇIĞI

Dilbilgisi ve Diller

YZM Biçimsel Diller ve Otomata Teorisi. Ders#06

Otomata Teorisi (BİL 2114)

BM312 Ders Notları

Sonlu Durum ve Turing Makineleri

BAĞLAMDAN BAĞIMSIZ VE BAĞLAMDAN BAĞIMSIZ OLMAYAN DİLLER (CONTEXT-FREE AND NON-CONTEXT-FREE LANGUAGES)

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 3002

,$( -./(,$( 0$0$ (,$(

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Biçimsel Diller ve Özdevinirler (COMPE 326) Ders Detayları

Algoritma ve Akış Diyagramları

Semantik (Semantics): ifadelerin, deyimlerin, ve program birimlerinin anlamı Sentaks ve semantik bir dilin tanımı sağlar

Bilgisayar Bilimlerinde Hesaplama Kuramı

Belirteç Seçiminin Huffman Kodlaması Üzerine Etkisi

1 $/ " {ww R : w {a, b} * } ## S asa, S bsb S e#(3 * 5 $(6 )# (2 #$,(- (25 #5

BİLGİSAYAR MÜHENDİSLİĞİ

Otomata Teorisi (BİL 2114)

HESAP. (kesiklik var; süreklilik örnekleniyor) Hesap sürecinin zaman ekseninde geçtiği durumlar

BÖLÜM 2 Biçimsel Dillerin Matematiksel Temelleri

BAĞLAMDAN BAĞIMSIZ (CONTEXT-FREE) GRAMERLER (CFG) VE DİLLER (CFL)

! " # $ % & '( ) *' ' +, -. / $ 2 (.- 3( 3 4. (

1. BÖLÜM. Sayılarda Temel Kavramlar. Bölme - Bölünebilme - Faktöriyel EBOB - EKOK. Kontrol Noktası 1

Otomata Teorisi (BİL 2114)

Temel Excel Kullanım Bilgisi

! " # $ % & '( ) *' ' +, -. /) /) 0 # /) %, %, 1 2

Algoritma ve Akış Diyagramları

! " # $ % & '( ) *' ' +, -. /.,

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

BİÇİMSEL DİLLER VE OTOMATLAR

Önermeler mantığındaki biçimsel kanıtlar

DERS NOTLARI. Yard. Doç. Dr. Namık AKÇAY İstanbul Üniversitesi Fen Fakültesi

KÜMELER. İyi tanımlanmış nesneler topluluğuna küme denir. Bir küme, birbirinden farklı nesnelerden oluşur. Bu nesneler somut veya soyut olabilir.

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

ÖZEL EGE LİSESİ 10. OKULLARARASI MATEMATİK YARIŞMASI 10. SINIFLAR SORULARI

ÜNİTE 9 ÜNİTE 9 MICROSOFT EXCEL - II TEMEL BİLGİ TEKNOLOJİLERİ İÇİNDEKİLER HEDEFLER

DERS NOTLARI. Yard. Doç. Dr. Namık AKÇAY İstanbul Üniversitesi Fen Fakültesi

Lambda, Map, Filter ve Dizi Tamamlama

Algoritmalar ve Programlama. Algoritma

BMT 101 Algoritma ve Programlama I 2. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

VERİ TABANI I. Yrd.Doç.Dr. İlker ÜNAL. Teknik Bilimler Meslek Yüksekokulu

Tanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir.

PHP 2. Hafta. PHP de Kod Akışı. Algoritmik Düşünebilmek.

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Veritabanı Tasarımı. Düzenli İfadeler

! " # $ % & '( ) *' ' +, $ $ - $ (. $- $ ( / $ % / $ 0 -( 1( $ (2- -(

SINIF TEST. Üslü Sayılar A) 4 B) 5 C) 6 D) 7 A) - 5 B) - 4 C) 5 D) 7. sayısı aşağıdakilerden hangisine eşittir?

Kısmen insan davranışlarını veya sezgilerini gösteren, akılcı yargıya varabilen, beklenmedik durumları önceden sezerek ona göre davranabilen bir

DERS 2 : BULANIK KÜMELER

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR

KÜMELER VE MANTIK KESİLİ MATEMATİKSEL YAPILAR

Kafes Yapıları. Hatırlatma

C Konsol Giriş Çıkış Fonksiyonları

9. Sınıf Matemat k Ders İşleme Defter. Altın Kalem Yayınları

SAYILAR MATEMATİK KAF03 BASAMAK KAVRAMI TEMEL KAVRAM 01. İki basamaklı en küçük sayı : İki basamaklı en büyük negatif sayı :.

EĞİTİM ÖĞRETİM YILI LİDER ŞİŞLİ İLKOKULU/ORTAOKULU

Temel Kavramlar. (r) Sıfırdan farklı kompleks sayılar kümesi: C. (i) Rasyonel sayılar kümesi: Q = { a b

Regular Expressions ve grep, awk, sed ile Kullanımı

Algoritma ve Programlamaya Giriş

MIT Açık Ders Malzemeleri Bu materyallerden alıntı yapmak veya Kullanım Koşulları hakkında bilgi almak için

Lisans. Cebirsel Yapı

PROGRAMLAMAYA GİRİŞ DERS 2

Web Tasarımının Temelleri

(a,b) şeklindeki ifadelere sıralı ikili denir. Burada a'ya 1. bileşen b'ye 2. bileşen denir.

Sivas Fen Lisesi Ortaokul 2. Matematik Olimpiyatı Sınavı A A) 55 B) 50 C) 45 D) 40 E) 35

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

BİLGİSAYAR PROGRAMLAMA DERSİ

Bil 2114 Otomata Teorisi Çalışma Soruları ve Cevapları III (Hafta 7,8,9)

Bölüm 3. Sentaks ve semantik tarifi ISBN

Yrd. Doç. Dr. Ümit ATİLA

TEOG. Sayma Sayıları ve Doğal Sayılar ÇÖZÜM ÖRNEK ÇÖZÜM ÖRNEK SAYI BASAMAKLARI VE SAYILARIN ÇÖZÜMLENMESİ 1. DOĞAL SAYILAR.

T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A

MATEMATİK. Doç Dr Murat ODUNCUOĞLU

Oracle Database 11g: Introduction to SQL

Leyla Bugay Doktora Nisan, 2011

PASCAL PROGRAMLAMA DİLİ YAPISI

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Düzenli İfadeler & Kullanım Alanları

8.Konu Sonlu ve sonsuz kümeler, Doğal sayılar

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

Düzenli İfadeler & Kullanım Alanları

BLG311 Biçimsel Diller ve Otomatlar

AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI.

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

YGS MATEMATİK SORULARI !+7! 6! 5! işleminin sonucu kaçtır? A) 24 B)32 C)42 D)48 E)56. ifadesinin eşiti hangisidir?

Transkript:

FORMEL DİLLER VE SOYUT MAKİNALAR Hafta 3

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

CHOMSKY HİYERARŞİSİ - TİP 3 Düzenli İfadeler Düzenli Diller Sonlu Durum Otomatları Düzenli Gramerler

SONLU DURUM OTOMATLARI (FSA) m e e! q 0 q 1 q 2 q 3 q 4 DFSA e

SONLU DURUM OTOMATLARI (FSA) m e e! q 0 q 1 q 2 q 3 q 4 m e e e! NFSA q 0 q 1 q 2 q 3 q 4 ε

OTOMATLARIN DENKLİĞİ - 1 abc ve bac alt katarlarından en az birinin, en az bir kez içerildiği durumları tanıyan/arayan deterministik ve deterministik olmayan otomatlar Deterministik olmayan sonlu durum otomatları, deterministik sonlu durum otomatlarına göre problemlere daha soyut düzeyde ve daha kolay modellenebilir çözümler sunabilirler.

OTOMATLARIN DENKLİĞİ - 2

BOŞ GEÇİŞLİ SONLU DURUM OTOMATLARI (FINITE STATE AUTOMATA WITH Ɛ-MOVES) Boş geçişli sonlu otomatlar, deterministik olmayanlara benzer şekilde bir beşli olarak tanımlanır: DFA = <Q, Σ, δ, q 0, F> Q : Sonlu sayıda durum içeren durumlar kümesi Σ : Sonlu sayıda giriş simgesinden oluşan alfabe q 0 : Başlangıç durumu (q 0 ϵ Q) F : Son durumlar kümesi (F Q) δ : Geçiş fonksiyonu (Q x (Σ U {ɛ}) 2 Q )

BOŞ GEÇİŞLİ SONLU DURUM OTOMATLARI (FINITE STATE AUTOMATA WITH Ɛ-MOVES) ε-geçişli sonlu durum otomatlarıyla, deterministik olmayan sonlu durum otomatları ile kullanımı kolaylaştırılan sonlu durum otomatları daha da genişletilmiştir. ε-geçişi boş simge geçişi olarak düşünülebilir. Bu geçiş ile giriş sembolü işlenmeden bir sonraki duruma geçiş mümkündür. Bu otomat, modelin esnekliğini arttıran, geçiş tablolarının oluşturulmasını ve okunmasını kolaylaştıran bir yapı ortaya koyar. 0 1 2 ε ε q 0 q 1 q 4

BOŞ GEÇİŞLİ SONLU DURUM OTOMATLARI (FINITE STATE AUTOMATA WITH Ɛ-MOVES) L = {0, 1,2} alfabesinden tanımlanabilen { a 2n b 2m c 2k : n 1, m 0, k 0} Boş geçişli sonlu durum otomatı Deterministik sonlu durum otomatı

İKİ YÖNLÜ SONLU DURUM OTOMATLARI İki yönlü sonlu otomatlar, bir beşli olarak tanımlanır: DFA = <Q, Σ, δ, q 0, F> Q : Sonlu sayıda durum içeren Durumlar Kümesi Σ : Sonlu sayıda giriş simgesinden oluşan Giriş Alfabesi q 0 : Başlangıç durumu (q 0 ϵ Q) F : Son (uç) durumlar kümesi (F Q) δ : Durum geçiş fonksiyonu (Q x Σ Q x {R, L} ) Bu tanımda R (right) ve L (left), okuma kafasının bir sağa mı yoksa bir sola mı geçeceğini gösterir.

EŞ GÜÇTEKİ SONLU DURUM OTOMATLARI Aşağıdaki otomat türleri tanıyabilecekleri / üretebilecekleri diller açısından eş güçtedirler: Deterministik Sonlu Durum Otomatları Deterministik Olmayan Sonlu Durum Otomatları Boş Geçişli Sonlu Durum Otomatları İki Yönlü Sonlu Durum Otomatları

DÜZENLİ İFADELER (REGULAR EXPRESSIONS)

DÜZENLİ İFADELER Biçimsel Tanım: Karakter katarı kümelerinin cebirsel olarak tanımlanmasını sağlayan bir gösterim yöntemidir (Stephen C. Kleene, 1956). Karakter dizileri içinde, belirlenen örüntüleri (pattern) taramaya yarar. Kullanım alanları: Arama motorları Bilgi edinimi (Information retrieval) Kelime işleme (Word processing) Veri doğrulama (Data validation)... Herhangi bir düzenli ifade doğrudan NFSA ya, buradan da DFSA ya dönüştürülebilir. NFSA (backtracking), DFSA veya melez yöntemler kullanılarak gerçekleştirimleri yapılabilir.

DÜZENLİ İFADELER En basit düzenli ifadeler karakterlerin sıralı biçimde dizilmesiyle oluşur. Düzenli ifadeler büyük küçük harf duyarlıdır. a b c /abc/ q 0 q 1 q 2 q 3 /okula/ Ali okula gelmedi. /okul/ Ali okula gelmedi. /a/ Ali okula gelmedi. /okula gelmedi/ Ali okula gelmedi.

KARAKTER SINIFLARI Kare parantezler arasına yazılan karakterler, veya (disjunction) işlemine tabi olurlar. /a[bc]/ a b q 0 q 1 q 2 - işareti ile kare parantez içinde bir aralık belirtilebilir. /[Bb]ahçe/ Bahçe veya bahçe /[abc]/ a veya b veya c /[1234567890]/ Herhangi bir rakam /[A-Z]/ Herhangi bir büyük harf (İngiliz alfabesindeki 26 harften biri) /[a-z]/ Herhangi bir küçük harf (İngiliz alfabesindeki 26 harften biri) /[0-9]/ Herhangi bir rakam c

* (KLEENE STAR) * karakteri kendinden önce gelen karakterin veya düzenli ifadenin 0 veya daha fazla kez ardışık olarak tekrarlanabileceğini belirtir. /ab*c/ ac, abc, abbc, abbbc, a b q 0 q 1 q 2 c /[0-9][0-9]*/ bir veya daha fazla sayıda ardışık rakam

+ (KLEENE PLUS) + karakteri kendinden önce gelen karakterin veya düzenli ifadenin 1 veya daha fazla kez ardışık olarak tekrarlanabileceğini belirtir. /ab+c/ a b b q 0 q 1 q 2 q 3 c /[0-9]+/ bir veya daha fazla sayıda ardışık rakam

(PİPE) Bu karakter örüntüler arasında veya işlevi görür. a b c /abc ab/ q 0 q 1 q 2 q 3 /elma portakal/ elma veya portakal

(PİPE) () şeklindeki normal parantezler içine alınan ifadeler tek bir karaktermiş gibi işlenir. a b c /a(bc bd)/ q 0 q 1 q 2 q 3 d /yüz(er erler)/ yüzer veya yüzerler

? VE.? karakteri kendinden önce gelen karakterin veya düzenli ifadenin seçimlik olduğunu belirtir. /ab?c/ a b c q 0 q 1 q 2 q 3 /evleri?/ evler veya evleri /colou?r/ color veya colour c. karakteri tekil herhangi bir karakterin yerine geçebilir. /dö.me/ dökme veya dövme gibi

İFADE SINIRLARI \b özel karakteri, kullanıldığı yere göre, aranan ifadenin önünde veya arkasında sınırlayıcı (boşluk gibi) karakterleri sınır olarak kabul eder. /\beli\b/ önünde ve arkasında boşluk olan eli ifadesini bulur. \B karakteri sınırlandırma olmayan durumu belirtir.

^ karakteri 3 farklı şekilde kullanılabilir. ^ (CARET) 1) Aralık için olumsuzlama /[^A-Z]/ büyük harf harici karakter /[^Ss]/ S veya s harici karakter /[^\.]/ nokta harici karakter 2) Satır başına bağlama /^Avrupa/ satır başında Avrupa olan durum 3) Normal karakter olarak kullanım /[e^]/ e veya ^ /a^b/ a^b örüntüsü

$ $ karakteri ise normal bir karakter olarak kullanılabileceği gibi satır sonuna bağlama için de kullanılabilir. /gittiler\.$/ satır sonunda gittiler olan durum

SAYAÇLAR Herhangi bir düzenli ifadenin ne kadar tekrarlanacağını belirtirler. {n} kendinden önceki düzenli ifade n defa ardışık olmalıdır. {n, m} kendinden önceki düzenli ifade en az n, en çok m defa ardışık olmalıdır. {n,} kendinden önceki düzenli ifade en az n defa ardışık olmalıdır. Örneğin Trakya kelimesi önünde 3 karakter ve devamında 4 rakam gelecek şekilde bulunmak istendiğinde, şu şekilde düzenli ifade ile gösterilebilir: [a-z]{3}[0-9]{4}trakya

OPERATÖR ÖNCELİK HİYERARŞİSİ En yüksekten en düşük öncelikli operatöre doğru sıralama şu şekildedir: 1. Parantez () 2. Sayaçlar * +? {} 3. Seriler veya bağlayıcılar evler ^Yarın gelecek$ 4. Veya (pipe)

\d herhangi bir rakam ([0-9]) \D rakam olmayan bir karakter ([^0-9]) \w alfanümerik karakterler ve _ karakteri ([a-za-z0-9_]) \W alfanümerik olmayan karakterler ([^\w]) \s boşluk karakterleri ([ \r\t\n\f]) \S boşluk olmayan karakter ([^\s]) \n newline \r carriage return \t tab \f form feed \. nokta ÖZEL OPERATÖRLER

ÖRNEKLER Tarih 02/04/2010 (\d{1,2}\/\d{1,2}\/\d{4}) E-posta adresi (\w+@[a-za-z_]+?\.[a-za-z]{2,6}) IP adresi \b([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\b

L 1 L 2 xy x L 1, : y L L 1 ={a,ab,ba} L 2 ={b,aa} 2 EKLEME (CONCATENATİON) a, ab, ba b, aa ab, aaa, abb, abaa, bab, baaa ε q 0 q f q 0 q f FSA 1 FSA 2

L 1 L 2 = w w L 1 wεl 2 } L 1 a, ab, aaaa L 2 ={bb,ab} BİRLEŞME (UNİON) a, ab, aaaa bb, ab { a, ab, bb, aaaa} ε q 0 q f ε FSA 1 q 0 q f ε ε q 0 q f FSA 2

DÜZENLİ GRAMERLER (REGULAR GRAMMARS)

DÜZENLİ GRAMERLERİN BİLEŞENLERİ Bir düzenli gramer şu 4 bileşenden oluşur: 1. N: Sonlu bir terminal olmayan semboller kümesi. 2. S ϵ N: Başlangıç sembolü. 3. T: Terminal semboller kümesi. 4. P: Şu iki kural şemasından birine uyan yeniden yazma (üretim) kuralları: i. Y α, X ii. Y β iii. Y ε ya da i. Y X, α ii. Y β iii. Y ε (X, Y N ve α, β T)

SONLU DURUM OTOMATLARININ DÜZENLİ GRAMERE DÖNÜŞTÜRÜLMESİ SONLU DURUM OTOMATI: DÜZENLİ GRAMER: q 0, q 2 ve q 1 yerine sırasıyla S, A ve B sembollerini kullanarak; S 1 S S 0 A A 0 A A 1 B B 0 B B 1 B A 1 B 0 B 1

SONLU DURUM OTOMATLARININ DÜZENLİ GRAMERE DÖNÜŞTÜRÜLMESİ SONLU DURUM OTOMATI: DÜZENLİ GRAMER: q 0, q 1, q 2 ve q 3 yerine sırasıyla S, A, B ve C sembollerini kullanarak; S 1 A S 0 B A 1 S A 0 C B 1 C B 0 S C 1 B C 0 A A 1 B 0 S ϵ

KAYNAKLAR Hopcroft, J.E. and Ullman J.D. (1979). Introduction to Automata Theory, Languages, and Computation (1st ed.). Addison-Wesley. Yarımağan, Ünal, Özdevinirler Kuramı ve Biçimsel Diller, Bıçaklar Kitabevi, 2003, ISBN# 975-8695-05-3 Prof. Dr. Yılmaz KILIÇASLAN, Formel Diller ve Soyut Makinalar Ders Sunumları Namık Kemal Üniversitesi, Yrd. Doç. Dr. E. Serdar Güner Ders Sunumları Sakarya Üniversitesi, Biçimsel Diller ve Soyut Makineler Ders Sunumları Gazi Üniversitesi, Biçimsel Diller ve Otomatlar Ders Sunumları