Jump to content

Joy (programming language)

From Wikipedia, the free encyclopedia
Joy
ParadigmMulti-paradigm: functional, concatenative, stack-oriented
Designed byManfred von Thun
DeveloperManfred von Thun
John Cowan
First appeared2001
Stable release
March 17, 2003 / March 17, 2003
Typing disciplineStrong, dynamic
Major implementations
Joy0, Joy1, "Current Joy", "John Cowan's Joy", "JoyJ (Joy in jvmm)"
Influenced by
Scheme, FP, Forth[citation needed]
Influenced
Factor[1], Cat, V, Trith

Joy is a purely functional programming language that was produced by Manfred von Thun of La Trobe University in Melbourne, Australia. Joy is based on composition of functions rather than the lambda calculus.[2] It was inspired by the function-level programming style of John Backus's FP.[3]

Overview

[edit]

Functions in Joy lack formal parameters, instead functions implicitly operate on a stack.[4] For example, a function that squares a numeric input can be expressed as follows:[4]

DEFINE square == dup * .

The square function makes a copy of the top element with dup, and then multiplies the two top elements of the stack with *, leaving the square of the original top element at the top of the stack, with no need for a formal parameter. This makes Joy concise, as illustrated by this definition of quicksort:[5]

DEFINE qsort ==
  [small]
  []
  [uncons [>] split]
  [swapd cons concat]
  binrec.

Mathematical purity

[edit]

Joy is a concatenative programming language: "The concatenation of two programs denotes the composition of the functions denoted by the two programs".[6]

See also

[edit]

References

[edit]
  1. ↑ Pestov, Sviatoslav; Ehrenberg, Daniel (2010). "Factor: a dynamic stack-based programming language". ACM SIGPLAN Notices. 45 (12). ACM: 43–58. doi:10.1145/1899661.1869637.
  2. ↑ "A Conversation with Manfred von Thun". www.nsl.com. Retrieved 2026-10-06.
  3. ↑ Manfred von Thun (December 12, 2003). "A Conversation with Manfred von Thun". Retrieved May 31, 2013. In the early 1980s I came across the famous Backus paper "Can programming be liberated from the von Neumann style," and I was immediately intrigued by the higher level of programming in his FP.
  4. 1 2 "An informal tutorial on Joy". Archived from the original on October 7, 2011.
  5. ↑ "Sequence Library". Archived from the original on October 7, 2011.
  6. ↑ "Mathematical Foundations of Joy". Archived from the original on October 7, 2011.
[edit]