Automata (otomatlar, özdevinirler)

İçerikten Bağımsız Gramer (context free grammer, CFG)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, dil tasarımı sırasında kullanılan bir gramer tipidir. Basitçe bir dilin kurallarını (dilbilgisini, grammer) tanımlamak için kullanılır. Örneğin: S -> a Yukarıdaki dil tanımında bir büyük harfle gösterilen (S) bir de küçük harfle gösterilen (a) sembolleri bulunmaktadır. Bu satır, S devamlısının(nonterminal) a sonuncusuna(terminal) dönüştüğünü göstermektedir. Kısaca dildeki kuralları ifade [...]

İçerikten bağımsız dil (Context Free Language, CFL)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde bir dilin tasarımı sırasında, içerik bağımsız bir gramer ile oluşturulması durumudur. Basitçe bir aşağı sürüklemeli otomat (push down automata) tarafından kabul edilen dil çeşididir. Bazı kaynaklarda bağlamdan bağımsız dil olarak da geçmektedir. Örneğin çok meşhur L= {anbn , n>0} dilini ele alalım. Bu dil örneğinin bu kadar meşhur [...]

EBNF (Uzatılmış BNF, Extended Backus Normal Form)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde dil tasarımı konusunda kullanılan backus normal şeklinin (backus normal form) özel bir halidir. Basitçe standart BNF’te yazılan kuralların birleştirilerek daha sade yazılmasını hedefler. Bu durumu aşağıdaki örnek üzerinden görebiliriz: Örneğin BNF olarak yazılan dilimize göre: <EGER> ::= if( <KOSUL>) | if( <KOSUL>) else şeklinde bir satırımız bulunsun. Bu [...]

YACC

Yazan : Şadi Evren ŞEKER YACC, bilgisayara bilimlerinin önemli dallarından birisi olan dil tasarımı ve dil geliştirilmesi sırasında (compiler teory) sıkça kullanılan bir kod üretici programdır. YACC basitçe dildeki sözdizim (syntax) tasarımı için kullanılır ve tasarladığımız dildeki kelimelerin sıralamasının istediğimiz şekilde girilip girilmediğini kontrol eder. Aynı zamanda sıralamadaki her kelimenin anlamını da yacc marifetiyle belirleyebiliriz. [...]

LEX

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde programlama dillerinin tasarımı ve geliştirilmesi sırasında kullanılan ve dildeki kelimelerin analizine (lexical analysis) yarayan kod üretme programıdır. Yani lex için hazırlanmış bir dosyayı lex programından geçirdikten sonra size C dilinde bir kod çıkar. Bu kodu C dilinde derledikten (compile) sonra çalışan bir programınız olur. Veya tercihen bu çıktıyı [...]

Parçalama Ağacı (Parse Tree)

Yazan : Şadi Evren ŞEKER Parçalam işlemi  (parsing) bilgisayar bilimlerinde çeşitli amaçlar için kullanılmaktadır. Özellikle de dil ile ilgili işlemlerin hemen hepsinde ihtiyaç duyulan bir işlemdir. Örneğin bir programlama dilinde yazılan komutların algılanması için öncelikle kelimeleirn parçalanması (parse) gerekir. Benzer şekilde dopal dil işleme (natural language processing) işlemlerinde de doğal dilde bulunan kelimelerin algılanması bir [...]

Backus Normal Form (BNF)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerilnde genellikle bir dil tanımlamada ve bu dilin gramerini (Dil bilgisini) belirlemekte kullanılan gösterim biçimidir. Basitçe dil bir dil tanımında başlayarak Terminal (sonuncu) ve Non-Terminal (Devamlı) terimler kullanarak tanılmanmaktadır. Örneğin aşağıda basit bir örneği verilmiştir: <dil> ::= <harf>|<imla> <harf> ::= a|b|…|z <imla> ::= .| |,|? Yukarıda bir dil tanımı [...]

NFA’den DFA’e çevirim (Converting NFA to DFA)

Yazan : Şadi Evren ŞEKER Bu yazıda belirsiz sonlu otomattan(NFA) Belirli sonlu otomata (gerekirci sonlu otomat, nedensel sonlu otomat, deterministic finite automata) dönüştürmenin nasıl yapıldığı anlatılmaktadır. Basitçe bir iki adımlık işlemler izlenerek bu dönüşüm gerçekleştirilebilir: Öncelikle gerekircilik (determinism) açısından birbiri ile özdeş olan kümler çıkarılmalıdır (subset construction) Bu kümelerin diğer kümler ile olan ilişkisi çıkarılmalıdır. [...]

Şadi Evren ŞEKER tarafından, 11/11/2008 tarihinde yazıldı. | Automata (otomatlar, özdevinirler), Derleyiciler | 6 yorum var

Belirsiz Sonlu Otomat (Nondeterministic Finite Automat, NFA)

