Otomata Teorisinin Uygulama Alanları

Slides:



Advertisements
Benzer bir sunumlar
POWEPOINT KISIM I
Advertisements

STRİNG FONKSİYONLARI.
SAĞLIK NET GÖNDERİMİ İÇİN HEKİMLERİN YAPMASI GEREKENLER.
Bilgisayar Programlama Güz 2011
JavaScript Birinci Hafta.
Saymanın Temel Prensipleri
KAMU HİZMET ENVANTERİ SEMİNERİ
C Programlama Diline Giriş
Benim Öğretmenim Benim Öğrencim Modülü Benim Öğretmenim Benim Öğrencim Modülüne ulaşmak için bu yolu izleyebilirsiniz.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ KONTROL : Prof. Dr. Asaf VAROL
SQL de Değişken Tanımlama
Dizi (array) değişkenleri
OOP4 LAB.
BÜYÜK ÜNLÜ UYUMU.
Dizi (ARRAY) Diziler grup halindeki değişkenler olarak tanımlanabilir. Dizi içersinde yüzlerce değişken olabilir. Dizi elemanları index adı verilen sıra.
TBF Genel Matematik I DERS – 1 : Sayı Kümeleri ve Koordinatlar
OTOMATA TEORİSİ SELÇUK KILINÇ
Sonlu Durum Makinesi M=(S, I, O, f, g, s0) S:durumlar kümesi
KISITLAMALAR (Constraints)
SQL de Değişken Tanımlama
ADRES DEFTERİMDE NELER VAR?. Arkadaşlarınızın, akrabalarınızın ve tanıdığınız diğer kişilerin adresleri, telefon numaraları, e-posta adresleri vb. bilgilerini.
Bağlama Duyarlı Diller
Veri Tabanı Yönetim Sistemleri I
Algoritma & Programlama
Temel Giriş/Çıkış Fonksiyonları
Yazılım Testi Sunumu  Abdullah Gürsoy.
TEMEL KAVRAMLAR.
BM-103 Programlamaya Giriş Güz 2014 (9. Sunu)
Arama Motorlarını Kullanmanın Püf Noktaları
C++ Ders Notları 4.Ders (Kontrol ve Döngüler)
Hafta - 3 Gözden Geçirme.
Hafta 8.
BUGÜN.. BİRAZ DA MATEMATİKLE UĞRAŞALIM BUGÜN..
BOOLEAN CEBİR VE SADELEŞTİRME (BOOLEAN ALGEBRA SIMPLIFICATION)
Web Tarayıcıları ve Arama Motorları
DÜZENLİ İFADELER Regular Expressions.
Kim korkar matematikten?
flex Sözcüksel Analiz İçin Bir Araç
Biçimsel Diller ve Soyut Makineler
Fatih Karaokur - Computer Teacher
NFA-, NFA, DFA dönüşümü 1.
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Sayı değeri
Regüler İfadeler ve Regüler Diller
İnternet Nedir Bilgisayar Ağları Ağ Çeşitleri Çağlar Gülcek.
Biçimsel Diller ve Soyut Makineler
7. HAFTA.
SAĞLIK NET GÖNDERİMİ İÇİN HEKİMLERİN YAPMASI GEREKENLER
Formel Diller ve Soyut Makineler
Web Tarayıcıları ve Arama Motorları
Formel Diller ve Soyut Makineler
BOLU-DÜZCE AR-GE PROJE PAZARI
Turing Machines Turing Makineleri.
Formel Diller ve Soyut Makineler
İstanbul Üniversitesi Teknik Bilimler Meslek Yüksekokulu Elektronik ve Otomasyon Bölümü Kontrol ve Otomasyon Teknolojisi Programı Akademik Yılı.
VERİ TÜRLERİ.
Web Tarayıcıları ve Arama Motorları
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
KONTROL SİSTEMLERİ DERSİ LABORATUVARI PROJE SUNUSU
FİZİK-1DERSİ UYGULAMA PROJE SUNUSU
Bilgisayar Programlamasına ve Veri Analizine Giriş
Akademik Yılı Güz Dönemi Sistem Analizi ve Tasarımı I Dersi
Tasarım: Ali Topal.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
FON AKIŞ TABLOSU ….
Bilgisayar Programlamasına ve Veri Analizine Giriş - VI
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

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

Sunumun sebebi hakkında

Uygulama Alanları Doğal dil işleme(nlp) Biyoloji Uygulama Alanları = q'lar ve 1 ve 0'lar ne olabilir? 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.

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

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

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.

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öre Regular Expression == > NFA ==> DFA ==> Geçiş Tablosu ==> Tabloda gezen for döngüsü

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

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)* Basit bir regular exp. örneği r = a(a+b)*aa 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: 

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

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

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

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.