P-Code: Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
k ←Suntingan Widinugrah (bicara) dibatalkan ke versi terakhir oleh 111.223.255.19
Tag: Pengembalian
LaninBot (bicara | kontrib)
k namun (di tengah kalimat) → tetapi
Baris 1: Baris 1:
'''p-code''' atau sering pula disebut sebagai '''portable-code''', atau '''precompiled-code''', atau '''bytecode''' merupakan istilah yang digunakan untuk merepresentasikan sejumlah instruksi yang ditujukan untuk meningkatkan efisiensi serta unjuk kerja saat dieksekusi oleh perangkat lunak penerjemah ({{asalkata|Inggris|interpreter}}) atau untuk mempermudah penerjemahan lebih lanjut menjadi [[kode mesin]]. Disebabkan instruksi-instruksi tersebut diproses oleh perangkat lunak, dan bukan oleh prosesor secara langsung, kompleksitas p-code bisa jadi lebih tinggi dari kode mesin, namun umumnya tidak lebih kompleks dari instruksi mesin secara umum. Di sisi lain, bytecode yang seringkali banyak digunakan dalam istilah pemrograman bahasa Java merupakan p-code dengan instruksi-instruksi yang diwakili oleh satu kode bita. Berbeda halnya dengan [[kode sumber]] yang umumnya digunakan oleh manusia dalam pemrograman komputer, p-code umumnya lebih bersifat kompak, dan direpresentasikan dalam bentuk serangkaian kode biner yang tampak seolah-olah seperti halnya kode mesin.
'''p-code''' atau sering pula disebut sebagai '''portable-code''', atau '''precompiled-code''', atau '''bytecode''' merupakan istilah yang digunakan untuk merepresentasikan sejumlah instruksi yang ditujukan untuk meningkatkan efisiensi serta unjuk kerja saat dieksekusi oleh perangkat lunak penerjemah ({{asalkata|Inggris|interpreter}}) atau untuk mempermudah penerjemahan lebih lanjut menjadi [[kode mesin]]. Disebabkan instruksi-instruksi tersebut diproses oleh perangkat lunak, dan bukan oleh prosesor secara langsung, kompleksitas p-code bisa jadi lebih tinggi dari kode mesin, tetapi umumnya tidak lebih kompleks dari instruksi mesin secara umum. Di sisi lain, bytecode yang seringkali banyak digunakan dalam istilah pemrograman bahasa Java merupakan p-code dengan instruksi-instruksi yang diwakili oleh satu kode bita. Berbeda halnya dengan [[kode sumber]] yang umumnya digunakan oleh manusia dalam pemrograman komputer, p-code umumnya lebih bersifat kompak, dan direpresentasikan dalam bentuk serangkaian kode biner yang tampak seolah-olah seperti halnya kode mesin.


== Eksekusi ==
== Eksekusi ==
Model pengeksekusian p-code umumnya lebih sederhana dibandingkan penerjemah kode sumber konvensional, pengeksekusian p-code tidak mengenal proses parsing kode sumber karena hal tersebut sudah dilakukan pada saat kompilasi sebelumnya. Penerjemah ataupun [[mesin virtual]] dalam hal ini akan langsung melakukan eksekusi, optimasi, ataupun mentransformasi kode tersebut menjadi kode mesin untuk meningkatkan unjuk kerja eksekusi. Proses transformasi menjadi kode mesin sejatinya mengurangi makna portabilitas eksekusi, namun karena hal tersebut terjadi pada aras eksekusi akhir, keberadaannya tidak mengurangi tingkat portabilitas dari p-code itu sendiri.
Model pengeksekusian p-code umumnya lebih sederhana dibandingkan penerjemah kode sumber konvensional, pengeksekusian p-code tidak mengenal proses parsing kode sumber karena hal tersebut sudah dilakukan pada saat kompilasi sebelumnya. Penerjemah ataupun [[mesin virtual]] dalam hal ini akan langsung melakukan eksekusi, optimasi, ataupun mentransformasi kode tersebut menjadi kode mesin untuk meningkatkan unjuk kerja eksekusi. Proses transformasi menjadi kode mesin sejatinya mengurangi makna portabilitas eksekusi, tetapi karena hal tersebut terjadi pada aras eksekusi akhir, keberadaannya tidak mengurangi tingkat portabilitas dari p-code itu sendiri.


