Paradigma
Program komputer dapat dikategorikan menurut paradigma bahasa pemrograman yang digunakannya. Dua paradigma utama yang umum digunakan adalah imperatif dan deklaratif.
Program yang ditulis dalam bahasa pemrograman imperatif biasanya memiliki algoritma yang ditulis dalam serangkaian klausal pendeklarasian, ekspresi aritmatis, dan sejumlah perintah.[3] Pendeklarasian meliputi pendeklarasian variabel serta tipe data atas variabel tersebut, contoh: var x: integer; Penggunaan ekpresi operasi aritmatis yang menghasilkan nilai, contoh: 2 + 2 menghasilkan nilai 4. Dan perintah yang melingkupi pendelegasian nilai atas hasil dari operasi aritmatis tersebut ke dalam sebuah variabel, contoh: x := 2 + 2; if x = 4 then lakukan_sesuatu(); Salah satu bentuk kritik atas implementasi imperatif ini adalah efek samping yang timbul atas pendelegasian perintah terhadap variabel yang berada diluar cakupan dari fungsi tersebut atau lebih dikenal sebagai non-local variable.[4]
Program yang ditulis dengan bahasa deklaratif meliputi sejumlah properti yang harus dipenuhi untuk mendapatkan suatu bentuk hasil tertentu. Properti tersebut tidak mencerminkan suatu gambaran atas proses kerja suatu program namun merupakan suatu bentuk deklarasi relasional matematis atas sejumlah objek melaui properti-propertinya. Dua bagian utama atas pemrograman deklaratif adalah bahasa pemrograman fungsional dan bahasa pemrograman logikal. Prinsip dasar dibalik bahasa pemrograman fungsional (Haskell) adalah mencegah timbulnya efek samping seperti yang terdapat pada model pemrograman imperatif sehingga membuatnya lebih mudah untuk digunakan membuat program yang melakukan sejumlah operasi matematis.[4] Sementara itu, prinsip dari sebuah bahasa pemrograman logikal (Prolog) adalah mendefinisikan permasalahan yang hendak diselesaikan, tujuan yang hendak dicapai, dan membiarkan sistem melakukan analisis atas detail solusi terhadap permasalahan tersebut.[5] Tujuan utama atas sebuah program didefinisikan dengan cara membuat sejumlah tujuan-tujuan yang lebih kecil, kemudian pada tiap-tiap tujuan tersebut secara lebih lanjut didefinisikan tujuan-tujuan lain yang lebih kecil lagi, dan begitu seterusnya. Jika suatu arahan tujuan yang didefinisikan gagal digunakan untuk menemukan solusi atas suatu permasalahan, maka arahan tujuan anakan yang lebih kecil akan di telusuri ulang, dan arahan lainnya akan diujicobakan.
Bentuk dari cara sebuah program dibuat bisa berupa tekstual ataupun visual. Dalam pemrograman visual, elemen-elemen program biasanya dimanipulasi secara grafis, sementara bila dibuat secara tekstual artinya sebuah program ditulis secara manual.