otomata teorisinin uygulama alanları

13
Otomata Teorisinin Uygulama Alanları VE DİLİMLEYİCİ(LEXİCAL ANALYSER) ÖRNEĞİ

Upload: nubia

Post on 17-Mar-2016

170 views

Category:

Documents


0 download

DESCRIPTION

Otomata Teorisinin Uygulama Alanları. ve DİlİMLEyİCİ(LEXİCAL ANALYSER) ÖrNEĞİ. Sunumun sebebi hakkında. Uygulama Alanları. Uygulama Alanları = q'lar ve 1 ve 0'lar ne olabilir?. Bu sunuda derleyiciler alanındaki uygulamasını göreceğiz. Doğal dil işleme(nlp) Biyoloji - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Otomata Teorisinin Uygulama Alanları

Otomata Teorisinin Uygulama AlanlarıVE DİLİMLEYİCİ(LEXİCAL ANALYSER) ÖRNEĞİ

Page 2: Otomata Teorisinin Uygulama Alanları

Sunumun sebebi hakkında

Page 3: Otomata Teorisinin Uygulama Alanları

Uygulama Alanları

Doğal dil işleme(nlp)Biyoloji(Hücresel Otomat, Game of Life)Sıvı akışlarıKozmoloji Derleyiciler

Bu sunuda derleyiciler alanındaki

uygulamasını göreceğiz.

Uygulama Alanları = q'lar ve 1 ve 0'lar ne olabilir?

Page 4: Otomata Teorisinin Uygulama Alanları

Bizim sunumuzun içeriği

Derste öğrendiklerimizin derleyicilerde nasıl kullanıldığı Basit bir dilimleyici projesi  Derste gördüğümüz NFA-Boş Kısacık bir Jflap özeti ve NFA-Boş'tan NFA'ya NFA'dan Jflap ile DFA'ya geçiş  DFA geçiş tablosu ve önemi  Teoriden koda TürkÇE'nin dilimleyicisinden örnek

Page 5: Otomata Teorisinin Uygulama Alanları

Derste öğrendiklerimiz makineler

Alfabe = {a,b}

Page 6: Otomata Teorisinin Uygulama Alanları

Derleyicilerde kullanılan makineler

Alfabe = {a,b,c,ç,d,e...z,A,B,C...Z}

Tabi bu sadece bir anahtar kelime için verilmiş bir örnek, ileride ne kadar karmaşık olacağını göreceğiz.

Page 7: Otomata Teorisinin Uygulama Alanları

Bizim sonlu sayıda(finite-state) makinasını anlamak için yapacağımız küçük proje

Proje kendisine gelen bir kaynak dosyasından, belli formatlardaki e-posta adreslerini, telefon numaralarını ve adresleri ayıklayan ve yanlarına e-posta, tel ve adres yazdıran küçük bir uygulama olacak. Bu formatlar aşağıdaki gibidir:

==> ........@.....(.)com ==> +90...-...-..-.. ==> Apt:..../No:....

İzleyeceğimiz yol: bizim gereksinimlerimize göreRegular Expression == > NFA ==> DFA ==> Geçiş Tablosu ==> Tabloda gezen for döngüsü

Page 8: Otomata Teorisinin Uygulama Alanları

Regular Expression Derste gördüğümüz bir regular expression  r = a(a+b)*aa Bu regular expression'un ürettiği diziler: L = { aaaaa,abbabaa..} 

Fakat bize iki harf yetmeyeceğinden 

r = (a+b+c+d+e+f+..+z),   r yerinede harf diyelim  harf = (a+b+c+d..+z) rakam = (0+1+2+3+4+5+6+7+8+9) isim = (harf)(harf+rakam)*

Page 9: Otomata Teorisinin Uygulama Alanları

Projemizin Regular Expression'ları ==> ........@.....(.)com ==> +90...-...-..-.. ==> Apt:..../No:.... harf = (a+b+c+d..+z) rakam = (0+1+2+3+4+5+6+7+8+9) isim = (harf)(harf+rakam)*

• e-posta = isim '@' isim '.' com• tel = '+90' (rakam)^3 '-' (rakam)^3 '-' (rakam)^2

'-' (rakam)^2• adres = 'Apt:' isim '/No:' isim 

• Not: (^ işareti üssüyü ifade etmektedir. 'x' tırnak işareti ise x'in mutlaka dizgide olacağını ifade eder. Biraz önceki regular expression'u hatırlayalım: 

Basit bir regular exp. örneği

r = a(a+b)*aa

Page 10: Otomata Teorisinin Uygulama Alanları

E-posta için NFAe-posta = isim '@' isim '.' com

Page 11: Otomata Teorisinin Uygulama Alanları

E-posta için NFA'dan DFA'yae-posta = isim '@' isim '.' com

Page 12: Otomata Teorisinin Uygulama Alanları

DFA'dan Geçiş Tablosu Bu tablo iki boyutlu A

dizisi olsun 

örnek olarak input[] = {abc} olsun

Page 13: Otomata Teorisinin Uygulama Alanları

Sonuç

Bir e-posta regular expression'u için bu kadar karmaşık işlemler gerektiriyor, hem e-posta hem adres hemde telefon için veya bir derleyicideki anahtar kelimeler, sabitler, değişkenler için pazar ne kadar karışır siz tahmin edin. Peki çözümü yok mu? 

Bunun için sizin regular

expressionlarınızı veren ve size java kodunu döndüren

Jflex'e veya C++ için olanu flex'e müracaat

edebilirsiniz.