Bilgisayar kodları nasıl anlar?

Kadir7678

Hectopat
Katılım
24 Ocak 2018
Mesajlar
70
Daha fazla  
Cinsiyet
Erkek
Şunu demek istiyorum geçenlerde Linux çekirdek kodlarını merak edip açtım. Kod dosyaları .c ile bitiyor. Peki bilgisayar bu C dilini nasıl anlayabiliyor? Python ile kernel yazamaz mıyız yani? Bilgisayar piyasaya çıktıktan sonra C diline güncelleme gelse kodları okuyamaz mı? Bu konularda bilgim yok aydınlatırsanız sevinirim.
 
1605563388351.png

Yandaki adımlarda da gördüğün gibi senin yazdığın kodlar bir compiler yardımı ile assembly kodlarına dönüşüyor. Bu assembly kodlar hala bilgisayarın anlayabileceği düzeyde değildir. Daha sonra assembler adı verilen birim bu kodları makine diline dönüştürür. Bu makine dili binary yapıda yani "0" ve "1"lerle yazılır.

Direkt olarak low-level programlama da mümkündür. Yeni direkt makine dili ile de program yazılabilir.

Linux çekirdek kodlarının C ile yazılmasının sebebi birçok programlama dilinin de C temelli olması ile aynı sebeptir.

Python compile edilen bir dil değildir. Python da C tabanlıdır. Bu tarz dillere high-level diller denir ve script tabanlıdır. Script tabanlı diller bir hata olsa dahi çalışmaya başlar ve hata sırasında işlemi sonlandırırlar. Compile edilen low-level dillerde hata olduğunda program çalışmaz. Bu en temel farklarıdır.
 
C ve Python gibi diller bilgisayarlar anlasın diye değil, biz insanlar anlayalım diye varlar. Bilgisayarın anladığı tek dil makine kodu. O da binary 1´ler ve 0´lardan oluşan sinyaller aslında. Compilerlar ya da interpreterlar insanların anladığı programlama dillerini bilgisayarın anladığı makine koduna dönüştürürler. Compiler bunu source kodun üzerinden bir ya da iki kez baştan sona geçerek binary executable bir dosya oluşturarak yapar. Interpreter farklı olarak source kodu okuyup anlık olarak çalıştırır. Binary dosya üretmez. Binary dönüşüm anlık olarak gerçekleştiği için programda bir error varsa bu program çalışırken ortaya çıkarlar. Compiler dillerde bu hata compile time esnasında ortaya çıkar.
 

Geri
Yukarı