Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar programlama dillerinde kullanılan digraph ve trigraph kavramlarını açıklamaktır. Basitçe bir programlama dilinde çeşitli sebeplerden dolayı bazı karakterlerin yazılması mümkün olmadığında digraph veya trigraph ismi verilen ve arka arkaya gelen 2 veya 3 karakterden oluşan ve asılnda tek bir karakteri ifade etmek için kullanılan değerlere başvurulur. Örneğin […]
Category: Derleyiciler
LR(1) Parçalama Algoritması
Yazan : Şadi Evren ŞEKER Bu yazının amacı, LR(1) algoritmasını açıklamaktır. Algoritma, özellikle derleyici tasarımı konusunda sık kullanılan parçalama algoritmalarından birisidir. Algoritmanın ismi, iki kelimenin kısaltmasından gelmektedir. Buna göre ilk L harfi, left to right parsing (soldan sağa doğru parçalama) ve ikinci R harfi ise rightmost derivation (sağdan eksiltmeli) anlamındadır. Parantez içerisinde yer alan 1 […]
LR(0) parçalama algoritması
Yazan : Şadi Evren ŞEKER Bu yazının amacı, özellikle derleyici tasarımı konusunda geçen LR(0) parçalama algoritmasını (parsing algorithm) açıklamaktır. Algoritmanın ismi, iki harften L ve R harflerinden gelmektedir. İlk L harfi, Left to Right parsing (soldan sağa parçalamalı) anlamında, ikinci R harfi ise Rightmost derivation (sağdan azaltmalı) anlamındadır. Algoritmanın isminde bulunan 0 sayısı ise look […]
Earley Parçalama Algoritması (Earley Parsing Algorithm)
Yazan : Şadi Evren ŞEKER Bu yazının amacı, bilgisayar bilimlerinde özellikle derleyici tasarımı (compiler design) konusu altında geçen Earley Parçalama Algoritmasını (Earley Parsing Algorithm) açıklamaktır. Bu algoritmanın amacı, verilen bir gramer ile verilen bir girdiyi parçalayarak varsa bu girdideki hatayı bulmak, veya anlamsal olarak bir gösterim elde etmektir. Algoritmanın çalışması için bir girdi ve bir […]
LL(1) Parçalama Algoritması
Yazan : Şadi Evren ŞEKER Bu yazının amacı, derleyici tasarımı (compiler design) konusunda çok kullanılan parçalayıcılardan (parser) birisi olan LL1 parçalayıcısını (LL1 parser) açıklamaktır. LL(1) kelimesi, 3 konunun baş harflerinden oluşur. İlk L harfi, Left-to-Right scan, yani soldan sağa doğru tarama yaklaşımından, ikinci L harfi, Leftmost Derivation, soldan eksiltme yaklaşımından, 1 sayısı ise sadece 1 […]
Maximal Munch (Azami Lokma) Yöntemi
Yazan: Şadi Evren ŞEKER Algoritma, bilgisayar programlama veya bilgisayar bilimlerinde genelde derleyici tasarımı (compiler design) gibi dizgi (string) işlemenin yoğun olduğu alanlarda büyük lokma (maximal munch) veya en uzun eşleşme (longest match) olarak geçmektedir. Buradaki amaç, anlık olarak en büyük lokmayı oluşturmak ve yutmak veya aranan koşulları sağlayan en uzun yapıyı koparmak olarak düşünülebilir. Tam […]
Lisan-ı Kaime (Dillerde Dik Açı, Orthogonal Languages)
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, […]
Kod Kelimesi
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. […]
Mealy ve Moore Makineleri (Mealy and Moore Machines)
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 […]
Preprocessor (Ön işlem)
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 […]