A recursive acronym is an acronym that refers to itself. 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. Other references followed, 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 one of the letters standing recursively for the whole acronym.
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, from 1960 the backronym "Mash Until No Good" was created to describe Mung, and a while after it was revised to "Mung Until No Good". It lived on as a recursive command in the editing language TECO.[3] In 1977 or 1978 came TINT ("TINT Is Not TECO"), an editor for MagicSix written (and named) by Ted Anderson. 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). These were followed by Richard Stallman's GNU (GNU's Not Unix). Many others also 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.
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". (this example is tail recursive)
Allegro — Allegro Low Level Game Routines (early versions for Atari ST were called "Atari Low LEvel Game ROutines")
ANX — ANX is Not XNA
AROS — AROS Research Operating System (originally Amiga Research Operating System)
BAMF — BAMF Application Matching Framework
BIRD — BIRD Internet Routing Daemon
BOSH — Bosh Outer Shell
CAVE — CAVE Automatic Virtual Environment
cURL — Curl URL Request Library
EINE — EINE Is Not Emacs
FIJI — FIJI Is Just ImageJ
FYBMEM — FYBMEM Your Basic Monitor Editor Mechanism
GiNaC — GiNaC is Not a CAS (Computer Algebra System)
GNU — GNU's Not Unix
GPE — GPE Palmtop Environment
gRPC — grpc Remote Procedure Calls
HIME — HIME Input Method Editor
INX — INX's Not X (a UNIX clone)
JACK — JACK Audio Connection Kit
KGS — KGS Go Server
LAME — LAME Ain't an MP3 Encoder
LiVES — LiVES is a Video Editing System
MEGA — MEGA Encrypted Global Access
MINT — MINT Is Not TRAC
MiNT — MiNT is Not TOS (later changed to "MiNT is Now TOS")
Mung — Mung Until No Good
Nano — Nano's Another editor
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
NITE — NITE Isn't TECO Either (the 2nd offering from the creator of TINT)
pacc — pacc: a compiler-compiler
PHP — PHP: Hypertext Preprocessor (originally "Personal Home Page Tools")
PINE — PINE Is Nearly Elm, originally; PINE now officially stands for "Pine Internet News and E-mail"
PIP — PIP Installs Packages
PIPER — PIPER Is PIPER Expanded Recursively (Google's internal version control system)
P.I.P.S. — P.I.P.S. Is POSIX on Symbian
Qins — Qins is not Slow
RPM — RPM Package Manager (originally "Red Hat Package Manager")
SPARQL — SPARQL Protocol And RDF Query Language
TikZ – TikZ ist kein Zeichenprogramm (German; TikZ is no drawing program)
TIARA — TIARA is a recursive acronym
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 (initially Windows Emulator)
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")
Zinf — Zinf Is Not Freeamp
ZWEI — ZWEI Was EINE Initially (“eins” and “zwei” are German for “one” and “two” respectively)
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, where the official meaning of an acronym is changed.
Jini claims the distinction of being the first recursive anti-acronym: 'Jini Is Not Initials'. 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: PHP Hypertext Preprocessor, which was originally "Personal home page". However YOPY, "Your own personal YOPY" is recursive on the last letter (hence the last letter of the acronym had to be the same as the first).
Some organizations have been named or renamed in this way:
BWIA — BWIA West Indies Airways (formerly British West Indian Airways)
FALE — FALE Association of Locksport Enthusiasts
GES — GES Exposition Services (formerly Greyhound Exposition Services)
hEART — hEART the European Association for Research in Transportation
Heil — Heil Environmental Industries Limited, maker of garbage trucks
WAT — WAT Automotive Technologies
TTP - a technology project in the Dilbert comic strip. The initials stand for "The TTP Project".
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 not the first letter.