Top 10 des langages de programmation vraiment bizarres

Top 10 des langages de programmation vraiment bizarres (La technologie)

Voici une liste de langages de programmation parmi les plus bizarres que vous verrez jamais. Ces types de langages sont généralement appelés «langages de programmation ésotériques». Un langage de programmation ésotérique (parfois abrégé en Esolang) est un langage de programmation informatique conçu soit comme un test des limites de la conception de langage de programmation, pour expérimenter des idées étranges, soit simplement comme une blague, plutôt que pour des raisons pratiques. Il n’ya généralement aucune intention d’adopter le langage utilisé pour une programmation en situation réelle. De tels langages sont souvent populaires parmi les hackers et les amateurs.

La convivialité est rarement une priorité élevée pour de telles langues; souvent tout le contraire. L'objectif habituel est de supprimer ou de remplacer les fonctionnalités de langage conventionnelles tout en conservant un langage complet de Turing, ou même un langage pour lequel la classe de calcul est inconnue.

De nombreux langages fascinants et improbables ont été développés, et il existe une communauté Internet petite mais active composée de personnes qui les créent, les programment et en débattent.

Un programme «Hello World» est traditionnellement le premier programme que la plupart des gens apprennent dans une langue qui leur est nouvelle. C'est un code (généralement) simple qui affiche les mots «Hello, World!» Sur un périphérique de sortie, généralement l'écran de l'ordinateur.

Assurez-vous de regarder tous les exemples de codes - ils sont, dans la plupart des cas, assez hilarants.

10

INTERCAL

INTERCAL a été créé en 1972, ce qui en fait probablement le premier langage de programmation ésotérique. Donald R. Woods et James M. Lyon (photo ci-dessus) l'ont inventé dans le but de créer un langage dépourvu de similitudes avec les langages de programmation existants.

Selon le manuel original des auteurs, «le nom complet du compilateur est« Langage du compilateur sans acronyme prononçable », qui est, pour des raisons évidentes, abrégé« INTERCAL ».»

Les opérations courantes dans d'autres langages ont une syntaxe cryptique et redondante dans INTERCAL. Le manuel de référence INTERCAL contient de nombreuses instructions paradoxales, absurdes ou humoristiques, telles que:
"Mise en garde! En aucun cas, ne confondez le maillage avec l'opérateur d'entrelacement, sauf dans des circonstances confuses! ”

INTERCAL possède de nombreuses autres fonctionnalités conçues pour rendre le programme encore plus désagréable sur le plan esthétique: il utilise des instructions telles que «IGNORE» et «FORGET», ainsi que des modificateurs tels que «PLEASE». Ce dernier mot-clé explique le rejet du programme par le compilateur pour deux raisons: si «PLEASE» n'apparaît pas assez souvent, le programme est considéré comme insuffisamment poli et le message d'erreur le dit. si trop souvent, le programme pourrait être rejeté comme excessivement poli.

Hello World dans INTERCAL, avec code équivalent en C pour comparaison

9

Espace blanc

Comme son nom l'indique, Whitespace, conçu en 2002 par Edwin Brady et Chris Morris, est un langage de programmation ésotérique qui utilise uniquement des caractères d'espacement comme syntaxe. Ainsi, seuls les espaces, les tabulations et les sauts de ligne ont une signification. Quand il a été publié le 1er avril 2003, la plupart des gens l'ont considéré comme une blague du poisson d'avril, ce qui n'était pas le cas.

Contrairement à la plupart des langages de programmation, qui ignorent ou attribuent peu de signification à la plupart des caractères d'espacement, l'interpréteur d'espaces blancs ignore les caractères autres que les espaces. Une conséquence intéressante de cette propriété est qu'un programme Whitespace peut facilement être contenu dans les caractères d'espacement d'un programme écrit dans une autre langue, faisant ainsi du texte un polyglotte.

La photo ci-dessus montre «Hello World» dans l’espace blanc.


8

Chef

Chef, conçu par David Morgan-Mar en 2002, est un langage de programmation ésotérique dans lequel les programmes ressemblent à des recettes de cuisine. Les variables portent généralement le nom de denrées alimentaires de base, les piles sont appelées "bols à mélanger" ou "plats de cuisson" et les instructions pour les manipuler "mélanger", "mélanger", etc. “Comme une pile de crêpes”.

Selon la page d'accueil de Chef, les principes de conception de Chef sont les suivants:

