Özyineli Sayılabilir Diller (Recursively Enumerable Languages)

Yazan : Şadi Evren ŞEKER Muntazam dillerden (formal languages) birisi olan ve bu özelliği ile Mantık, Matematik ve Bilgisayar bilimlerinin çalışma alanına giren bir dil çeşididir. Sınıflandırma olarak Chomsky Hiyerarşisinde (Chomsky Hierarchy) 0. seviye olan (Type 0) bu dile uygun bütün diller birer düzenli ifade (regular expression) ile gösterilebilir. Muntazam dil (formal language) olması dolayısıyla […]

Devam

Chomsky Hiyerarşisi ( Chomsky Hierarchy )

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin özellikle dil alanında yapılan çalışmalarında muntazam dilleri (formal languages) tasnif etmek için kullanılan bir yapıdır. Literatürde Chomsky–Schützenberger hiyerarşisi olarak da geçmektedir. Bilindiği üzere ( muntazam diller (formal langauges) veya CFG yazısından da okunabileceği üzere) muntazam dillerin dört özelliği bulunur. Bunlar özellikle içerikten bağımsız dillerin (context free languages) da […]

Devam

Muntazam Diller (Formal Languages)

Yazan : Şadi Evren ŞEKER Kısaca istisnası olmayan dillere muntazam dil diyebiliriz. Muntazam diller bilgisayar bilimlerinde, mantıkta ve dilbilim (linguistic) çalışmalarında kullanılan bir dil ailesidir. Dilde bulunan bütün öğeler ve dilin ulaşabileceği sınırlar belirli kurallar dahilinde tanımlanabiliyorsa bu dillere muntazam dil ismi verilir. Bu anlamda bilgisayar bilimlerinde bulunan bütün programlama dillerini bu ailede düşünmek mümkündür. […]

Devam

Chomsky Normal Şekili (Chomsky Normal Form)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde özellikle otomatlar (automata) ve dil tasarımında (compiler design) oldukça sık kullanılan konulardan birisi de içerikten bağımsız dilbilgisidir. (Context Free Grammer) İçerikten bağımsız dil (Context Free Language) konusunda yapılan çalışamlar gelişen ihtiyaçlar ilave bazı kurallar konulmasını gerektirmiştir. Bu konuda çalışan Naom Chomsky tarafından konulan kurallara CNF veya Chomsky normal […]

Devam

Sözdizim (Syntax)

Yazan : Şadi Evren ŞEKER Temel olarak bir dilde (language) tanımlı olan öğelerin (kelime, işlem, sembol yada değerlerin) anlamlı bir dizilim oluşturmasıyla ilgilenen bilimdir. Örnekler Örneğin Türkçe için aşağıdaki cümle anlamlı bir cümledir: “Ali okula geldi” yukarıdaki cümlede herhangi bir yazım hatası ve dizilim sorunu bulunmamaktadır. Bununla birlikte: “okula Ali geldi” cümlesi de Türkçe açısından […]

Devam

Sabit, Hareketli ve Yığıt Değişkenleri (Static,Dynamic, Heap Variables)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, programlama dillerinde bir değişkenin tanımlandığı hafıza alanı ve değişkenin hafızada tutuluş biçimi farklılık gösterir. Dilin tanımına göre değişkenlerin hafızaya (RAM) işlenişi ve yaşam süreleri üç farklı şekilde olabilir: 1. Sabit (static) 2. Yığın-Hareketli (stack-dynamic) 3. Yığıt-Hareketli (heap-dynamic) a. Açıktan Yığıt-Hareketli (Explicit Heap-Dynamic) b. Gizli Yığıt-Hareketli (Implicit Heap-Dynamic) Yukarıda […]

Devam

Değişken Tip Bağlama (Dynamic Type Binding, Müteharrik Şekil Bağı)

Yazan : Şadi Evren ŞEKER İçerik: Sabit tip bağlamaları (Static Type Binding) Hareketli Tip Bağlamaları (dynamic type binding) Tip çıkarımı (Type inference, Şekil istidlali) Programlama dillerinde bir değişkenin tipinin belirlenmesi iki türlü olabilir. Birinci tip tanımlamada değişkenin tipi sabit olarak atanır ve bir kere belirlendikten sonra değişmez (static binding). İkinci tip tanımlamada ise değişkenin tipi […]

Devam

İşlem Önceliği (Operator Precedence)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde önemli konulardan birisi olan programlama dillerinin işlemleri yapma sırasını belirler. Bir programlama dilinde işlem önceliği bir iki farklı unsura göre belirlenir. Öncelikle sonucu etkileyen ve işlemin matemetiksel önceliğine göre bir tercih yapılır. Örneğin çoğu C benzeri dillerde C dilindeki işlem öncelikleri kullanılır. İçerik 1. Soldan sağa öncelik (left […]

Devam

Çok boyutlu diziler (MultiDimensional Arrays)

Çok boyutlu diziler (MultiDimensional Arrays) Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerindeki pek çok programlama dilinde birden fazla boyuttan oluşan dizilerin kullanılması mümkündür. Örneğin bir ders çizelgesini, haftalık yemek listesini yada kişilerin aylık satışlarından oluşan bir tabloyu ele alalım. Günlük hayatta pek çok yerde tablolar kullanılmaktadır. Aynı zamanda matrisler (masfuf, matrix) matematikte küçümsenmeyecek bir öneme […]

Devam

MPI (Message Passing Interface , Mesaj Geçirme Arayüzü)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, paralel programlama amacıyla kullanılan bir platformun ismidir. Çok çeşitli işletim sistemlerinde ve çok çeşitli dillerde paralel uygulama geliştirmeye olanak sağlar. Ancak temel çıkış sistemi Linux ve temel programlama dili olarak C dili kabul edilebilir. İçerik 1. Paralel Programlamaya Giriş 2 MPI Kurulumu 3. MPI ile paralel program geliştirilmesi […]

Devam