Bahasa pemrograman tingkat tinggi adalah sebuah bahasa pemrograman
yang jika dibandingkan dengan bahasa pemrograman tingkat rendah memiliki sifat
lebih mudah digunakan, lebih portabel (mudah diadaptasikan) antar-platform, dan
lebih abstrak. Bahasa-bahasa semacam ini sering melakukan abstraksi terhadap
beberapa operasi CPU, seperti halnya pengaksesan memori.
Istilah
"bahasa pemrograman tingkat tinggi" tidak serta merta menjadikan
bahasa tersebut lebih baik dibandingkan dengan bahasa pemrograman tingkat
rendah. Akan tetapi, maksud dari "tingkat tinggi" di sini merujuk
kepada abstraksi yang lebih tinggi dibandingkan dengan bahasa tingkat rendah
terhadap bahasa mesin. Dibandingkan dengan harus berurusan dengan register,
alamat memori dan stack-stack panggilan, bahasa pemrograman tingkat tinggi akan
berurusan dengan variabel, larik, dan ekspresi aritmetika atau aljabar Boolean.
Selain itu, tidak seperti bahasa rakitan, bahasa tingkat tinggi tidak memiliki opcode
atau kode operasi yang dapat secara langsung menjadikan bahasa tersebut menjadi
kode mesin. Fitur lainnya seperti rutin-rutin penanganan string, fitur
pemrograman berorientasi objek, input/output terhadap berkas juga terdapat di
dalam jenis bahasa ini.
Secara
umum, bahasa tingkat tinggi akan membuat pemrograman komputer yang kompleks
menjadi lebih sederhana, sementara bahasa tingkat rendah cenderung untuk
membuat kode yang lebih efisien. Dalam sebuah bahasa tingkat tinggi,
elemen-elemen kompleks dapat dipecah ke dalam beberapa elemen yang lebih
sederhana, meski masih dapat dianggap kompleks, di mana bahasa tersebut
menyediakan abstraksi. Karena alasan ini, kode-kode yang harus berjalan dengan
efisien dapat ditulis dalam bahasa pemrograman tingkat rendah, sementara bahasa
tingkat tinggi digunakan untuk mempermudah pemrograman.
Akan
tetapi, dengan bertambah rumitnya arsitektur mikroprosesor modern,
kompilator-kompilator bahasa pemrograman tingkat tinggi dapat membuat kode yang
lebih efisien dibandingkan dengan para programmer bahasa pemrograman tingkat
rendah yang melakukannya secara manual.
Perlu
dicatat bahwa istilah "tingkat tinggi" dan "tingkat rendah"
adalah relatif. Pada awalnya, bahasa rakitan dianggap sebagai bahasa tingkat
rendah, sementara COBOL, C, dan lain-lainnya dianggap sebagai bahasa tingkat
tinggi, mengingat mereka mengizinkan abstraksi terhadap fungsi, variabel, dan
evaluasi ekspresi. Akan tetapi, banyak programmer saat ini mungkin menganggap
bahasa C sebagai bahasa pemrograman tingkat rendah, mengingat bahasa
pemrograman tersebut mengizinkan akses memori secara langsung dengan
menggunakan alamatnya, dan juga dapat menggunakan beberapa direktif bahasa
rakitan.
Ada tiga
buah model eksekusi untuk bahasa tingkat tinggi, yakni:
Diinterpretasikan
Bahasa jenis
ini akan dibaca dan dieksekusi secara langsung tanpa adanya proses atau tahap
kompilasi oleh kompilator. Alat bantu yang mampu melakukannya disebut sebagai penerjemah (interpreter).
Bahasa jenis
ini akan ditransformasikan ke dalam bentuk yang dapat dieksekusi sebelum
dijalankan. Ada dua jenis kompilasi yang sering digunakan, yakni:
Intermediate representation
Ketika sebuah bahasa dikompilasi ke dalam intermediate representation, representasi tersebut dapat dioptimalkan atau disimpan untuk eksekusi pada lain waktu tanpa adanya kebutuhan untuk membaca lagi kode sumber program. Ketika representasi intermediate disimpan, umumnya, hal tersebut dinamakan dengan bytecode.
Ketika sebuah bahasa dikompilasi ke dalam intermediate representation, representasi tersebut dapat dioptimalkan atau disimpan untuk eksekusi pada lain waktu tanpa adanya kebutuhan untuk membaca lagi kode sumber program. Ketika representasi intermediate disimpan, umumnya, hal tersebut dinamakan dengan bytecode.
Machine code generation
Beberapa bahasa dapat melakukan kompilasi secara langsung ke dalam bahasa mesin.
Beberapa bahasa dapat melakukan kompilasi secara langsung ke dalam bahasa mesin.
Ditranslasikan
Sebuah bahasa juga dapat ditranslasikan ke dalam bahasa pemrograman tingkat rendah di mana kompilator kode bahasa asli telah beredar luas. Bahasa pemrograman C merupakan salah satu target yang umum untuk translator seperti ini.
Sebuah bahasa juga dapat ditranslasikan ke dalam bahasa pemrograman tingkat rendah di mana kompilator kode bahasa asli telah beredar luas. Bahasa pemrograman C merupakan salah satu target yang umum untuk translator seperti ini.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.