stringtranslate.com

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 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 crear subrutinas .

Ejemplo

Por ejemplo, una secuencia de operaciones en un lenguaje aplicativo como el 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 procedimientos escritos en estilo concatenativo no tienen nivel de valor , es decir, normalmente no representan las estructuras de datos en las que operan con nombres o identificadores explícitos . En cambio, son de nivel de función  : una función se define como una canalización , o una secuencia de operaciones que toman parámetros de una estructura de datos implícita sobre la cual operan todas las funciones y devuelven los resultados de la función a esa estructura compartida para que sean utilizados por 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 susceptibles a la manipulación algebraica de programas; [4] aunque puede resultar difícil escribir expresiones matemáticas directamente en ellos. [5] Los lenguajes concatenativos se pueden implementar de manera eficiente con una máquina de pila y comúnmente están presentes implícitamente en máquinas virtuales en forma de sus conjuntos de instrucciones . [5]

Propiedades

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

Implementaciones

El primer lenguaje de programación concatenativo fue Forth , aunque Joy fue el primer lenguaje en llamarse a sí mismo concatenativo. Otros lenguajes concatenativos son dc , Factor , Onyx, PostScript y RPL .

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

La mayoría de los lenguajes concatenativos se escriben dinámicamente . Las excepciones incluyen el lenguaje Cat de tipo estático . [12]

Ver también

Referencias

  1. ^ "Christopher Diggins: ¿Qué es un lenguaje concatenativo?". Drdobbs.com. 2008-12-31 . Consultado el 1 de julio de 2013 .
  2. ^ "Código de nombre, no valores". Concatenativa.org . Consultado el 13 de septiembre de 2013 .
  3. ^ "Lenguaje concatenativo". Concatenativa.org . Consultado el 13 de septiembre de 2013 .
  4. ^ "Rationale for Joy, 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: alegría comparada 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 permutación: el cuarto será el primero". Inicio.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 del gato". Lenguaje de gato.com. Archivado desde el original el 5 de febrero de 2015 . Consultado el 1 de julio de 2013 .

enlaces externos