- Les recettes du programme doivent non seulement générer des résultats valables, mais être faciles à préparer et délicieuses.
- Les recettes peuvent faire appel à des cuisiniers avec des budgets différents.
- Les recettes seront métriques, mais peuvent utiliser des mesures de cuisson traditionnelles telles que des tasses et des cuillères à soupe.

Bonjour le monde en chef

7

Velato

Velato est un langage qui utilise les fichiers MIDI comme code source. Les programmes de Velato sont définis par la hauteur et l’ordre des notes. Il est conçu pour permettre une composition souple, de sorte que les programmes fonctionnels ne sonnent pas nécessairement comme des notes aléatoires. Les programmes de Velato ont tendance à avoir des harmonies semblables au jazz.

Toutes les déclarations dans Velato commencent par une note de «racine de commande»; les intervalles de cette note sont traduits en commandes et expressions. La racine de la commande peut être modifiée entre les instructions afin de permettre des progressions plus musicales (ou du moins moins répétitives).

Bien entendu, comme tous les fichiers MIDI, les programmes Velato peuvent également être représentés sous forme de partition. La photo ci-dessus montre une partition que vous pouvez écouter ici.

6

Shakespeare

Le langage de programmation Shakespeare (SPL) a été conçu par Jon Åslund et Karl Hasselström. Comme Chef (élément n ° 8), il est conçu pour donner l’impression que les programmes sont autre chose que des programmes; dans ce cas, Shakespearean joue.

La première ligne d'un programme Shakespeare s'appelle le «titre» et sert de commentaire. Le “Dramatis Personae” est la section où les variables sont déclarées. Chaque nom de variable doit être le nom d'un personnage d'une lecture de Shakespeare.

Un morceau de code dans Shakespeare est divisé en «Actes», qui contiennent «Scènes», dans lesquels des caractères (variables) interagissent. Chaque acte et scène est numéroté avec un chiffre romain et sert d’étiquette GOTO. Ils sont écrits sous la forme:

Acte I: Les insultes et les flatteries de Hamlet.
Scène I: Les insultes de Roméo.

Avant que les «personnages» (variables) puissent «agir» (agir), ils doivent d'abord être «sur scène». Pour appeler une variable à l’étape, la commande “Enter” est utilisée. Pour que les personnages quittent la scène, utilisez la commande "Quitter". “Exeunt” appelle plus d'un caractère à quitter, ou dans le cas où aucun caractère n'est répertorié, tous les personnages quitteront la scène.

Bonjour tout le monde à Shakespeare


5

Omgrofl

Omgrofl est une langue créée en 2006 par Juraj Borza. Contrairement à l'entrée précédente, ses mots clés ressemblent à l'argot d'Internet. Le nom vient de la combinaison de l'argot “mots” OMG et rofl. Rofl est en fait l'une des commandes d'Omgrofl. Omgrofl n’est pas sensible à la casse, donc lol est le même que LoL. Vous pouvez utiliser ceci pour produire du code «plus agréable».

Les variables dans Omgrofl doivent être une forme du mot argot lol, comme lol, lool, loool, looool, etc. Une variable peut être définie comme:

lol iz 4

wtf état est une déclaration conditionnelle (comme si en C). Les instructions jusqu’à ce que le brb correspondant ne soient exécutées que si la condition est vraie.

Usage:

lol iz 1
wtf lol iz liek 1
rofl lol
lmao lol
brb

Les conditions possibles sont:

iz uber - vérifie si une expression est supérieure à une autre.
iz liek - vérifie si deux expressions sont égales.

Ceux-ci peuvent être modifiés par:
Nope - négation (comme ! en C) - doit être placé devant liek ou uber.

usage:

x iz nope uber y
lol iz nope liek 7

Les autres mots-clés d'Omgrofl incluent: rtfm, tldr, w00t, stfw, n00b, l33t, haxor, stfu (quitte immédiatement l'application).

Bonjour tout le monde à Omgrofl

4

Piet

Piet est un langage dont les programmes sont des graphiques bitmap qui ressemblent à de l’art abstrait. Il a été conçu par David Morgan-Mar, qui a également créé Chef. Il porte le nom du pionnier de l’art abstrait géométrique, Piet Mondrian; le nom initialement prévu, Mondrian, était déjà utilisé.

