Selasa, 23 Mei 2017

Python dan Implementasinya

Mungkin bagi programmer yang menggunakan Python sebagai 'main language'nya, tidak asing dengan CPython, Jython, IronPython, dan PyPy. Nah, apa sih sebenarnya mereka? bukannya sama-sama bahasa Python? lalu apa bedanya?

Menurut Wikipedia, Python adalah bahasa pemrograman interpretatif multiguna dengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas, dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif.

CPython adalah implementasi Python asli. Ya, ini adalah implementasi yang kamu download dari Python.org. Disebut CPython untuk membedakannya dari implementasi Python yang lain, lalu, untuk membedakan penerapan bahasa mesin dari bahasa pemrograman Python itu sendiri.
 
CPython kebetulan diimplementasikan di C. Itu hanya detail implementasi saja. CPython mengkompilasi kode python kamu menjadi bytecode (transparan) dan menafsirkan bytecode dalam lingkaran evaluasi.


CPython juga yang pertama menerapkan fitur baru. Pengembangan Python sebagai bahasa menggunakan basis CPython, implementasi lainnya mengikuti dari pengembangan ini.


Jython, IronPython dan PyPy adalah implementasi 'lain' dari bahasa pemrograman Python. Jython diimplementasikan di Java, C# dan RPython (subset dari Python), di implementasika pada lingkungan masing-masing. Jython mengkompilasi kode Python ke Java bytecode, jadi kode Python kamu dapat berjalan di JVM. IronPython memungkinkan kamu menjalankan Python di Microsoft CLR. Dan PyPy, yang diimplementasikan di (subset dari) Python, memungkinkan kamu menjalankan kode Python lebih cepat dari CPython menggunakan JIT Compiler.

 
Jadi CPython tidak menerjemahkan kode Python kamu ke C dengan sendirinya. Ini malah menjalankan sebuah interpreter loop. Ada sebuah proyek yang menerjemahkan kode Python ke C, dan itu disebut Cython. Cython menambahkan beberapa ekstensi ke bahasa Python, dan memungkinkan kamu mengkompilasi kode kamu ke ekstensi C, kode yang dihubungkan ke interpreter CPython.


Masih bingung? menurut keterangan dari Wikipedia di atas, Python adalah 'bahasa' sedangkan CPython, Jython, dll adalah implementasinya. Jika di ibaratkan begini, Python adalah bahasa Inggris, bahasa Inggris di gunakan di negara Inggris tentunya (CPython). Bahasa Inggris bisa di gunakan di negara-negara yang mengimplementasikan bahasa Inggris sebagai bahasa sekundernya. Jadi, kamu bisa berbicara pake bahasa Inggris di negara-negara yang mengimplementasikan bahasa tersebut. Nah, negara disini bisa di ibaratkan JVM, Microsoft CLR, dll.

Walau pengibaratan di atas agak kurang pas, semoga bisa membuat anda tercerahkan (atau malah menyesatkan).

Terimakasih

Show Comments