Tolong jelaskan mengenai Alasan dari Abstraksi (ilmu komputer)

Perhitungan komputer berbeda dengan dunia nyata. Perangkat lunak memiliki arsitektur yang memungkinkan orang membuat sistem skala besar dengan fokus pada beberapa hal pada waktu tertentu. Arsitektur ini dibuat dengan abstraksi tertentu.

Bentuk utama dari abstraksi adalah abstraksi bahasa: bahasa buatan dikembangkan untuk menyatakan aspek tertentu dari sistem. Bahasa komputer dapat diolah oleh komputer. Contoh proses abstraksi adalah pengembangan bahasa pemrograman dari bahasa mesin, ke bahasa rakitan, dan bahasa pemrograman tingkat tinggi. Tiap tingkatan digunakan sebagai batu loncatan ke tingkatan lain. Abstraksi bahasa juga terdapat dalam bahasa skrip.

Dalam bahas pemrograman, beberapa fitur memeungkinkan pemrogram untuk membuat abstraksi baru. Hal ini termasuk subrutin, modul, polymorphism, dan komponen. beberapa abstraksi lain seperti pola desain dan arsitektur tidak dibaca oleh translator dan hanya bekerja pada sistem.

Beberapa abstraksi mencoba untuk mengurangi konsep yang harus dipahami oleh pemrogram, dengan menyembunyikan abstraksi yang digunakan. Penulis dan perancang perangkat lunak Joel Spolsky mengkritik usaha ini dengan mengatakan bahwa semua abstraksi tidak dapat sepenuhnya disembunyikan. Meski demikian, hal ini tidak mengurangi keuntungan dari abstraksi.

Beberapa abstraksi dirancang untuk bekerja bersama dengan abstraksi lain, misalnya sebuah bahasa pemrograman mungkin mengandung foreign function interface untuk menggunakan bahasa pemrograman yang lebih rendah.