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 klavyede istenen karakterin bulunmaması veya bağlantıda istenen karakterin taşınamaması (remote shell veya telnet gibi ortamlarda kodlanması halinde) veya programlama ortamının istenen karakteri desteklememesi (mikro işlemci programlama durumları gibi) çeşitli hallerde bu özel karakter ikilileri veya üçlülerine başvurulur.

Aşağıda C dili için verilmiş bir tablo bulunmakadır ve bu tabloda bulunan karakterler C99 stantlarında belirlenmiştir ve bu standartları sağlayan bütün derleyicilerin (compiler) bu ikilileri ve üçlüleri desteklemesi beklenir:

Digraph Anlamı
<: [
:> ]
<% {
%> }
%: #

Örneğin klasik olarak yazılan merhaba dünya mesajını ele alalım:

1
2
3
4
#include <stdio.h>
int main(){
   printf(“merhaba dunya”);
}

Yukarıdaki bu kodu aşağıdaki şekilde de yazabiliriz:

1
2
3
4
%:include <stdio.h>
int main()<%
  printf(“merhaba dunya”);
%>

Yukarıdaki kodun derlenip çalıştırılmış hali aşağıdaki şekildedir:

Görüldüğü üzere ilk yazılan merhaba dünya örneğinden hiç farkı yoktur ve aynı şekilde çalıştırılır.

Ayrıca trigraph listesi aşağıdaki şekilde verilebilir:

Trigraph Anlamı
??= #
??/
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~

Yukarıdaki haline göre kodumuzu yeniden yazacak olursak :

1
2
3
4
??=include <stdio.h>
int main()??<
  printf("merhaba dunya");
??>

Burada dikkat edilmesi gereken konulardan birisi de gcc derleyicisine parametre olarak -trigraphs veriliyor olmasıdır. Bazı derleyiciler bunu doğrudan desteklerken bazı derleyicilere, derleme sırasında (compile time) bu parametrenin özel olarak verilmesi gerekmektedir.

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


5 × iki =