El lenguaje de programación Joy, en informática, es un lenguaje de programación puramente funcional creado por Manfred von Thun de la Universidad La Trobe en Melbourne , Australia . Joy se basa en la composición de funciones en lugar del cálculo lambda . Se inspiró en el estilo de programación a nivel de función de FP de John Backus . [ 1 ] Ha resultado tener muchas similitudes con Forth , no por su diseño, sino por una evolución y convergencia independientes.
Descripción general
Las funciones en Joy carecen de parámetros formales . Por ejemplo, una función que eleva al cuadrado una entrada numérica se puede expresar de la siguiente manera: [ 2 ]
DEFINIR cuadrado == duplicado * .
En Joy, todo es una función que toma una pila como argumento y devuelve una pila como resultado. Por ejemplo, el número '5' no representa una constante entera, sino un pequeño programa que coloca el número 5 en la pila.
- El operador dup simplemente duplica el elemento superior de la pila insertando una copia del mismo.
- El operador * extrae dos números de la pila y coloca su producto.
Así, la función cuadrado crea una copia del elemento superior y luego multiplica los dos elementos superiores de la pila, dejando el cuadrado del elemento superior original en la parte superior de la pila, sin necesidad de un parámetro formal. Esto hace que Joy sea conciso, como lo ilustra esta definición de quicksort : [ 3 ]
DEFINIR qsort == [pequeño] [] [uncons [>] división] [swapd cons concat] binrec.
Pureza matemática
Joy es un lenguaje de programación concatenativo : "La concatenación de dos programas denota la composición de las funciones denotadas por los dos programas". [ 4 ]
Véase también
Referencias
- ↑ Manfred von Thun (12 de diciembre de 2003). "Una conversación con Manfred von Thun" . Recuperado el 31 de mayo de 2013. A
principios de la década de 1980 me topé con el famoso artículo de Backus "¿Puede liberarse la programación del estilo de von Neumann?", e inmediatamente me intrigó el nivel superior de programación en su FP.
- ↑ "Un tutorial informal sobre la alegría" . Archivado del original el 7 de octubre de 2011.
- ↑ "Biblioteca de secuencias" . Archivado del original el 7 de octubre de 2011.
- ↑ "Fundamentos matemáticos de la alegría" . Archivado del original el 7 de octubre de 2011.
Enlaces externos
- Sitio web oficial del lenguaje de programación Joy (Universidad La Trobe) en Wayback Machine (archivado el 7 de septiembre de 2012).
- Espejo de la página de inicio de Joy
- Código fuente de Joy (Archivo de GitHub)
- Freneger, Paul (agosto de 2003). "La alegría de avanzar" . ACM SIGPLAN Notices . 38 (8): 15– 17. doi : 10.1145/944579.944583 .
- von Thun, Manfred ; Thomas, Reuben (9 de octubre de 2001). "Joy: el primo funcional de Forth" (PDF) . Actas de la 17.ª Conferencia EuroForth .
- Christopher Diggins (31 de diciembre de 2008). "¿Qué es un lenguaje concatenativo?" . Dr. Dobbs.
- Apter, Stevan. "Programación funcional en Joy y K" . Vector . Archivado del original el 28 de agosto de 2008. Consultado el 28 de febrero de 2011 .
- mjoy, un intérprete en Lazarus para dibujos con gráficos de tortugas (Subconjunto de Joy)
- Joy-REPL (aplicación Java para Win/Linux/Mac/etc)
- Lenguajes de programación
- lenguajes de programación concatenativos
- Lenguajes de programación orientados a pilas
- Lenguajes funcionales
- Lenguajes de programación académica
- Lenguajes de programación creados en 2001
- Software de 2001
- Lenguajes de programación dinámicos
- Lenguajes de programación de tipado dinámico
- Lenguajes de programación de alto nivel