Articulo de referencia

Lenguaje de programación concatenativo

Un lenguaje de programación concatenativo es un lenguaje de programación informática sin puntos en el que todas las expresiones denotan funciones y la yuxtaposición de expresion...

Un lenguaje de programación concatenativo es un lenguaje de programación informática sin puntos en el que todas las expresiones denotan funciones y la yuxtaposición de expresiones denota composición de funciones . [1] La programación concatenativa reemplaza la aplicación de funciones , que es común en otros estilos de programación, con la composición de funciones como la forma predeterminada de construir subrutinas .

Ejemplo

Por ejemplo, una secuencia de operaciones en un lenguaje aplicativo como la siguiente:

y = foo ( x ) z = barra ( y ) w = baz ( z )  
  
  

...está escrito en un lenguaje concatenativo como una secuencia de funciones: [2]

x foo bar baz

Las funciones y los procedimientos escritos en estilo concatenativo no son de nivel de valor , es decir, normalmente no representan las estructuras de datos sobre las que operan con nombres o identificadores explícitos . En cambio, son de nivel de función  : una función se define como una tubería o una secuencia de operaciones que toman parámetros de una estructura de datos implícita sobre la que operan todas las funciones y devuelven los resultados de la función a esa estructura compartida para que los use el siguiente operador. [3]

La combinación de semántica compositiva con una sintaxis que refleja dicha semántica hace que los lenguajes concatenativos sean muy aptos para la manipulación algebraica de programas; [4] aunque puede resultar difícil escribir expresiones matemáticas directamente en ellos. [5] Los lenguajes concatenativo se pueden implementar de manera eficiente con una máquina de pila y, por lo general, están presentes de manera implícita en las máquinas virtuales en forma de sus conjuntos de instrucciones . [5]

Propiedades

Las propiedades de los lenguajes concatenativo son el resultado de su sintaxis y semántica compositiva:

  • La reducción de cualquier expresión es la simplificación de una función a otra función; nunca es necesario tratar la aplicación de funciones a objetos. [6]
  • Cualquier subexpresión se puede reemplazar con un nombre que represente la misma subexpresión. Esto se conoce en la comunidad concatenativa como factorización y se utiliza ampliamente para simplificar los programas en partes más pequeñas.
  • La sintaxis y la semántica de los lenguajes concatenativo forman la estructura algebraica de un monoide . [7]
  • Los lenguajes concatenativo pueden adaptarse bien a una implementación inspirada en la lógica lineal donde nunca se genera basura . [8]

Implementaciones

El primer lenguaje de programación concatenativo fue Forth , aunque Joy fue el primer lenguaje que se autodenominó concatenativo. Otros lenguajes concatenativo son dc , Factor , Onyx, PostScript y RPL .

La mayoría de los lenguajes concatenativo existentes están basados ​​en pila ; esto no es un requisito y se han propuesto otros modelos. [9] [10] [11] Los lenguajes concatenativo se utilizan actualmente para programación integrada , de escritorio y web , como lenguajes de destino y para fines de investigación.

La mayoría de los lenguajes concatenativo son de tipado dinámico . Las excepciones incluyen el lenguaje Cat, de tipado estático . [12]

Véase también

Referencias

  1. ^ "Christopher Diggins: ¿Qué es un lenguaje concatenativo?". Drdobbs.com. 2008-12-31 . Consultado el 2013-07-01 .
  2. ^ "Código de nombre, no valores". Concatenative.org . Consultado el 13 de septiembre de 2013 .
  3. ^ "Lenguaje concatenativo". Concatenative.org . Consultado el 13 de septiembre de 2013 .
  4. ^ "Fundamentos de la alegría, un lenguaje funcional". Archivado desde el original el 15 de enero de 2011.
  5. ^ ab "Por qué es importante la programación concatenativa" . Consultado el 13 de septiembre de 2013 .
  6. ^ "von Thun, Manfred: Joy comparado con otros lenguajes funcionales". Archivado desde el original el 6 de octubre de 2011.
  7. ^ "von Thun, Manfred: Fundamentos matemáticos de la alegría". Archivado desde el original el 31 de julio de 2010.
  8. ^ "Henry Baker: Lógica lineal y pilas de permutaciones: el cuarto será el primero". Home.pipeline.com. Archivado desde el original el 24 de julio de 2014. Consultado el 1 de julio de 2013 .
  9. ^ "El lenguaje concatenativo XY". Nsl.com . Consultado el 1 de julio de 2013 .
  10. ^ "El lenguaje de programación Enchilada". Enchiladacode.nl . Consultado el 1 de julio de 2013 .
  11. ^ "El lenguaje de programación Om". Om-language.org . Consultado el 1 de julio de 2013 .
  12. ^ "Especificación de gato". Cat-language.com. Archivado desde el original el 5 de febrero de 2015. Consultado el 1 de julio de 2013 .
  • concatenative.org: Una wiki sobre lenguajes concatenativo
  • Staapl: Avanzando en el proyecto de controladores integrados
  • El lenguaje de programación Enchilada
  • El lenguaje concatenativo XY
  • El lenguaje de programación Om

Véase también

  • {{ Lenguaje informático }}
  • {{ Lenguajes de programación }}
  • {{ Cuadro de navegación de paradigmas de programación }}
Obtenido de "https://es.wikipedia.org/w/index.php?title=Lenguaje_de_programación_concatenativo&oldid=1202032849"