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 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:

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 .

Enlaces externos

Véase también