Dalam terminologi pemrograman komputer, bahasa pemrograman sering dipisahkan menjadi bahasa "tingkat tinggi" dan "tingkat rendah". Perbedaan antara keduanya adalah masalah interaksi perangkat keras. Sederhananya, bahasa tingkat rendah berada "lebih rendah" pada sistem komputer, lebih dekat dengan interaksi perangkat keras yang sebenarnya. Bahasa tingkat tinggi diabstraksikan dari perangkat keras. Hasil dari abstraksi ini dapat menghasilkan kode yang lebih cepat dan lebih mudah dibaca, tetapi manfaat kecepatan yang lebih rendah dan akses yang lebih sedikit ke sumber daya sistem.
Abstraksi
Apa yang membuat bahasa tingkat tinggi berbeda dari bahasa tingkat rendah adalah tingkat abstraksi yang dimiliki bahasa dari sumber daya sistem. Berurusan dengan sumber daya sistem setiap hari bisa menjadi lambat dan menyakitkan. Bahasa tingkat tinggi diciptakan untuk mengatasi masalah ini dengan menangani sistem untuk programmer, membebaskan dia untuk menyelesaikan tugas yang lebih maju sambil mengabaikan detail kecil dari sistem, seperti memori pengelolaan. Namun, ini memiliki kelemahan karena seorang programmer mungkin menemukan dirinya dalam situasi di mana akses sistem diperlukan, dan bahasa tingkat tinggi tidak dapat memberikan akses itu. Bahasa tingkat tinggi biasanya tidak cocok untuk pemrograman sistem.
Video Hari Ini
Kecepatan
Bahasa tingkat tinggi biasanya adalah bahasa yang "ditafsirkan" daripada bahasa tingkat rendah yang "dikompilasi". "Ditafsirkan" berarti bahwa suatu bahasa menggunakan juru bahasa yang mengeksekusi kode sumber satu baris pada satu waktu, daripada mengkompilasi file biner. Namun, juru bahasa sering kali merupakan program yang ditulis dalam bahasa yang dikompilasi. Karena itu, bahasa yang ditafsirkan -- Python, sebagai contoh -- hanya berjalan di atas penerjemah Python, yang ditulis dalam C. Hal ini meningkatkan memori dan overhead waktu untuk program yang ditafsirkan, dan sering kali dijalankan lebih lambat.
Keunikan Sistem
Kekuatan yang tampak dari kode tingkat tinggi adalah portabilitasnya. Kode tingkat tinggi dapat berjalan di sistem apa pun yang memiliki penerjemah yang sesuai. Namun, ketika sebuah program dikompilasi untuk komputer, ia memperhitungkan seluruh lingkungan sistem itu dalam kompilasinya. Bahasa yang ditafsirkan sudah diabstraksikan dari sistem sedemikian rupa sehingga program yang ditafsirkan tidak tahu apa-apa tentang sistem kecuali apa yang dapat disediakan oleh juru bahasa itu.
Batas Pemrograman
Karena sifat bahasa tingkat tinggi, ada tugas-tugas tertentu yang tidak cocok untuk mereka, atau setidaknya belum cocok. Tanpa akses ke sumber daya sistem, mengembangkan aplikasi OS-asli yang cepat menjadi sulit. Lebih jauh, bahkan mengembangkan sistem operasi menjadi masalah. Karena semakin banyak perangkat lunak yang bergerak online, fakta ini menjadi kurang menjadi perhatian, tetapi untuk penggunaan komersial dan industri, bahasa yang ditafsirkan mungkin bekerja terlalu lambat, atau terlalu jauh dari interaksi perangkat keras.