Il existe 20 couleurs pour lesquelles un comportement est spécifié: 18 couleurs «colorées», qui sont ordonnées selon un cycle de teinte à 6 étapes et un cycle de luminosité à 3 étapes; et noir et blanc, qui ne sont pas commandés. Lorsque vous quittez une couleur «colorée» et en entrez une autre, la procédure effectuée est déterminée par le nombre d'étapes de changement de teinte et de luminosité. Noir ne peut pas être entré; lorsque le pointeur tente d'entrer dans une zone noire, les règles de choix du bloc suivant sont modifiées. Si toutes les règles possibles sont essayées, le programme se termine. Le blanc n'effectue pas d'opération, mais permet au pointeur de «passer à travers».

La photo ci-dessus montre un programme Piet qui génère «piet».

3

Befunge

Befunge diffère des langues conventionnelles en ce que les programmes sont disposés sur une grille bidimensionnelle, la terrain de jeu. Les instructions «Flèche» -, ^ et v - dirigent le flux de contrôle vers la gauche, la droite, le haut ou le bas, et les boucles sont construites en envoyant le flux de contrôle dans un cycle.

Befunge a été inventé en 1993 par Chris Pressey dans le but d’être aussi difficile à compiler que possible. Cela a été tenté avec la mise en œuvre d'un code auto-modificateur (l'instruction 'p' peut écrire de nouvelles instructions dans le champ de lecture) et d'un champ de lecture multidimensionnel (la même instruction peut être exécutée dans quatre directions différentes). Néanmoins, un certain nombre de compilateurs ont été écrits par la suite.

Comme Brainfuck (voir élément n ° 1), Befunge a engendré de nombreux descendants et cousins ​​éloignés. Les extensions et variantes Befunge sont appelées Fungeoids ou juste Funges.

La plupart des langages de programmation unidimensionnels exigent une distinction syntaxique entre le texte de commentaire et le code source. Dans Befunge, il n'y a pas de syntaxe de commentaire: pour incorporer la documentation dans le code, le programmeur route simplement le flux de contrôle autour de la zone «comment», de sorte que le texte de cette zone ne soit jamais exécuté.

Bonjour tout le monde à Befunge

2

Malbolge

Alors que Befunge est conçu pour être difficile à compiler (traduire en code machine), Malbolge, créé par Ben Olmstead en 1998, et nommé d'après le huitième cercle de l'enfer de Dante Enfer, est censé être aussi difficile que possible d’écrire des programmes. C’était si difficile à comprendre quand il est arrivé qu’il a fallu deux ans pour que le premier programme Malbolge apparaisse, et même cela n’a pas été écrit par un humain, mais par un Programme Lisp utilisant une recherche par faisceau de l’espace de tous les programmes possibles.

On discute de la possibilité d'implémenter des boucles sensibles dans Malbolge - il a fallu de nombreuses années avant que la première boucle sans fin ne soit introduite. Un programme correct «99 bouteilles de bière» (avec les paroles complètes de la chanson en sortie), qui traite de boucles et conditions non triviales, n'a pas été annoncé avant huit ans; Le premier correct est celui de Hisashi Iizawa, en 2007. Il est illustré ci-dessus.

Bonjour tout le monde à Malbolge

1

Brainfuck

Brainfuck est le langage de programmation ésotérique le plus célèbre et a inspiré la création de nombreuses autres langues. Remarqué pour son minimalisme extrême, il est conçu pour défier et amuser les programmeurs et ne convient pas à une utilisation pratique. Pour éviter l'offense, son nom est parfois donné comme b fuck. Le nom de la langue n'est généralement pas mis en majuscule, sauf au début d'une phrase.

Urban Müller a créé brainfuck en 1993 dans le but de concevoir un langage pouvant être implémenté avec le plus petit compilateur possible. Plusieurs compilateurs brainfuck ont ​​été réduits à moins de 200 octets.

Le langage consiste en seulement huit commandes:> <+ -. , []. Un programme brainfuck est une séquence de ces commandes, éventuellement intercalée avec d'autres caractères (qui sont ignorés).

Comme son nom l'indique, les programmes de brainfuck ont ​​tendance à être difficiles à comprendre. En effet, toute tâche moyennement complexe nécessite une longue séquence de commandes, ce qui explique pourquoi elle n'est pas utilisée pour une programmation sérieuse. Néanmoins, comme tous les langages complets de Turing, brainfuck est théoriquement capable de calculer toute fonction calculable, à condition d’avoir accès à une quantité illimitée de mémoire.

Bonjour tout le monde à la cervelle

Cette liste a été compilée avec l'aide du wiki Wiki d'Esolang et de Wikipédia.