Bilgisayar Kavramlarıwww.bilgisayarkavramlari.com |
Yazan : Şadi Evren ŞEKER Özellikle bilgisayar programlama dillerinde kullanılan bir terimdir. Buna göre dillerde bulunan özelliklerin birbirine dik olması, yani birbirinden bağımsız olması kast edilir. Kelime olarak, yöneylerin (vectors) dikliğinden esinlenilmiştir. Vektörlerin birbirine dik olması, aralarında ilişki bulunmaması (birbirine iz düşümünün sıfır olması) anlamına gelmektedir. Şayet bir dilde bulunan özellikler arasında da ilişki bulunmuyorsa, [...]
Yazan : Şadi Evren ŞEKER Haberleşmede kullanılan bir terimdir. Bir kod kelimesi (code word), belirli bir teşrifatın (protocol, protokol) anlamlı en küçük parçasıdır. Her kod kendi başına tek bir anlam ifade eder ve bu anlam yeganedir (unique). Aynı yaklaşım programlama dilleri için de geçerlidir. Her programlama dilinde bulunan her kelime tek bir anlam ifade eder. [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sıkça kullanılan sonlu durum makinelerinin (finite state machine, FSM veya Finite State Automaton , FSA) gösteriminde kullanılan iki farklı yöntemdir. Genelde literatürde bir FSM’in gösteriminde en çok moore makinesi kullanılır. Bu iki yöntem (mealy ve moore makinaları) sonuçta bir gösterim farkı olduğu için bütün mealy gösterimlerinin moore ve [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, işlemcideki çalışmadan önce yapılacak işleri ifade etmek için kullanılan bir terimdir. Çoğu programlama dili açısından, programın çalışması aşamasına geçilmeden önce (run-time) yapılacak işleri belirtir. Genellikle bir betik (macro) şeklinde kayıtlı olarak dosyada duran ve programın derlenmesi aşamasından (compile time) önce veya sonra, ama çalıştırılmadan önce yapılan işleri ifade [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan bir programlama dili tipidir. Bu dilde herhangi bir değişkene yalnızca bir kere atama yapılabilir. Literatürde sasl (single assignment language, tek atamalı diller) olarak geçen dil bu tipe bir örnektir. Ayrıca C dilinden esinlenerek hazırlanmış ve C yazım kuralları ile uyumlu sacl (single assignment C language) dili de [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, program doğrulama ( program corectness) için kullanılan mantığın ismidir. Basitçe bir dizi matematik kuralları ile bir programı modellemeye ve programın doğruluğunu ispatlamaya (veya yanlışlığını göstermeye) yarayan mantıktır. Bu mantığın bilgisayar dünyasında bir dil olarak modellenmesi sonucunda yine bir muntazamn dil (formal language) ortaya çıkar. Yani aslında bir programın [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde bir programın istenen özellikleri yerine getirip getirememesine verilen isimdir. Buna göre şayet bir program, beklenen özellikleri tam ve eksiksiz yerine getiriyor, istenmeyen sonuçlar ortaya çıkmıyor ve program başladıktan sonra her durumda başarılı bir şekilde bitiyorsa bu programa tam doğru ( total correctness) ismi verilir. Durma probeleminden (halting problem) [...]
Yazan : Şadi Evren ŞEKER Veri modellemede kullanılan bir ağ şeklidir. Esas itibariyle içerikten bağımsız dillerin (context free grammers) görsel gösterimi için kullanılabilirler. Ağların yapısı uzatılmış geçiş ağlarına (augmented transition network) benzemekle birlikte en büyük farkı ve isminin özyineli olmasının da sebebi ağın kendini tekrarlama özelliğidir. Daha basitçe bir içerikten bağımsız dil (CFG) S devamlısı [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin önemli bir kısmını oluşturan otomatlar (Automata) ve Algoritma Analizi (Algorithm analysis) çalıştırmalarının altındaki dil bilimin en temel taşlarından birisidir.1936 yılında Alan Turing tarafından ortaya atılan makine tasarımı günümüzde pekçok teori ve standardın belirlenmesinde önemli rol oynar. Turing Makinesinin Tanımı Basitçe bir kafadan (head) ve bir de teyp bandından [...]
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 [...]
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 [...]
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. [...]
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 [...]
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 [...]
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 sahiptir. İçerik 1. Çok boyutlu [...]
Yazan: Şadi Evren ŞEKER Bilgisayar bilimlerinde alınabilecek alternatiflerin sayılması ve bu sayılan ihtimaller dışındaki ihtimallerin kabul edilmemesi durumudur ( ihtimallerin tâdât edilmesi) Örneğin programlama dillerinde bir değişkenin alabileceği değerleri tanımlayarak bu değişkene sadece bu değerlerden birisinin konulması sağlanabilir. Örneğin C dilinde yazılmış aşağıdaki kodu ele alalım: enum gunler{ pts,sal,car,per,cum,cts,paz }gun; main(){ gun=sal; printf(“\n%d”,gun); //2. gün [...]
Yazan: Şadi Evren ŞEKER Latince bölünemez anlamına gelen atom kökünden üretilen bu kelime, bilgisayar bilimlerinde çeşitli alanlarda bir bilginin veya bir varlığın bölünemediğini ifade eder. Örneğin programlama dillerinde bir dilin atomic (bölünemez) en küçük üyesi bu anlama gelmektedir. Mesela C dilinde her satır (statement) atomic (bölünemez) bir varlıktır. Benzer şekilde bir verinin bölünemezliğini ifade etmek [...]
Yazan : Şadi Evren ŞEKER Ardışık veri yapıları (consecutive data structures) üzerinde çalışan fonksiyonlar temel olarka 3 grupta toplanabilir. Bu gruplarda amaç yazılabilecek fonksiyon tiplerini üç çatı altında toplamak ve bir abstraction (soyutlama) yaparak programcıya sadece istediği fonksiyonu parametre verebileceği bir ortam hazırlamaktır. Bu işlem sırasında fonksiyon göstericileri (Function pointers) kullanılarak bir fonksiyon diğer fonksiyonlara [...]
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 [...]
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ı [...]
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ç [...]
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: [...]
Yazan : Şadi Evren ŞEKER Bir dilin Düzenli ifadele (Regular expression) olup olmadığının belirlenmesi için kullanılan pomplama önsavıdı (pumping lemma). Basitçe düzenli ifadede olup olmadığı sınanacak bir w dili için (yani L = w için) w= xyz şeklinde bir açılım sınanır. Buradaki sınama sırasında aşağıdaki koşulların sağlanması beklenir: |y| ≥ 1 |xy| ≤ p bütün [...]
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 [...]
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 [...]