Lenguaje de programación orientado a expresiones

Un lenguaje de programación orientado a expresiones es un lenguaje de programación en el que cada (o casi cada) construcción es una expresión y, por lo tanto, produce un valor. [1] Las excepciones típicas son las definiciones de macros , los comandos de preprocesador y las declaraciones , que los lenguajes orientados a expresiones a menudo tratan como instrucciones .

Lisp [2] y ALGOL 68 son lenguajes orientados a expresiones. Pascal no es un lenguaje orientado a expresiones.

Todos los lenguajes de programación funcional están orientados a expresiones. [3]

Crítica y prevención

Los críticos, incluidos los diseñadores de lenguajes, [4] [ verificación fallida ] culpan a la orientación a expresiones por una clase entera 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 evitan este tipo de error al restringir las expresiones de control a aquellas que evalúan estrictamente el tipo de datos booleano . [5] [6]

Los diseñadores de Python implementaron la asignación como una declaración en lugar de una expresión, lo que prohibía que la asignación se anidara dentro de cualquier otra declaración o expresión. [7] (Hasta la versión 3.8 se agregaron "expresiones de asignación", con una sintaxis diferente. [8] )

En algunos lenguajes orientados a expresiones, las expresiones que simplemente causan efectos secundarios devuelven tipos void .

Ejemplos

Véase también

Referencias

  1. ^ "Glosario - El lenguaje de programación Rust". web.mit.edu . Consultado el 6 de julio de 2022 .
  2. ^ ab Syme, Don (14 de junio de 2020). "La historia temprana de F#". Actas de la ACM sobre lenguajes de programación . 4 (HOPL): 1–58. doi : 10.1145/3386325 . ISSN  2475-1421.
  3. ^ "Programación orientada a expresiones". Knoldus - Technical Insights . 2018-02-08 . Consultado el 2023-08-07 .
  4. ^ Convenciones del código Java "10.4 Asignaciones de variables"
  5. ^ La especificación del lenguaje Java, Java SE 8 Edition "14.9 La declaración if"
  6. ^ Presentando a Ada
  7. ^ Referencia del lenguaje Python "6.2. Declaraciones de asignación"
  8. ^ "PEP 572: Expresiones de asignación"
  9. ^ "Funciones: el lenguaje de programación Rust". web.mit.edu . Consultado el 6 de julio de 2022 .
  10. ^ "COS 326: Programación funcional". www.cs.princeton.edu . Consultado el 6 de julio de 2022 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Expression-oriented_programming_language&oldid=1233570148"