Yazan: Şadi Evren ŞEKER Bir bilgisayarda çalışan birden fazla işlemin (process) bir biri ile haberleşmesini hedefleyen teknolojidir. Hız açısından düşünüldüğünde en hızlı iletişim yöntemi hafıza (RAM) üzerinde veri paylaşımıdır. Dolayısıyla bir işlemin hafızaya yazdığı bilgi başka bir işlem tarafından okunarak bu iletişim sağlanmış olur. Günümüz işletim sistemlerinde bu paylaşım işlemi aşağıdaki 4 işlemden birisi ile […]
Category: Programlama Dilleri
Oluşum (Composition) ve Struct (yapılar)
C ile oluşum (composition) Yazan: Şadi Evren ŞEKER Oluşum Composition, bir şeyin ufak parçaların bir araya getirilmesi ile oluşturulması anlamına gelmektedir. Buna göre örneğin bir araba, motor, koltuklar, tekerlekler vs. gibi parçalardan oluşmaktadır. Programlama dillerinde modellenmek istenen varlık alt varlıklara bölünebiliyorsa, composition kullanılarak modellenebilir. Bu yaklaşım nesne yönelimli programlama dillerinin temelini oluşturmaktadır. Ancak nesne yönelimli […]
referans ile çağırma (call by reference)
referans ile çağırma (call by reference) Bir fonksiyonun pointer marifetiyle çağrılmasıdır. Örneğin C dilinde: int fonksiyon(int *a){ a++; } şeklinde yazılmış bir fonksiyon, main() fonksiyonundan çağrılırken: int main(){ int *x=10; fonksiyon(x); printf(“%d”,*x); } şeklinde çağrılırsa bu durumda x pointer’ının referansı fonksiyona geçirilmil olur. Referansın geçmesi aslında x pointer’ının adresinin fonksiyonda bulunan a değişkeni tarafından da […]
Pointer (Gösterici) ve Diziler (Arrays)
Pointerlar ve kullanımları Yazan : Şadi Evren ŞEKER Pointer (gösterici) basitçe bir değişkenin bir hafıza alanını göstermesi demektir. C dilinde pointerlar: Veritipi *pointeradi; Şeklinde tanımlanır. Burada veritipi int, char, float gibi değişken tipleridir. Pointer adı ise bir değişken adının taşıması gereken özellikleri taşıyan ve tanımlandığı scope (geçerlilik alanında) yaşayacak olan değişken adıdır. Bir değişkenin başına […]
Stack (Yığın)
Stack (Yığın) Tek taraflı giriş ve çıkışlara açık olan. İlk giren son çıkar LIFO (Last in First Out) mantığı ile çalışan bir ADT örneğidir. Temelde iki veya üç fonksiyonu bulunur bunlar: Push -> Stack içerisine bir bilgi koymaya (Stack’in en tepesine koyar) Pop -> Stack içerisinden bir bilgi almaya (Stack’in en tepesinden alır) Top -> […]
Array (Dizi)
Array (Dizi) Hafızada dil tarafından ardışık olarak tutulan özdeş bölümlere verilen isimdir. Yani basitçe bir değişken tek bir bilgi birimi tutabilirken bu değişkenlerden birden fazla adışık uniteye ihtiyaç duyulursa dizi tanımlanabilir. C/C++ dilindeki örnek integer dizi tanımı: int a[10]; /* 10 elemanlık bir dizi tanımla */ for(int i = 0 ; i< 10 ; i++) […]
Linked List (Linkli Liste veya Bağlı Liste)
Linked List (Linkli Liste veya Bağlı Liste) Yazan:Şadi Evren ŞEKER Bağlı liste herhangi bir tipten node’ların (düğümlerin) yine kendi tiplerinden düğümlere işaret etmesi (point) ile oluşan zincire verilen isimdir. Buna göre her düğümde kendi tipinden bir pointer olacak ve bu pointerlar ile düğümler birbirine aşağıdaki şekilde bağlanacaktır. Linked List’in avantajı, hafızayı dinamik olarak kullanmasıdır. Buna […]
Pointer ( gösterici )
Pointer ( gösterici ) Programlama dillerinin bazılarında olan bir hafıza alanını işaret etmeye yarayan değişken tipdir. Buna göre örneğin C dilinde tanımlanan bir değişken, yine aynı değişkeni gösteren bir pointer ile de erişilebilir hale gelmiş olur. int *p; *p=5; printf(“%d %d %d “,p,*p,&p); yukarıdaki C/C++ kodu çalıştırılacak olursa sırasıyla, p’nin gösterdiği yerin adresini (5 değerinin […]
Static Scoping ( Sabit Alanlı Değiþkenler )
Static scoping ile en yakın değişken bindingin değeri atanır. Basit bir şekilde programın metni okunup bu işlem yapılabilir. Programın çalışırken (runtime) oluşturduğu stack içeriğine bakılmasına gerek yoktur. Sadece metine bakması yeterli olduğu için bu tarz scopinglere lexical scoping adı da verilir. Static scope, kodun anlaşılmasını daha kolay hale getirdiği için daha moduler kodlar yazılmasını sağlar. […]
Row Major Order (Satır bazlı sıralama)
Bilgisayar bilimlerinde, rowmajor order veya column major order ile, çok boyutlu (multidimensional) dizilerin (array) dogrusal hafızada (linear memory) tutulma şekli kastedilmektedir. Arraylerin hafızada tutulma biçimleri özellikle diller arasında veri geçişi yaparken kritik rol oynar. Ayrıca diziye erişim şekli doğru biliniyorsa ve bu bilgi doğru kullanılıyorsa performansı oldukça etkileyen bir özelliktir. Row-major order Satırların arka arkaya […]