La programación orientada al lenguaje (LOP) es un tipo de lenguaje de programación que define el usuario, dependiendo del dominio para el que está programando. El dominio es importante para definir la programación orientada al lenguaje, por lo que debe indicarse específicamente cuando el usuario comienza a utilizar este lenguaje. LOP normalmente se basa en un tipo de lenguaje de programación más grande, pero no siempre es así. LOP está hecho específicamente para un dominio y tiene muchas áreas personalizables, por lo que este lenguaje generalmente es deficiente para escalar problemas grandes y complejos. Antes de que este idioma sea utilizable, el usuario también debe definir y compilar el idioma manualmente.
En un sentido amplio, los lenguajes de programación se pueden separar en lenguajes generales o específicos de dominio. La programación orientada al lenguaje pertenece a la primera, lo que significa que debe especificarse para un dominio determinado. Este dominio se refiere a dónde se utilizará el programa y con qué tipo de problemas trabajará y resolverá el lenguaje. Si bien esto no es tan versátil como un lenguaje general, a menudo hace que la programación sea más simple de completar.
La mayoría de los lenguajes de programación orientados al lenguaje se basan primero en un lenguaje de programación general más grande. Esto se debe a que es más fácil construir un lenguaje que se basa en otro, y un usuario familiarizado con el lenguaje general debería encontrar más fácil comenzar con LOP. La principal diferencia entre LOP y el lenguaje general original son las etiquetas, y muchos aspectos del lenguaje de programación se basan en etiquetas que el usuario especifica que quiere usar, transformando el lenguaje a las especificaciones del usuario.
Ser específico del dominio y estar basado en la especificación del usuario presenta muchas ventajas, pero una de las desventajas de este sistema es la falta de escala. Cuando se trata de problemas más pequeños, la programación orientada al lenguaje no debería tener problemas para trabajar y resolver el problema. Al mismo tiempo, los problemas más grandes suelen ser más intensivos de lo que este lenguaje es capaz de manejar y, por lo general, es mejor seguir con un lenguaje general más amplio si se requiere escalado.
Otro problema con la programación orientada al lenguaje es el trabajo necesario antes de que se pueda utilizar el lenguaje. Normalmente, un lenguaje de programación está disponible para su uso con poco o ningún trabajo, pero LOP requiere que el usuario especifique etiquetas y secciones, lo que puede llevar tiempo. El problema más importante es que el usuario necesitará crear un compilador personalizado para que el lenguaje de programación funcione, y esto puede ser difícil para un nuevo usuario.