Yazan : Şadi Evren ŞEKER Bir veri yapısı üzerinde çalışan ve veri yapısında bulunan verileri, verilen bir fonksiyonu kullanarak eleyen (filitreleyen) fonksiyon tipidir. Bu durum aşağıdaki bağlı liste (linked list) örneğinden anlaşılabilir: Örneğin yukarıdaki bağlı liste üzerinden tek sayıları eleyen bir fonksiyon yazmak istersek yapmamız gereken, tek sayıları veren aşağıdaki fonksiyonu bu bağlı liste üzerine […]
Category: Programlama Dilleri
Biriktirme Tipi Fonksiyonlar ( Accumulator Type Functions)
Yazan : Şadi Evren ŞEKER Bir veri yapısı üzerinde çalışan ve veri yapısında bulunan verileri, verilen bir fonksiyonu kullanarak bir değişkende biriktiren fonksiyon tipidir. Bu durum aşağıdaki bağlı liste (linked list) örneğinden anlaşılabilir: Örneğin yukarıdaki listede toplama fonksiyonu olarak aşağıdaki fonksiyonu uygulayacak olursak: int topla(int a, int b){ return a + b; } sırasıyla yapılması […]
Bindirme Tipi Fonksiyonlar (Mapping Style Functions)
Yazan : Şadi Evren ŞEKER Veri yapıları (data structures) üzerinde uygulanan döngü (loop) tiplerinden birisidir, literatürde haritalama tipi olarak da geçmektedir. Temel olarak bir veri tipi üzerindeki değişimi uygulamak için kullanılırlar. Örneğin aşağıdaki bağlı listeyi (linked list) ele alalım: Yukarıdaki bu bağlı listedeki elemanların üzerine, sayı değerini 1 arttıran bir fonksiyon bindirildiğinde (map) aşağıdaki sonuç […]
İçerik Bağımsız Gramerler için Pompalama Önsavı (Pumping Lemma for Context Free Grammers)
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde bir dilin, içerik bağımsız gramer (context free grammer, CFG) ile gösterilemeyeceğini ispatlamaya yarar. Yani pompalama ön savı sayesinde bir dilin CFG olmadığı ispatlanabilir ancak olduğu ispatlanamaz. Şayet pompalama önsavını geçemyorsa CFG değildir denilebilir ancak geçmesi olmasını gerektirmez. Pomplama önsavı (pumping lemma) kısaca bir dili aşağıdaki gramere uydurmaya çalışır: […]
Pompalama Önsavı (Pumping Lemma)
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde dil tasarımı (language design, compiler design) konusunda önemli araçlardan birisidir. Bu önsava (lemma) göre şayet bir dil, bir herhangi bir gruba ( içerik bağımsız dil (context free language) veya düzenli ifadeler (Regular expression) yada farklı bir dil grubu ) dahil olarak kabul ediliyorsa, bu dil ne kadar pompalanırsa […]
İç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 […]
SableCC
Yazan : Şadi Evren ŞEKER SableCC 1998 yılında Étienne Gagnon tarafından bir yüksek lisans tezi olarak hazırlanmış ve dil geliştirmekte kullanılan, JAVA üzerinde çalışan, nesne yönelimli bir geliştirme ortamıdır. Temel olarak SableCC üzerinde bir dil geliştirmek için aşağıdaki adımların takip edilmesi gerekir: Dilde bulunacak olan kelimeler (lexicons) için bir kelime tanımı (lexical definition) yapılmalıdır. Tanım […]
Atıf ile Çağırma (Call by Reference)
Yazan : Şadi Evren ŞEKER Programlama dillerinde, fonksiyon çağırma işlemi sırasında kullanılan yöntemlerden birisidir. Farklı kaynaklarda atıf geçirme ( pass by reference ) olarak da geçmektedir. Genelde bir programlama dilinin standart çağrıma yöntemi değer ile çağırmadır (call by value) ancak gösterici (pointer) desteği olan dillerde bu standart çağırma yöntemine ilave olarak atıf ile çağırmak da […]
C ile Zaman İşlemleri
Yazan : Şadi Evren ŞEKER C dilinde mevcut zamanı almak ve işlemek mümkündür. Bunun için time.h dosyasının içerisinde bulunan fonksiyonlar kullanılabilir. Ayrıca time.h dosyasında bulunan time_t oluşumu (struct) zaman tutmak için geliştirilmiştir ve zamanı oluşturan alt unsurları da içerir. Örneğin şu andaki zamanı ekrana basmak için aşağıdaki kod kullanılabilir: struct timeval tv; time_t curtime; […]
SDK
Yazan : Şadi Evren ŞEKER Yazılım ortamlarında, yazılım geliştirmek için kullanılan araçların bir araya getirildiği paketlere verilen isimdir. Software development kit (yazılım geliştirme araçları) kelimelerinin baş harflerinden oluşan bu kısaltma en az anlamda API (application programming interface , uygulama programlama arayüzü) içeren ve daha gelişmiş paketlerde IDE (integrated development environment) , yazılım dökümantasyonu, örnek kaynak […]