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.
 
Bilgisayar sadece 0 ve 1'leri anlar, yazılım dilleri derlenerek 0 ve 1'lere yani bilgisayarın anlayacağı dile dönüştürülür. Bu konu derya deniz ve python veri analizine yönelik bir dildir, kernel yazabilen varsa buyursun yazsın takdir ederim.
 
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.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı