Keelele orienteeritud programmeerimine (LOP) on programmeerimiskeele tüüp, mille kasutaja määrab sõltuvalt domeenist, mille jaoks ta programmeerib. Domeen on keelele orienteeritud programmeerimise määratlemisel oluline, seega tuleb see konkreetselt välja öelda, kui kasutaja seda keelt kasutama hakkab. LOP põhineb tavaliselt suuremat tüüpi programmeerimiskeelel, kuid see ei ole alati nii. LOP on loodud spetsiaalselt domeeni jaoks ja sellel on palju kohandatavaid alasid, nii et see keel on tavaliselt suurte ja keerukate probleemide jaoks kehv. Enne selle keele kasutamist peab kasutaja ka keele käsitsi defineerima ja kompileerima.
Laiemas mõttes saab programmeerimiskeeled jagada kas domeenispetsiifilisteks või üldkeelteks. Keelele orienteeritud programmeerimine kuulub esimesse, mis tähendab, et see peab olema määratud teatud domeeni jaoks. See domeen viitab sellele, kus programmi kasutatakse ja millist tüüpi probleeme keel töötab ja lahendab. Kuigi see pole nii mitmekülgne kui üldkeel, muudab see programmeerimise sageli lihtsamaks.
Enamik keelele orienteeritud programmeerimiskeeli põhinevad esmalt suuremal üldisel programmeerimiskeelel. Seda seetõttu, et teist keelt on lihtsam ehitada ja üldkeelt tundval kasutajal peaks olema lihtsam LOP-iga alustada. Peamine erinevus LOP-i ja algse üldkeele vahel on sildid ja paljud programmeerimiskeele aspektid põhinevad siltidel, mida kasutaja määrab, mida ta soovib kasutada, muutes keele vastavalt kasutaja spetsifikatsioonidele.
Domeenispetsiifiline ja kasutaja spetsifikatsioonidest lähtumine pakub palju eeliseid, kuid selle süsteemi üks puudusi on skaleerimise puudumine. Kui tegemist on väiksemate probleemidega, ei tohiks keelepõhisel programmeerimisel probleemiga töötades ja probleemi lahendamisel probleeme tekkida. Samal ajal on suuremad probleemid tavaliselt intensiivsemad, kui see keel suudab toime tulla, ja tavaliselt on parem jääda suurema üldkeele juurde, kui skaleerimine on vajalik.
Teine keelele orienteeritud programmeerimise probleem on töö, mida on vaja enne keele kasutamist. Programmeerimiskeel on tavaliselt saadaval kasutamiseks vähese tööga või üldse mitte, kuid LOP nõuab, et kasutaja määraks sildid ja jaotised, mis võib võtta aega. Suurem probleem on see, et kasutaja peab programmeerimiskeele toimimiseks koostama kohandatud kompilaatori ja see võib uuele kasutajale keeruliseks osutuda.