Meskipun terminologi masih jauh dari standar, cara yang umum untuk mengkategorikan paradigma pemrograman utama menjadi
- Prosedural
- Fungsional
- Logis
- Berorientasi pada objek
- Umum
Anda sepertinya sudah tahu seperti apa pemrograman prosedural itu.
Dalam fungsional bahasa fungsi diperlakukan sebagai objek kelas. Dengan kata lain, Anda bisa meneruskan fungsi sebagai argumen ke fungsi lain, atau suatu fungsi dapat mengembalikan fungsi lainnya. Paradigma fungsional didasarkan pada kalkulus lambda, dan contoh bahasa fungsional adalah LISP, Skema, dan Haskel. Menariknya, JavaScript juga mendukung pemrograman fungsional.
Dalam pemrograman logis, Anda menentukan predikat yang menggambarkan hubungan antar entitas, seperti president(Obama, USA)
atau president(Medvedev, Russia)
. Predikat ini bisa sangat rumit dan melibatkan variabel, bukan hanya nilai literal. Setelah Anda menentukan semua predikat Anda, Anda dapat mengajukan pertanyaan pada sistem Anda, dan mendapatkan jawaban yang konsisten secara logis.
Gagasan besar dalam pemrograman logis adalah bahwa alih-alih memberi tahu komputer bagaimana menghitung sesuatu, Anda mengatakannya apa saja. Contoh: PROLOG.
Berorientasi pada objekParadigma dalam beberapa hal merupakan perluasan dari pemrograman prosedural. Dalam pemrograman prosedural, Anda memiliki data, yang bisa berupa tipe primitif, seperti bilangan bulat dan float, tipe majemuk, seperti array atau daftar, dan tipe yang ditentukan pengguna, seperti struktur. Anda juga memiliki prosedur Anda, yang beroperasi pada data. Sebaliknya, dalam OO Anda memiliki objek, yang mencakup data dan prosedur. Ini memungkinkan Anda memiliki hal-hal baik seperti enkapsulasi, pewarisan, dan polimorfisme. Contoh: Smalltalk, C ++, Java, C #.
Pemrograman generik pertama kali diperkenalkan di Ada pada tahun 1983, dan menjadi luas setelah pengenalan template di C ++. Ini adalah gagasan bahwa Anda dapat menulis kode tanpa menentukan tipe data aktual yang dioperasikannya, dan minta kompilator mengetahuinya. Misalnya alih-alih menulis
void swap(int, int);
void swap(float, float);
....
kamu akan menulis
void swap(T, T);
sekali, dan minta kompilator membuat kode spesifik untuk apa pun yang T
mungkin, ketika swap()
sebenarnya digunakan dalam kode.
Pemrograman umum didukung ke berbagai tingkatan oleh C ++, Java, dan C #.
Penting untuk dicatat bahwa banyak bahasa, seperti C ++, mendukung banyak paradigma. Juga benar bahwa bahkan ketika suatu bahasa dikatakan mendukung paradigma tertentu, ia mungkin tidak mendukung semua fitur paradigma itu. Belum lagi bahwa ada banyak ketidaksepakatan mengenai fitur yang diperlukan untuk paradigma tertentu.