Un lenguaje de programación orientado a expresiones es un lenguaje de programación en el que todas (o casi todas) las construcciones son una expresión y, por lo tanto, producen un valor. Las excepciones típicas son las definiciones de macros , los comandos del preprocesador y las declaraciones , que los lenguajes orientados a expresiones a menudo tratan como declaraciones .
ALGOL 68 y Lisp son lenguajes orientados a expresiones. Pascal no es un lenguaje orientado a la expresión.
Todos los lenguajes de programación funcional están orientados a expresiones. [ cita requerida ]
Crítica y prevención
Los críticos, incluidos los diseñadores de lenguajes, [1] culpan a la orientación a la expresión de toda una clase de errores de programación en los que un programador codifica accidentalmente una expresión de asignación , que reemplaza una variable con una expresión en lugar de probar su igualdad con esa expresión.
Los diseñadores de Ada y Java previenen este tipo de errores al restringir las expresiones de control a aquellas que evalúan estrictamente al tipo de datos booleanos . [2] [3]
Los diseñadores de Python implementaron la asignación como una declaración en lugar de una expresión, por lo que prohibieron que la asignación se anidara dentro de cualquier otra declaración o expresión. [4]
En algunos lenguajes orientados a expresiones, las expresiones que simplemente causan efectos secundarios devuelven tipos vacíos .