1. Bahasa Pemrograman Tingkat Tinggi
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.
A) Fitur - fitur bahasa pemrograman tingkat tinggi
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.
A) Fitur - fitur bahasa pemrograman tingkat tinggi
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 dibaca dan dieksekusi secara langsung tanpa adanya proses atau tahap kompilasi oleh kompilator. Alat bantu yang mampu melakukannya disebut sebagai penerjemah (interpreter).
·
Dikompilasi
Bahasa jenis ini akan ditransformasikan ke dalam bentuk yang dapat dieksekusi sebelum dijalankan. Ada dua jenis kompilasi yang sering digunakan, yakni:
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.
·
Say
no to tytyd
2. Bahasa Pemrogaman Tingkat Rendah
Bahasa Tingkat Rendah, atau dikenal
dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu
memberikan perintah kepada komputer dengan memakai kode-kode singkat
(kode mnemonic), contohnya kode mesin MOV, SUB, CMP, JMP, JGE, JL,
LOOP, dsb.
Bahasa
rakitan atau
lebih umum dikenal sebagai Assembly digunakan dalam
pemrograman komputer, mikroprosesor, pengendali mikro, dan perangkat
lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan representasi
atas kode mesin dalam bentuk simbol-simbol yang secara relatif lebih dapat
dipahami oleh manusia. Berbeda halnya dengan bahasa-bahasa tingkat tinggi yang
berlaku umum, bahasa rakitan biasanya mendukung secara spesifik untuk suatu
ataupun beberapa jenis arsitektur komputer tertentu. Dengan demikian,
portabilitas bahasa rakitan tidak dapat menandingi bahasa-bahasa lainnya yang
merupakan bahasa pemrograman tingkat tinggi. Namun, bahasa rakitan memungkinkan
programmer memanfaatkan secara penuh kemampuan suatu perangkat keras tertentu
yang biasanya tidak dapat ataupun terbatas bila dibuat dengan menggunakan
bahasa pemrograman tingkat tinggi.
Pada bahasa rakitan, programmer
umumnya menggunakan sebuah program utilitas yang disebut sebagai perakit (bahasa
Inggris: assembler) yang digunakan untuk menerjemahkan kode dalam
bahasa rakitan tersebut ke dalam kode mesin untuk perangkat keras tertentu.
Sebuah perintah dalam bahasa rakitan biasanya akan diterjemahkan menjadi sebuah
instruksi mnemonic dalam kode mesin, berbeda halnya dengan
kompiler pada bahasa pemrograman tingkat tinggi yang menerjemahkan sebuah
perintah menjadi sejumlah instruksi dalam kode mesin.
Beberapa
perangkat lunak bahasa rakitan terkenal biasanya menyediakan tambahan fitur
untuk memfasilitasi proses pengembangan program, mengontrol proses perakitan,
dan alat bantu debugging.
Tidak ada komentar:
Posting Komentar