Recursive acronym

From Wikipedia, the free encyclopedia

A recursive acronym is an acronym that refers to itself, and appears most frequently in computer programming. The term was first used in print in 1979 in Douglas Hofstadter's book Gödel, Escher, Bach: An Eternal Golden Braid, in which Hofstadter invents the acronym GOD, meaning "GOD Over Djinn", to help explain infinite series, and describes it as a recursive acronym.[1] Other references followed,[2] however the concept was used as early as 1968 in John Brunner's science fiction novel Stand on Zanzibar. In the story, the acronym EPT (Education for Particular Task) later morphed into "Eptification for Particular Task".

Recursive acronyms typically form backwardly: either an existing ordinary acronym is given a new explanation of what the letters stand for, or a name is turned into an acronym by giving the letters an explanation of what they stand for, in each case with the first letter standing recursively for the whole acronym.

Use in computing[edit]

In computing, an early tradition in the hacker community, especially at MIT, was to choose acronyms and abbreviations that referred humorously to themselves or to other abbreviations. Perhaps the earliest example in this context is the backronym "Mash Until No Good", which was created in 1960 to describe Mung, and revised to "Mung Until No Good". It lived on as a recursive command in the editing language TECO.[3] In 1977[3] programmer Ted Anderson coined TINT ("TINT Is Not TECO"), an editor for MagicSix. This inspired the two MIT Lisp Machine editors called EINE ("EINE Is Not Emacs", German for one) and ZWEI ("ZWEI Was EINE Initially", German for two), in turn inspiring Anderson's retort SINE ("SINE is not EINE"). Richard Stallman followed with GNU (GNU's Not Unix).

Recursive acronym examples often include negatives, such as denials that the thing defined is or resembles something else (which the thing defined does in fact resemble or is even derived from), to indicate that, despite the similarities, it was distinct from the program on which it was based.[4]

An earlier example appears in a 1976 textbook on data structures, in which the pseudo-language SPARKS is used to define the algorithms discussed in the text. "SPARKS" is claimed to be a non-acronymic name, but "several cute ideas have been suggested" as expansions of the name. One of the suggestions is "Smart Programmers Are Required to Know SPARKS".[5] (this example is tail recursive)

Other examples are the YAML language, which stands for "YAML ain't a markup language" and PHP language meaning "PHP: Hypertext Preprocessor".

Examples[edit]

  • Allegro: Allegro Low LEvel Game ROutines (early versions for Atari ST were called "Atari Low Level Game Routines")
  • AROS: AROS Research Operating System (originally Amiga Research Operating System)
  • ATI: ATI Technologies Inc.
  • BIRD: BIRD Internet Routing Daemon
  • CAVE: CAVE Automatic Virtual Environment
  • cURL: Curl URL Request Library[6]
  • Darcs: Darcs Advanced Revision Control System
  • EINE: EINE Is Not Emacs
  • FIJI: FIJI Is Just ImageJ
  • GiNaC: GiNaC is Not a CAS (Computer Algebra System)
  • GNU: GNU's Not Unix
  • GNE (encyclopedia): GNE's Not an Encyclopedia
  • GPE: GPE Palmtop Environment
  • gRPC: grpc Remote Procedure Calls
  • KGS: KGS Go Server
  • LAME: LAME Ain't an MP3 Encoder[7]
  • LiVES: LiVES is a Video Editing System
  • MINT: MINT Is Not TRAC
  • MiNT: MiNT is Not TOS (later changed to "MiNT is Now TOS")
  • Mung: Mung Until No Good[8]
  • Nagios: Nagios Ain't Gonna Insist On Sainthood (a reference to the previous name of Nagios, "Netsaint"; agios [αγιος] is the Greek word for "saint")
  • NiL: NiL Isn't Liero
  • Ninja-ide: Ninja-IDE Is Not Just Another IDE
  • PHP: PHP: Hypertext Preprocessor (from "Personal Home Page Tools", more frequently referenced as "PHP Tools."[9])
  • PINE: PINE Is Nearly Elm, originally; PINE now officially stands for "Pine Internet News and E-mail"[10]
  • PIP: PIP Installs Packages
  • P.I.P.S.: P.I.P.S. Is POSIX on Symbian
  • PNG: officially "Portable Network Graphics", but unofficially "PNG's not GIF".[11]
  • RPM: RPM Package Manager
  • SPARQL: SPARQL Protocol And RDF Query Language
  • TikZ: TikZ ist kein Zeichenprogramm (German; TikZ is not a drawing program)
  • TiLP: TiLP is a Linking Program
  • TIP: TIP isn't Pico
  • TRESOR: TRESOR Runs Encryption Securely Outside RAM
  • UIRA: UIRA Isn't a Recursive Acronym
  • WINE: WINE Is Not an Emulator[12] (Originally, Windows Emulator[13])
  • XAMPP: XAMPP Apache MariaDB PHP Perl
  • XBMC: XBMC Media Center (originally Xbox Media Center)
  • XINU: XINU Is Not Unix
  • XNA: XNA's Not Acronymed
  • YAML: YAML Ain't Markup Language (initially "Yet Another Markup Language")
  • YARA: Yara: Another Recursive Acronym
  • Zinf: Zinf Is Not FreeAmp
  • ZWEI: ZWEI Was EINE Initially ("eins" and "zwei" are German for "one" and "two" respectively)

