read

Bilgisayarınızda çalışan her bir yazılım oyun veya cep telefonunuzda çalışan her bir uygulama aslında bir programlama dili ile yazılmış ortaya konmuştur. Bilgisayarın işlemcisi tarafından çalıştırılmak üzere bir takım kod parçaları yazılır. İşlemci yazılan bu kodları anlar ve çalıştırır. Bu kodları yazabilmek için ise binlerce hatta daha da fazla programlama dili yapılmış ve halen daha yapılmaya devam ediliyor.

Bu kadar çok programlama dilinin olmasının ise birden fazla sebebi var. Kimisinin yapılış amacı farklı yazdığım Rhodeus Script gibi sadece web’i hedef alırken kimi programlama dilleri yapay zekayı kimileri ise masaüstü programlamayı, sistem programlamayı hedef alıyor.

Aynı amaç için yapılmış olsa dahi bir çok farklı programlama dili var. Bunların yapılma amacı ise programı yazacak kişiye kolaylık sunmak, daha geniş imkanlar sunmak veya daha kısa sürede istenilene ulaşmayı sağlamak amacıyla yapılmışlardır.

Aslında bilgisayar işlemcisi sadece tek 1 dilden anlar. Makine kodu. Tabi bir insanın makine kodunu anlaması ve makine kodu yazması oldukça zor ve o makine kodunda istediğini bulması zor olduğu için Assembly adında bir çevirici dil yada diğer tabiriyle ara gösterim dili ortaya çıkmıştır. Makine kodu ve Assembly’e biraz daha yakından bakalım. Aşağıda evlerimizde kullandığımız intel işlemcilerin anladığı komut dizileri(instructions) yani makine komutları bulunmaktadır.

55 31 D2 89 E5 8B 45 08 56 8B 75 0C 53 8D 58 FF 0F B6 0C 16 88 4C 13 01 83 C2 01 84 C9 75 F1 5B 5E 5D C3

Bu anlamsız gelen komut dizisini biraz daha anlamlı hale getiren Assembly gösterimi

.data:0x00000000	55          push ebp	 
.data:0x00000001	31d2	    xor edx,edx	 
.data:0x00000003	89e5        mov ebp,esp	 
.data:0x00000005	8b4508      mov eax,DWORD PTR [ebp+0x8]	 
.data:0x00000008	56          push esi	 
.data:0x00000009	8b750c      mov  esi,DWORD PTR [ebp+0xc]	
.data:0x0000000c	53          push ebx	 
.data:0x0000000d	8d58ff      lea ebx,[eax-0x1]	
.data:0x00000010	 	 	 
.data:0x00000010	loc_00000010:	 
.data:0x00000010	0fb60c16	movzx ecx,BYTE PTR [esi+edx*1]	
.data:0x00000014	884c1301	mov BYTE PTR [ebx+edx*1+0x1],cl	
.data:0x00000018	83c201	    add edx,0x1	
.data:0x0000001b	84c9	    test cl,cl	
.data:0x0000001d	75f1	    jne loc_00000010	 
.data:0x0000001f	5b	        pop ebx	 
.data:0x00000020	5e	        pop esi	 
.data:0x00000021	5d	        pop ebp	 
.data:0x00000022	c3	        ret

Yukarıda da gördüğünüz üzere Assembly dili sadece makine kodunun biraz daha anlamlı hali. Ama baktığınızda halen daha kodlar karışık veya bir işi yapmak için çok fazla kod yazımı yapmak gerekiyor işte bu noktada C, C++, D, python gibi yüksek seviye programlama dilleri yapılmış ve programlama “az kod çok iş” diyebileceğimiz bir kıvama gelmiş.

Bir sonraki yazımda programlama dillerini biraz daha yakından inceleyeceğiz.

Blog Logo

Talha Zekeriya Durmuş


Published

Image

Talha Zekeriya Durmuş

Bir bilgisayar sevdalısı, Ankara Üniversiteli ve genç bir hayalperest.

Geri Dön