Jezik orijentirano programiranje (LOP) je vrsta programskog jezika koji definira korisnik, ovisno o domeni za koju programira. Domena je važna u definiranju jezično orijentiranog programiranja, pa se mora posebno navesti kada korisnik počne koristiti ovaj jezik. LOP se obično temelji na većoj vrsti programskog jezika, ali to nije uvijek slučaj. LOP je napravljen posebno za domenu i ima mnoga prilagodljiva područja, tako da ovaj jezik obično nije u mogućnosti skalirati za velike i složene probleme. Prije nego što ovaj jezik postane upotrebljiv, korisnik također mora definirati i prevesti jezik ručno.
U širem smislu, programski jezici mogu se podijeliti na jezike specifične ili općenite. Programiranje orijentirano na jezik spada u prvo, što znači da mora biti specificirano za određenu domenu. Ova domena se odnosi na to gdje će se program koristiti i s kojim vrstama problema će jezik raditi i rješavati ih. Iako ovo nije tako svestran kao opći jezik, često čini programiranje jednostavnijim za dovršenje.
Većina jezično orijentiranih programskih jezika prvo se temelji na većem općem programskom jeziku. To je zato što je lakše izgraditi jezik koji se temelji na drugom, a korisniku koji je upoznat s općim jezikom trebao bi biti lakše započeti s LOP-om. Primarna razlika između LOP-a i izvornog općeg jezika su oznake, a mnogi aspekti programskog jezika temelje se na oznakama koje korisnik navede da ih želi koristiti, pretvarajući jezik prema korisničkim specifikacijama.
To što je specifičan za domenu i temelji se na specifikacijama korisnika predstavlja mnoge prednosti, ali jedan od nedostataka ovog sustava je nedostatak skaliranja. Kada su u pitanju manji problemi, programiranje usmjereno na jezik ne bi trebalo imati problema s radom i rješavanjem problema. U isto vrijeme, veći problemi obično su intenzivniji nego što ovaj jezik može riješiti, i obično je bolje držati se većeg općeg jezika ako je potrebno skaliranje.
Drugi problem s programiranjem orijentiranim na jezik je rad potreban prije nego što se jezik može koristiti. Programski jezik je obično dostupan za korištenje uz malo ili nimalo posla, ali LOP zahtijeva da korisnik navede oznake i odjeljke, što može potrajati. Veći problem je što će korisnik morati izraditi prilagođeni prevodilac kako bi programski jezik funkcionirao, a to može biti teško za novog korisnika.