Other examples[edit]

Companies and organizations[edit]

In media[edit]

  • The initials for the Commodore CDTV stand for Commodore Commodore Dynamic Total Vision.
  • TTP: a technology project in the Dilbert comic strip. The initials stand for "The TTP Project".[18]
  • GRUNGE: defined by Homer Simpson in The Simpsons episode That '90s Show as "Guitar Rock Utilizing Nihilist Grunge Energy", another uncommon example of a recursive acronym whose recursive letter is neither the first nor the last letter.
  • BOB: the primary antagonist from the series Twin Peaks. His name itself is an acronym standing for "Beware of BOB".
  • KOS-MOS: a character from the Xenosaga series of video games. "KOS-MOS" is a recursive acronym meaning "Kosmos Obey Strategical Multiple Operating Systems".
  • Hiroshi Yoshimura's "A・I・R" stands for "AIR IN RESORT".

Special[edit]

  • The GNU Hurd project is named with a mutually recursive acronym: "Hurd" stands for "Hird of Unix-Replacing Daemons", and "Hird" stands for "Hurd of Interfaces Representing Depth."
  • RPM, PHP, XBMC and YAML were originally conventional acronyms which were later redefined recursively. They are examples of, or may be referred to as, backronymization,[citation needed] where the official meaning of an acronym is changed.
  • Jini claims the distinction of being the first recursive anti-acronym: 'Jini Is Not Initials'.[19][20] It might, however, be more properly termed an anti-backronym because the term "Jini" never stood for anything in the first place. The more recent "XNA", on the other hand, was deliberately designed that way.
  • Most recursive acronyms are recursive on the first letter, which is therefore an arbitrary choice, often selected for reasons of humour, ease of pronunciation, or consistency with an earlier acronym that used the same letters for different words, such as PHP, which now stands for "PHP: Hypertext Preprocessor", but was originally "Personal Home Page". However YOPY, "Your own personal YOPY" is recursive on the last letter.
  • A joke implying that the middle initial "B." in the name of Benoit B. Mandelbrot stands for "Benoit B. Mandelbrot" plays on the idea that fractals, which Mandelbrot studied, repeat themselves at smaller and smaller scales when examined closely.

Other[edit]

  • According to Hayyim Vital, a 16th–17th century kabbalist, the Hebrew word adam (אדם, meaning "man") is an acronym for adam, dibbur, maaseh (man, speech, deed).[21]
  • According to Isaac Luria, a 16th-century kabbalist, the Hebrew word tzitzit (ציצת in its Biblical spelling, meaning "ritual fringes") is an acronym for tzaddik yafrid tzitziyotav tamid ("a righteous person should separate [the strings of] his tzitzit constantly").[22]

See also[edit]

References[edit]

  1. ^ "Puzzles and Paradoxes: Infinity in Finite Terms". Retrieved 23 April 2013.
  2. ^ "WordSpy—Recursive Acronym". Archived from the original on 8 October 2014. Retrieved 18 December 2008.
  3. ^ Electronic message to BUG-LISPM, Daniel Weinreb, 8 August 1977
  4. ^ The Free Software Movement and the Future of Freedom: The name "GNU", Richard Stallman, March 9th 2006
  5. ^ Fundamentals Of Data Structures (Ellis Horowitz & Sartaj Sahni, Computer Science Press, 1976)
  6. ^ Stenberg, Daniel (20 March 2015). "curl, 17 years old today". daniel.haxx.se. Retrieved 20 March 2015.
  7. ^ "About LAME". Retrieved 20 February 2016.
  8. ^ "The Jargon File: Mung". Retrieved 15 October 2007.
  9. ^ "History of PHP". php.net.
  10. ^ "What Pine Really Stands For". Archived from the original on 7 June 2011. Retrieved 6 March 2007.
  11. ^ Roelofs, Greg. "Web Review: PNG's NOT GIF!". people.apache.org. Retrieved 24 November 2021.
  12. ^ "FAQ—The Official Wine Wiki". Retrieved 16 January 2009.
  13. ^ "Wine architecture". Wine HQ. Retrieved 16 June 2012.
  14. ^ "Airline Timetable Images". www.timetableimages.com. Retrieved 16 November 2021.
  15. ^ "MEGA". Retrieved 19 January 2013.
  16. ^ "MOM's Organic Market homepage". MOM's Organic Market. Retrieved 8 June 2022.
  17. ^ "Visa International Service Association". www.bloomberg.com. Archived from the original on 25 April 2021. Retrieved 16 November 2021.
  18. ^ "Dilbert's TTP Project". Dilbert. Retrieved 9 July 2018.
  19. ^ FAQ for JINI-USERS Mailing List, Retrieved 18 November 2013
  20. ^ Introduction to The Jini Specification, Arnold et al, Pearson, 1999, ISBN 0201616343
  21. ^ Pri Etz Chaim, Gate of Rosh Hashana 2:23
  22. ^ Mishnah Brurah, 8:18
  • This article is based in part on the Jargon File, which is in the public domain.

External links[edit]