Koncepcinis programavimas – tai kompiuterinio programavimo stilius, dar žinomas kaip programavimo paradigma, kurio tikslas – programuotojo mintyse atkurti sąvokas kuo tiksliau pačioje programoje. Koncepcinio programavimo idėja yra ta, kad kiekviena kodo dalis turėtų kažką reikšti ir aiškiai parodyti, kokį veiksmą programuotojas nori, kad ta kodo dalis atliktų. Viskas, nuo poreikio, kad vaizdas būtų rodomas ekrane, iki noro, kad įvykus įvykiui būtų rodomas klaidos pranešimas, yra laikoma sąvoka. Kompiuterio kodo dalys, pvz., kabliataškis, nurodantis kodo eilutę, kur baigtis, nėra sąvokos, nes jos skirtos tik tam, kad padėtų kompiuteriui veikti ir neatspindi programuotojo minčių.
Koncepcinio programavimo paradigma nėra pati programavimo kalba. Greičiau tai būdas įvertinti kitas programavimo kalbas, siekiant nustatyti jų trūkumus. Galutinis tikslas – padaryti fizinę kompiuterio programą kuo identiškesnę programuotojo pirminei, abstrakčiai idėjai.
Koncepcinio programavimo metu programuotojas daugiausia dėmesio skiria semantikai ir sintaksei. Semantika yra tai, kaip programa turėtų veikti, o sintaksė yra tokia, kaip programuotojas įsivaizduoja, kad ji turėtų būti parašyta. Pavyzdžiui, Java programoje kodas A+B gali rodyti sudėjimą tarp A ir B. Šios programos sintaksė yra gera, nes ji labai panaši į programuotojo pradinę papildymo koncepciją. Tačiau, jei vykdydama programa sukuria klaidą, kai bando pridėti A ir B, tada programos semantika yra prasta, nes ji neduoda laukiamo rezultato.
Rašydamas kodą, pagrįstą koncepcijų programavimo technikomis, programuotojas pirmiausia nustato sąvokas, kurias programai reikia veikti. Pavyzdžiui, jei programuotoja kurtų virtualų skaičiuotuvą, ji tikriausiai įsivaizduotų, kaip galima sudėti, atimti, dauginti ir padalyti. Ji taip pat įsivaizduotų kokį nors būdą, kaip įvesti duomenis, pavyzdžiui, naudojant klaviatūrą, ir būdą peržiūrėti rezultatus ekrane. Šios idėjos sudaro programos koncepcijas. Ji taip pat gali apsvarstyti, kokios spalvos ir kokio dydžio turėtų būti skaičiuotuvas, tačiau tai nėra sąvokos, nes jos nėra būtinos, kad programa veiktų.
Kai programuotoja baigia sudaryti savo sąvokas, ji randa geriausią būdą toms sąvokoms pateikti kompiuterio kode. Ji siekia parašyti kodą, kuris semantikos ir sintaksės požiūriu labai atitiktų jos idėją. Ji gali naudoti jau esamo kodo dalis, pvz., A+B, arba sukurti savo kodą, kad geriau atspindėtų jos koncepcijas.
Nuo 2011 m. vidurio XL yra vienintelė programavimo kalba, sukurta remiantis koncepcijos programavimo paradigma. Juo siekiama sukurti lanksčias programavimo taisykles ir sintaksę, atitinkančią programuotojo mąstymą. Tai leidžia programuotojams susikoncentruoti ties tuo, ką jie nori sukurti, o ne nerimauti dėl nekoncepcinių dalykų, pavyzdžiui, kodo eilutės užbaigimo kabliataškiu.