Mengenal Tentang Bahasa Pemrograman CPython

Mengenal Tentang Bahasa Pemrograman CPython – CPython adalah implementasi referensi dari bahasa pemrograman Python . Ditulis dalam C dan Python, CPython adalah implementasi default dan paling banyak digunakan dari bahasa Python. CPython dapat didefinisikan sebagai juru bahasa dan kompiler karena mengkompilasi kode Python ke dalam bytecode sebelum menafsirkannya. Ini memiliki antarmuka fungsi asing dengan beberapa bahasa, termasuk C, di mana seseorang harus secara eksplisit menulis binding dalam bahasa selain Python.

Mengenal Tentang Bahasa Pemrograman CPython

Desain

pythonsprints – Fitur khusus CPython adalah ia menggunakan kunci penerjemah global (GIL) pada setiap proses penerjemah CPython , yang berarti bahwa dalam satu proses, hanya satu utas yang dapat memproses bytecode Python pada satu waktu. Ini tidak berarti bahwa tidak ada gunanya multithreading ; skenario multithreading yang paling umum adalah di mana sebagian besar utas menunggu proses eksternal untuk diselesaikan.

Baca Juga : Pengenalan Pemrograman MATLAB Untuk Pemula

Ini dapat terjadi ketika beberapa utas melayani klien terpisah. Satu utas mungkin menunggu klien untuk membalas, dan yang lain mungkin menunggu kueri basis data untuk dieksekusi, sementara utas ketiga sebenarnya memproses kode Python. Namun, GIL berarti bahwa CPython tidak cocok untuk proses yang mengimplementasikan algoritme intensif CPU dalam kode Python yang berpotensi didistribusikan ke banyak inti.

Dalam aplikasi dunia nyata, situasi di mana GIL merupakan hambatan yang signifikan cukup jarang terjadi. Ini karena Python adalah bahasa yang lambat secara inheren dan umumnya tidak digunakan untuk operasi intensif CPU atau sensitif waktu. Python biasanya digunakan di tingkat atas dan memanggil fungsi di perpustakaan untuk melakukan tugas khusus.

Pustaka ini umumnya tidak ditulis dengan Python, dan kode Python di utas lain dapat dieksekusi saat panggilan ke salah satu proses mendasar ini berlangsung. Pustaka non-Python yang dipanggil untuk melakukan tugas intensif CPU tidak tunduk pada GIL dan dapat secara bersamaan menjalankan banyak utas pada banyak prosesor tanpa batasan.

Konkurensi kode Python hanya dapat dicapai dengan proses penerjemah CPython terpisah yang dikelola oleh sistem operasi multitasking . Ini memperumit komunikasi antara proses Python bersamaan , meskipun modul multiprocessing agak menguranginya; itu berarti bahwa aplikasi yang benar-benar dapat memperoleh manfaat dari eksekusi kode Python secara bersamaan dapat diimplementasikan dengan jumlah overhead yang terbatas .

Kehadiran GIL menyederhanakan implementasi CPython, dan membuatnya lebih mudah untuk mengimplementasikan aplikasi multi-utas yang tidak mendapat manfaat dari eksekusi kode Python secara bersamaan.

Namun, tanpa GIL, aplikasi multiprosesor harus memastikan semua kode umum aman untuk thread. Meskipun banyak proposal telah dibuat untuk menghilangkan GIL, konsensus umum adalah bahwa dalam banyak kasus, keuntungan dari GIL lebih besar daripada kerugiannya; dalam beberapa kasus di mana GIL adalah hambatan, aplikasi harus dibangun di sekitar struktur multiprosesor.

Sejarah

Unladen Swallow adalah cabang pengoptimalan CPython, yang dimaksudkan untuk sepenuhnya kompatibel dan secara signifikan lebih cepat. Ini bertujuan untuk mencapai tujuannya dengan melengkapi mesin virtual kustom CPython dengan kompiler just-in-time yang dibangun menggunakan LLVM .

Proyek telah menyatakan tujuan peningkatan kecepatan dengan faktor lima di atas CPython; tujuan ini tidak tercapai. Proyek ini disponsori oleh Google , dan pemilik proyek, Thomas Wouters, Jeffrey Yasskin, dan Collin Winter, adalah karyawan penuh waktu Google; namun, sebagian besar kontributor proyek bukanlah karyawan Google. Unladen Swallow di-host di Google Code .

Seperti banyak hal tentang bahasa Python, nama Unladen Swallow adalah referensi Monty Python , khusus untuk lelucon tentang kecepatan kecepatan udara dari burung layang- layang tanpa muatan di Monty Python dan Holy Grail . Meskipun tidak mencapai semua tujuan yang dipublikasikan, Unladen Swallow memang menghasilkan beberapa kode yang ditambahkan ke implementasi Python utama, seperti peningkatan pada modul cPickle.

Pada Juli 2010, beberapa pengamat berspekulasi apakah proyek tersebut mati atau sekarat karena tonggak pencapaian Q4 2009 belum dirilis. Lalu lintas di milis Unladen telah menurun dari 500 pesan pada Januari 2010 menjadi kurang dari 10 pada September 2010. Juga telah dilaporkan bahwa Unladen kehilangan dana Google. Pada bulan November 2010, salah satu pengembang utama mengumumkan bahwa “Jeffrey dan saya telah ditarik ke proyek lain yang lebih penting bagi Google”.

Cabang pengembangan Q4 2009 dibuat pada 26 Januari 2010, tetapi tidak ada iklan yang dibuat di situs web. Selanjutnya, mengenai rencana jangka panjang, dan karena proyek melewatkan rilis Python 2.7, Python Enhancement Proposal (PEP) diterima, yang mengusulkan penggabungan Unladen Swallow menjadi cabang py3k-jit khusus dari repositori resmi Python . Pada Juli 2010, pekerjaan ini sedang berlangsung. Penggabungan ini akan memakan waktu, karena Unladen Swallow awalnya didasarkan pada Python 2.6 yang dengannya Python 3 merusak kompatibilitasnya. Namun, PEP kemudian ditarik. Pada awal 2011, menjadi jelas bahwa proyek dihentikan.

Spread the love

Related Post

Fitur Terbaik dari Bahasa Pemrogaman yang Serupa Dengan Fitur dari Slot Online Terpercaya

Fitur Terbaik dari Bahasa Pemrogaman yang Serupa Dengan Fitur dari Slot Online Terpercaya

Bahasa pemrograman adalah hal penting yang perlu dipelajari seorang pengembang demi terciptanya aplikasi canggih yang memudahkan hidup, misalnya aplikasi berjudi. Setiap bahasa pemrograman punya fitur terbaik untuk memastikan pengguna bisa

10 Bahasa Pemograman Teratas Yang Digunakan Untuk Proyek dan Pengembangan Blockhain

10 Bahasa Pemograman Teratas Yang Digunakan Untuk Proyek dan Pengembangan Blockhain – Blockchain telah menjadi industri bernilai miliaran dolar di mana lebih banyak organisasi mencari cara baru untuk memasukkannya ke

Pro dan Kontra Bahasa Pemrograman Swift

Pro dan Kontra Bahasa Pemrograman Swift – Tahukah Anda bagaimana AS berbeda dari seluruh dunia dalam hal preferensi seluler? Menurut Statcounter, pangsa pasar global Android sekitar 72,7 persen, sedangkan iOS