Yazan : Şadi Evren ŞEKER DFA (deterministic finite automat) belirli sonlu otomatların (özdevinirlerin) tersine her durumdan gidişin karışık olduğu ve her durum için bir sonraki kelimede nereye gidileceğinin belirli olmadığı otomatlardır. Basitçe DFA kurallarına uymayan bütün otomatlar NFA olarak adlandırılabilir. Aşağıda bir örnek üzerinde durumu incleyelim: yukarıdaki örnekte belirsiz durumlar bulunmaktadır. Örneğin b durumunda iken [...]

Belirli Sonlu Otomat (Deterministic Finite Automat, DFA)

Yazan : Şadi Evren ŞEKER Sonlu otomatların özel bir halidir. Bu özel hal aşağıdaki 3 durumu içermelidir: Her durumdan (State) gidilecek koşulun tek bir durum göstermesi. Yani bir durumda başka duruma geçerken bir kelime ile sadece bir duruma gidilebilmesi Tek bitiş durumunun bulunması (final state) Lambda (veya epsilon) kelimesinin durumlar arası geçişte yer almaması Örneğin [...]

Kuantum İşleme (Quantum Computing)

Yazan : Şadi Evren ŞEKER Bu yazının amacı kuantum bilgisayarları ve kuantum işleme (Quantum Computing) konusunda fikir vermek ve yapılan çalışmaların arkasındaki felsefeyi aktarmaktır. Kuantum bilgisayarları basitçe veriyi işlemek için çok küçük parçacıklar kullanır. Örneğin her gün yolda görebileceğimiz basit bir çakıl taşı aslında bir kuantun işlemi olarak kabul edilebilir. Temelde çakıl taşının yaptığı iş [...]

Nöbetçi (Sentinel)

Yazan : Şadi Evren ŞEKER Veri işlenmesi sırasında çeşitli durumlarda işlemin istenmeyen yerlere gitmesini engelleyen veri tipidir. Örneğin boyutu bilinmeyen bir dizi işlenirken dizinin sonuna gelindiğini anlamak için dizinin sonunda programın algılamasını sağlayan ve dizideki sayılardan ayırt edilen bir değer girmek gibi. Mesela sadece pozitif tam sayılardan oluşan bir dizide bitişi belirtmek için -1 yazılması [...]

Şadi Evren ŞEKER tarafından, 09/08/2008 tarihinde yazıldı. | Automata (otomatlar, özdevinirler), veri yapıları | A yorum var

Sonlu Ototmatlar (Finite Automaton)

Yazan: Şadi Evren ŞEKER Bir sonlu durum makinesinin formal şekilde gösterilmiş halidir. Buna göre bir otomat’ı oluşturan 5 farklı unsur bulunur. Bunlar o otomatta  bulunan durumlar (states) o otomatın durumları arası geçişlerin alabileceği semboller kümesi olan alfabe, o otomattaki durumlar ve alfabeler arasındaki geçişi gösteren fonksiyon (transition function) ve son olarak otomattaki bitiş durumlarını gösteren [...]

Şadi Evren ŞEKER tarafından, 02/08/2008 tarihinde yazıldı. | Automata (otomatlar, özdevinirler) | A yorum var

Bağımsız düğümler (Anti Clique, Independent Set)

Yazan: Şadi Evren ŞEKER Klik yapısının tersi olarak düşünülebilir. Basitçe bir grafta birbiri ile doğrudan bağlantısı olmayan düğümlerin oluşturduğu alt graftır. Yukarıdaki tasvirde iki adet graf verilmiştir. Üstte bütün graf görülmekte altta ise bu grafın bir alt grafı görülmketedir. Dikkat edilirse sadece altta bulunan {A,E,F} düğümleri alındığında aşağıdaki graf elde edilir ve bu grafta bulunan [...]

Klik (clique)

Yazan : Şadi Evren ŞEKER Graf teorisinde her iki düğümü birbirine bir kenar ile bağlanmış alt graflara verilen isimdir. Örneğin aşağıdaki grafikte bir klik kırmızı çizgiler ile işaretlenmiştir. Buna göre {A,B,C,D} alt grafı bir kliktir. Sosyal bilimlerde de aynı kelime(klik) bir toplumun en alt birimine verilen isimdir. Bunun sebebi doğrudan bağlantısı olan ve komşuluğu bulunan [...]

İstikra ile ispat (Tüme varım, Proof by Induction)

Yazan: Şadi Evren ŞEKER Bir kaziyeyi (önerme) ispat ederek nazariye (teorem) elde etme yöntemidir. İstikra cüz’îler (tikeller) den küllî (tümel) ye gitme yöntemidir dolayısıyla örneklerden yola çıkarak her zaman için geçerli bir sonuç elde ederek ispat yapılır. Her istikra için bir esas(basis) bir de istikra(induction) safhası(step) bulunur.  Bu iki safhanın ispatı bütün durumların ispatı demektir. [...]

