Resim

CPython Nedir?

CPython Nedir?

CPython, Python dilinin orijinal ve en yaygın kullanılan yorumlayıcısıdır (implementation). Basitçe söylemek gerekirse, Python.org'dan indirip kullandığınız ve büyük ihtimalle "standart Python" diye düşündüğünüz şey, CPython'dur.

  • C ile Yazılmıştır: Adından da anlaşılacağı gibi, CPython çoğunlukla C programlama dili kullanılarak yazılmıştır. Bu, Python kodunu çalıştıran yorumlayıcının C ile inşa edildiği anlamına gelir.

CPython'un C ile yazılmış olması, Python'a en yaygın kütüphaneler (örneğin NumPy, Pandas) ve işletim sistemi çağrıları gibi kritik işlevler için hız ve düşük seviyeli erişim sağlar.

Cpython Çalışma Şekli:

Aşağıdaki adımlar, Python kaynak kodunuzun (.py dosyası) nihai bir çıktıya dönüşene kadar CPython yorumlayıcısı içinde izlediği temel yolu gösterir.

1. GirişKaynak Kodu (.py)

Bu, programlamanın başlangıç noktasıdır. Sizin bir metin düzenleyici veya IDE kullanarak yazdığınız, insan tarafından okunabilen Python 3 sözdizimindeki komutlardır.

2. Derlemek: CPython Derleyicisi

CPython yorumlayıcısının ilk görevi, girdi olarak aldığı Kaynak Kodunu okumak ve bunu bir sonraki aşama için uygun, makineye daha yakın bir forma dönüştürmektir. Bu işlem teknik olarak derlemek (compilation) olarak adlandırılır.

Python kodu, platformdan bağımsız, hızlı ve kompakt talimatlar olan Bayt Koduna (Bytecode) dönüştürülür. Bu bayt kodu, genellikle .pyc uzantılı dosyalara önbelleğe alınır.

3. Yürütme: Python Sanal Makinesi (PVM)

PVM, CPython'un kalbidir. Bayt kodunu yorumlamak ve yürütmek için tasarlanmış soyut bir CPU görevi görür.

PVM, Bayt Kodunu satır satır okur ve her bir talimat için (örneğin toplama, atama) CPython'un çekirdeğinde C dilinde yazılmış karşılık gelen düşük seviyeli işlevleri(fonksiyonları) çağırır.

4. Sonuç: İşletim Sistemi/CPU

PVM, yürütme sırasında dosya okuma, ağ bağlantısı kurma veya ekrana çıktı yazma gibi dış kaynaklarla etkileşime girmesi gerektiğinde bu görevi İşletim Sistemine (OS) devreder.

PVM, C API'si aracılığıyla İşletim Sistemine sistem çağrıları (system calls) yapar. İşletim Sistemi ve fiziksel CPU bu çağrıları yerine getirir (örneğin, bir sayıyı toplar, diske yazar) Nihai program çıktısı bu aşamada üretilir.

CPython Alternatifleri

CPython, Python dilinin referans uygulaması olsa da, belirli ihtiyaçlara (hız, bellek kullanımı, farklı platform entegrasyonu) hizmet etmek üzere tasarlanmış başka Python uygulamaları (implementations) da mevcuttur.

Bu alternatifler, çoğu zaman aynı Python dilini (sözdizimi ve semantik) kullanır, ancak kodu farklı sanal makineler veya altyapılar üzerinde çalıştırırlar.

1. Jython (Java Platformunda Python)

  • Temel Fikir: Python kodunu Java Sanal Makinesi (JVM) üzerinde çalıştırmaktır.

  • Avantajı: Jython, Python'a Java kütüphanelerine (JAR dosyaları dahil) doğrudan erişim yeteneği sağlar. Bu sayede, Python koduyla büyük bir Java uygulamasının parçası haline gelebilir.

  • Dezavantajı: CPython'un C tabanlı kütüphanelerini (örneğin NumPy gibi popüler veri bilimi araçlarını) doğrudan kullanamaz.

2. IronPython (.NET Platformunda Python)

  • Temel Fikir: Python kodunu Microsoft'un Ortak Dil Altyapısı (Common Language Infrastructure - CLI), yani .NET ve Mono üzerinde çalıştırmaktır.

  • Avantajı: .NET kütüphanelerine (C#, F# vb.) sorunsuz entegrasyon sağlar ve Windows platformunda geliştirme yapmak için cazip bir seçenektir.

  • Dezavantajı: Aynı Jython gibi, C uzantılarını kullanan popüler CPython kütüphaneleriyle uyumlu değildir.

3. PyPy (JIT Derleme ile Hız Odaklı)

  • Temel Fikir: Python kodunu kendi özel Python uygulamasında çalıştırmak, ancak Anında Derleme (Just-In-Time Compilation - JIT) tekniğini kullanmaktır.

  • Avantajı: PyPy, kodu çalışma zamanında (runtime) analiz eder ve sık kullanılan bölümleri çok daha hızlı olan yerel makine koduna çevirir. Bu sayede, CPU-yoğun görevlerde CPython'dan çarpıcı ölçüde (genellikle 5 kat veya daha fazla) hızlı olabilir.

  • Dezavantajı: Başlangıç süresi CPython'a göre biraz daha yavaş olabilir ve tüm CPython kütüphaneleriyle %100 uyumluluk garantisi yoktur (ancak uyumluluk sürekli artmaktadır).

4. MicroPython (Gömülü Sistemler İçin)

  • Temel Fikir: Python 3 dilini mikrodenetleyiciler ve gömülü sistemler gibi kaynakları kısıtlı cihazlarda çalışacak şekilde optimize etmektir.

  • Avantajı: Düşük bellek ve işlem gücü gerektiren IoT cihazlarında Python programlamasına olanak tanır.







Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Yazılım Nedir?

Python print()