Sigle récursif
Un sigle autoréférentiel ou récursif est un sigle qui fait appel à la récursivité et plus précisément à l'autoréférence dans un procédé de mise en abyme littéraire. On parle aussi d'autonymie. On trouve des sigles récursifs essentiellement en développement informatique et en sciences de la nature.
Principes
La forme développée du sigle contient sa forme réduite, qui peut alors se développer à nouveau et ainsi de suite, en une suite infinie de développements[1]. Construire des sigles récursifs est un jeu fréquent chez les hackers :
« Nous les hackers nous [...] avions aussi une tradition d'acronymes récursifs qui consiste à dire que le programme qu'on crée est similaire à un programme existant. On peut lui donner un nom récursif qui dit celui-ci n'est pas celui-là. Par exemple, il y avait beaucoup d'éditeurs de texte TICO dans les années 1960 et 70 et ils étaient généralement appelés quelque chose ou autre TICO. À cette époque un hacker malin appela le sien Tint, pour Tint Is Not Tico, le premier acronyme récursif. En 1975, j'ai développé le premier éditeur de texte EMACS et il y a eu de nombreuses imitations d'EMACS, beaucoup étaient appelés quelque chose Emacs, mais l'un était nommé FINE (« BIEN! » n.d.t) pour Fine is not Emacs. Et il y a eu SINE pour Sine is not Emacs, et EINE pour Eine Is Not Emacs, et il y a eu MINCE pour Mince Is Not Complete Emacs [rires], c'était une imitation incomplète. Ensuite EINE a été complètement réécrit et la nouvelle version a été appelée ZWEI pour Zwei Was Eine Initially [rires]. »
— Richard Stallman, Logiciel Libre : Liberté et coopération. Université de New-York. 29 mai 2001. Traduction par Xavier Dumont initialement parue sur www.gnulinuxfr.org.
Il faut faire un petit distinguo entre récursivité (ou induction) et coinduction :
- le sigle récursif est une construction naturelle : un sigle emploie un mot dont le sens est mal défini ou peu à peu oublié. En définitive, ce mot se définit par rapport au sigle, ce qui crée une autoréférence. L'exemple le plus caractéristique est celui du W3 pour WWW. Le sigle n'est alors plus imbriqué.
- un sigle coinductif se définit formellement ainsi : « l'un des mots du sigle est le sigle lui-même ». Le sigle coinductif est donc un sigle auto-imbriqué. Cette construction conduit à un processus qui ne s'arrête pas.
Exemples de sigles imbriqués (mais non récursifs)
Deux exemples d'imbrications multiples :
- GTK : the GIMP ToolKit.
- GIMP : GNU Image Manipulation Program.
- Soit GTK : the GNU's Not UNiplexed Information and Computing Service Image Manipulation Program ToolKit
- RAP : Rich AJAX Platform.
- Soit RAP : Rich Asynchronous JavaScript And eXtensible Markup Language Platform
On trouve également de nombreux sigles imbriqués en sciences de la vie, par exemple la protéine CRTC1 :
- CRTC1 (en) : CREB-Regulated Transcription Coactivator 1, protéine qui coactive la transcription des gènes en se liant à CREB
- Soit CRTC1 (en) : cyclic Adenosine Monophosphate Response Element Binding protein Regulated Transcription Coactivator 1
Exemples de sigles récursifs
La plupart des explications données ici sont des plaisanteries, et certains ne sont pas de vrais sigles.
- Autour du logiciel Emacs
- EINE : EINE Is Not Emacs (« EINE n'est pas Emacs »).
- MINCE : Mince Is Not Complete Emacs (« Mince n'est pas complètement Emacs »).
- ZWEI : ZWEI Was EINE Initially (« ZWEI était initialement EINE »). EINE et ZWEI veulent dire en allemand respectivement « une » et « deux », ce qui donne : « DEUX était initialement UNE ».
- PEPE: "Pepe n'Est Pas Emacs" (éditeur de texte du système Le_Lisp)
- Bing : Bing is not Google.
- GAMBAS : Gambas Almost Means BASic (« GAMBAS signifie presque BASIC »)
- GNU : GNU's Not UNIX (« GNU n'est pas Unix ». Prononcer gnou ).
- LAME : Lame Ain't an MP3 Encoder (Lame n'est pas un encodeur mp3.).
- MiNT : MiNT is Not TOS (MiNT n'est pas TOS), puis MiNT is Now TOS (MiNT est maintenant TOS) après que l'auteur de MiNT a été embauché par Atari.
- XNU : XNU is Not Unix (« XNU n'est pas Unix »)
- PHP : PHP: Hypertext Preprocessor. (Historiquement, ce sigle récursif était l'abréviation de Personal Home Page ; en 2008, le sigle récursif est le sens officiel de PHP).
- TRM : TRM Recognizes Music.
- Visa : Visa International Service Association.
- WINE : Wine Is Not an Emulator (« Wine n'est pas un émulateur »). WINdows Emulator est techniquement incorrect.
- XNA : XNA's Not Acronymed (« XNA N'est pas un Acronyme »).
- YAML : YAML Ain't Markup language (« YAML n'est pas un langage de balisage »)
- ALLEGRO : Allegro Low LEvel Game ROutines. Allegro est une bibliothèque en C facilitant la programmation des jeux.
- Die PARTEI : Partei für Arbeit, Rechtsstaat, Tierschutz, Elitenförderung & basisdemokratische Initiative : ce « parti » est un canular, d'où son sigle récursif volontaire
- Dans la BD Dilbert :
- TTP : The TTP Project: étant une création humoristique, c'est un des rares sigle dont le sens original est un sigle récursif et, plus rare encore, dont la récursivité ne s'appuie pas sur la première lettre.
- Melt : Melt Extends LaTeX with Types
- SPARQL : SPARQL Protocol And RDF's Query Language
- Mega : MEGA Encrypted Global Access
- MICO : Mico is COrba
- B.O.S.S. : Boss Of Scandalz Strategyz
- KOS-MOS : Kosmos Obey Strategical Multiple Operation System
Exemple de paire de sigles mutuellement récursifs
Notes et références
- Cette méthode d'évaluation d'une fonction récursive par remplacement d'un appel par sa définition s'appelle la réduction de Gross-Knuth (voir par exemple Zena Ariola et Matthias Felleisen, « The Call-By-Need lambda Calculus », Journal of Functional Programming, vol. 7, no 3, , p. 265-301 (lire en ligne)).
- Selon le site http://www.gnu.org/software/hurd/hurd.html : (en) « `Hurd' stands for `Hird of Unix-Replacing Daemons'. And, then, `Hird' stands for `Hurd of Interfaces Representing Depth'. We have here, to my knowledge, the first software to be named by a pair of mutually recursive acronyms. »