== Keuntungan dan kelemahan pemanfaatan p-code ==
== Keuntungan dan kelemahan pemanfaatan p-code ==
Baris 12: Baris 12:
* '''Debugging''', saat set instruksi p-code dieksekusi, penerjemah dapat menyisipkan instruksi-instruksi tambahan yang mempermudah proses debugging, hal yang sulit dilakukan saat proses eksekusi kode mesin yang langsung dieksekusi oleh [[prosesor]] secara langsung.
* '''Debugging''', saat set instruksi p-code dieksekusi, penerjemah dapat menyisipkan instruksi-instruksi tambahan yang mempermudah proses debugging, hal yang sulit dilakukan saat proses eksekusi kode mesin yang langsung dieksekusi oleh [[prosesor]] secara langsung.
=== Kelemahan ===
=== Kelemahan ===
Satu kelemahan utama dari implementasi berbasis p-code umumnya adalah tingkat unjuk kerja yang rendah, namun saat ini peningkatan unjuk kerja sehingga setara dengan kode mesin dimungkinkan dengan diimplementasikannya JIT.
Satu kelemahan utama dari implementasi berbasis p-code umumnya adalah tingkat unjuk kerja yang rendah, tetapi saat ini peningkatan unjuk kerja sehingga setara dengan kode mesin dimungkinkan dengan diimplementasikannya JIT.


== Lihat pula ==
== Lihat pula ==

Revisi per 6 Juni 2019 23.37

p-code atau sering pula disebut sebagai portable-code, atau precompiled-code, atau bytecode merupakan istilah yang digunakan untuk merepresentasikan sejumlah instruksi yang ditujukan untuk meningkatkan efisiensi serta unjuk kerja saat dieksekusi oleh perangkat lunak penerjemah (bahasa Inggris: interpreter) atau untuk mempermudah penerjemahan lebih lanjut menjadi kode mesin. Disebabkan instruksi-instruksi tersebut diproses oleh perangkat lunak, dan bukan oleh prosesor secara langsung, kompleksitas p-code bisa jadi lebih tinggi dari kode mesin, tetapi umumnya tidak lebih kompleks dari instruksi mesin secara umum. Di sisi lain, bytecode yang seringkali banyak digunakan dalam istilah pemrograman bahasa Java merupakan p-code dengan instruksi-instruksi yang diwakili oleh satu kode bita. Berbeda halnya dengan kode sumber yang umumnya digunakan oleh manusia dalam pemrograman komputer, p-code umumnya lebih bersifat kompak, dan direpresentasikan dalam bentuk serangkaian kode biner yang tampak seolah-olah seperti halnya kode mesin.

Eksekusi

Model pengeksekusian p-code umumnya lebih sederhana dibandingkan penerjemah kode sumber konvensional, pengeksekusian p-code tidak mengenal proses parsing kode sumber karena hal tersebut sudah dilakukan pada saat kompilasi sebelumnya. Penerjemah ataupun mesin virtual dalam hal ini akan langsung melakukan eksekusi, optimasi, ataupun mentransformasi kode tersebut menjadi kode mesin untuk meningkatkan unjuk kerja eksekusi. Proses transformasi menjadi kode mesin sejatinya mengurangi makna portabilitas eksekusi, tetapi karena hal tersebut terjadi pada aras eksekusi akhir, keberadaannya tidak mengurangi tingkat portabilitas dari p-code itu sendiri.

Keuntungan dan kelemahan pemanfaatan p-code

Keuntungan

Dibandingkan dengan penerjemahan langsung kode sumber menjadi kode mesin, proses multi-tahapan yang dilalui oleh p-code menawarkan beberapa kentungungan:

  • Portabilitas, pengembangan penerjemah p-code sehingga bisa berjalan pada platform lain umumnya lebih mudah bila dibandingkan dengan mengembangkan kompiler baru yang dapat mentransformasikan kode sumber secara langsung menjadi kode mesin untuk tiap-tiap platform yang hendak didukung.
  • Implementasi yang lebih sederhana, proses pentransformasian kode sumber menjadi kode mesin merupakan bagian yang sangat kompleks dalam pengembangan sebuah kompiler.
  • Ukuran yang lebih kecil, disebabkan p-code umumnya berbasis implementasi ideal sebuah mesin virtual, ukuran akhir sebuah berkas p-code umumnya lebih kecil dibandingkan ukuran berkas kode mesin.
  • Debugging, saat set instruksi p-code dieksekusi, penerjemah dapat menyisipkan instruksi-instruksi tambahan yang mempermudah proses debugging, hal yang sulit dilakukan saat proses eksekusi kode mesin yang langsung dieksekusi oleh prosesor secara langsung.

Kelemahan

Satu kelemahan utama dari implementasi berbasis p-code umumnya adalah tingkat unjuk kerja yang rendah, tetapi saat ini peningkatan unjuk kerja sehingga setara dengan kode mesin dimungkinkan dengan diimplementasikannya JIT.

Lihat pula

Bacaan lanjutan