Binaen Burhan (İnşâa ile İspat , Proof by Construction, Binaenaleyh)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan ispat yöntemlerinden birisidir. Bu yöntemde bir varlığın oluşmasının gösterilmesi hedeflenir.  Örneğin aşağıdaki teoriyi inşaa yöntemi ile ispat edelim: “2′den büyük her çift n sayısı için n düğüm içeren 3-düzenli graf bulunur” Öncelikle k-düzenli graf tanımını hatırlayalım: Bir graf üzerindeki her düğümün “k” kadar komşusu bulunması durumuna k-düzenli [...]

k-düzenli graf ( k-regular graph)

Yazan : Şadi Evren ŞEKER Bir graf üzerindeki her düğümün “k” kadar komşusu bulunması durumuna k-düzenli graf denilir. Örneğin aşağıdaki graf 2-düzenli bir graftır çünkü her düğümün derecesi 2′dir. 209 views

Nazariye (Teori, Kuram, Theorem)

Yazan: Şadi Evren ŞEKER Bilgisayar bilimleri açısından matematiksel olarak ispat edilmişi kaziyeler (önermeler, statements) birer nazariyedir. Bazı kaziyelerin(önermelerin) doğruluğu ise sırf  farklı teorilerin ıspatına yardımcı oluyor diye ıspatlanır. Bu tip kaziyelere (önermelere) ise önkuram (önsav, lemma) adı verilmektedir. Bazı durumlarda ise bir nazariyenin ispatı bize bazı başka neticelerin doğru olduğunu gösterir. Bu tarz kendiliğinden doğruluğu [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Automata (otomatlar, özdevinirler), bilgisayar felsefesi, Bilgisayar Kavramları | A yorum var

Alt Dizgi (Substring)

Yazan: Şadi Evren ŞEKER Bir dilde tanımlı olan ve o dildeki alfabenin üyesi olan semboller ile üretilmiş her dizginin alt dizgisi olabilir. Alt dizgi o dizginin belirli bir kısmına verilen isimdir. Buna göre örneğin boş dizgi her dizginin alt dizgisidir. Örneğin bir dildeki alfabe aşağıdaki şekilde tanımlı olsun: ∑1 = {0,1} Buna göre dilimizde sadece [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Automata (otomatlar, özdevinirler), Programlama Dilleri | A yorum var

Dizgi (String)

Yazan: Şadi Evren ŞEKER Bir dilde bulunan ve o dilin tanımlı olan alfabesi içerisindeki sembollerin çeşitli sayılarda ve çeşitli sırada dizilmesi ile elde edilen yazılardır. Örneğin bir dildeki alfabe aşağıdaki şekilde tanımlı olsun: ∑1 = {0,1} Buna göre dilimizde sadece “0″ ve “1″ sembolleri tanımlı demektir. Bu dilde örneğin w1=0 veya w2=10101011010 gibi bir dizgi [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Automata (otomatlar, özdevinirler), Programlama Dilleri | 3 yorum var

Alfabe (Abece, Alphabet)

Yazan: Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan ve yazıları ifade etmeye yarayan sembollerden oluşmuş kümelere verilen isimdir. Buna göre bir dildeki olası bütün semboller kullanılarak oluşturulan alfabeler kullanılarak metinlerin elde edilmesi mümkündür. Bilgisayar bilimlerindeki alfabelerde bulunan semboller sınırlı sayıda kabul edilmiştir. Örneğin aşağıda çeşitli semboller içeren alfabe örnekleri verilmiştir: ∑1 = {0,1} ∑2 = {a,b,c,d,e,f} [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Automata (otomatlar, özdevinirler), Bilgisayar Kavramları, Programlama Dilleri | 2 yorum var

Sembol (Harf, İşaret, Symbol)

Yazan: Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan ve yazıları ifade etmeye yarayan en küçük ifade birimine verilen isimdir. Buna göre bir dildeki olası bütün semboller kullanılarak oluşturulan alfabeler kullanılarak metinlerin elde edilmesi mümkündür. Bilgisayar bilimlerindeki alfabelerde bulunan semboller sınırlı sayıda kabul edilmiştir. Örneğin aşağıda çeşitli semboller içeren alfabe örnekleri verilmiştir: ∑1 = {0,1} ∑2 = [...]

Güçlü Bağlı Graf (Strongly Connected Graph)

Yazan: Şadi Evren ŞEKER Bir grafta bulunan bütün düğümleri diğer bütün düğümlere bağlayan birer kenar bulunuyorsa bu grafa güçlü bağlı graf adı verilir. 262 views

Basit Döngü (Simple Cycle)

Yazan: Şadi Evren ŞEKER Bir graftaki bir döngünün başlangıç ve bitiş düğümleri olan düğümü dışındaki bütün düğümlerin, bu döngü içerisinde sadece bir kere geçmesi durumunda bu döngüye basit döngü adı verilir. 205 views