1 / 13

Otomata Teorisinin Uygulama Alanları

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

nubia
Download Presentation

Otomata Teorisinin Uygulama Alanları

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Otomata Teorisinin Uygulama Alanları ve DİlİMLEyİCİ(LEXİCAL ANALYSER) ÖrNEĞİ

  2. Sunumun sebebi hakkında

  3. 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 (Hücresel Otomat, Game of Life) Sıvı akışları Kozmoloji  Derleyiciler

  4. 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

  5. Derste öğrendiklerimiz makineler Alfabe = {a,b}

  6. 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.

  7. 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ü

  8. 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)*

  9. Projemizin Regular Expression'ları Basit bir regular exp. örneği r = a(a+b)*aa • ==> ........@.....(.)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: 

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

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

  12. DFA'dan Geçiş Tablosu  Bu tablo iki boyutlu A dizisi olsun  örnek olarak input[] = {abc} olsun

  13. 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. 

More Related