Très incomplètes, ces pages ne constituent qu'un point d'entrée dans un monde merveilleux, fait par des esprits avancés, pour des esprits virtuellement aventureux. Mais le pire ne s'y trouve pas... ou, au moins pas facilement (?).

 

 

 

 

Avertissement :
Toutes les infos fournies ici ne sont le sont qu'à titre indicatif.
Aucune garantie ou responsabilité de quelque sorte ne peut être engagée.

Vous avez programmé en Basic ; le Pascal vous semble abouti ; le C++ ne vous dérange pas ; java vous semble universel ; vous trouvez Ruby esthétique ; Object-Pal vous semble suffisant ; vous pensez que Cobol a encore sa place ; vous ignorez le IOCCC.

Alors, élargissez votre esprit : jetez donc un oeil sur les langages ésotériques !

 

Adresses diverses

Quelques adresses génériques et (a)-variées, pour commencer :

 

Whitespace

Complètement Turing, avec 3 caractères seulement. J'ai fait une page qui explique, plus en détail, le paradigme de Whitespace, et donne des informations complémentaires. Pour voir cette page, Cliquer ici

 

Befunge

Befunge est (sensé être) le premier langage bidimensionnel. Il a été décrit en tant que "un croisement entre Forth et Lemmings". Le langage est interprété, bidimensionnel, basé sur une pile, avec une syntaxe simpliste.

Toutes les commandes de Befunge ont une longueur d'exactement un caractère. Les arguments et les valeurs de retour passent par la pile. Le pointeur (d'instructions) est capable de déplacement non seulement vers l'avant, mais également vers l'arrière, ou de "tourner" à gauche ou à droite, dans un espace d'exécution. Un passe-temps courant, dans Befunge, est d'essayer de compacter une certaine fonction dans peu de caractères (chose plutôt difficile).

Voici un exemple ; le classique "Hello, world !" :

55+".dlrow ,olleH">:#,_@

Quelques liens :

 

Brainfuck (Brainf***)

Le paradigme de Brainfuck est simple : il y a un tableau d'entiers (d' un octet chacun) et un pointeur sur ce tableau. Tous les entiers sont initialisés à zéro, et le pointeur pointe vers le premier élément. Il ne reste plus qu'à déplacer le pointeur, et à incrémenter/decrémenter la valeur vers laquelle il pointe.

Chaque instruction occupe un seul octet ; et il y a 8 instructions en tout et pour tout.

Facile, n'est-ce-pas ? Voici par exemple un petit "Hello, world!" :

>+++++++++[<++++++++>-]<.>++++++[<+++++>-]<-.+++++++..+++.>>+++++++[<++++++>-]<++.------------.<++++++++.--------.+++.------.--------.>+.>++++++++++.

(pas de retour-chariot : une seule ligne)

Ce langage est assez connu, et on trouve pas mal de ressources.

Quelques liens :

J'ai trouvé une implémentation de BrainFuck pour .NET (et Mono) :

 

Ook!

Ook! est un langage prévu pour les orang-outang. Il s'agit, en fait, d'un isomorphisme de Brainfuck.

 

Q-Bal

Q-bal est dérivé d'une expérimentation d'un langage basé sur les files (FIFO), plutôt que sur les piles (LIFO).

 

HQ9+

Ce langage, non complètement Turing, est d'une incroyable facilité pour programmer les classiques "Hello, world !", quines et autres "99 bottles of beer". Il est très facile à apprendre.

Il existe une version orientée-objet, HQ9++

 

Piet

Programmez comme l'art abstrait ! Ce langage utilise 17 instructions, codées par des transitions de couleurs de blocs

Un exemple ? Voici le code-source du classique "hello, world !" :     (blocs d'instructions d'un pixel ; 25 pixels par ligne).

 

Var'Aq "The Klingon Programming Language"

Le sous-titre, même en anglais, est très facile à comprendre. Encore un langage à pile, assez spéculatif. La version actuelle est pre-martoq 0.5

Un exemple ? L'équivalent du "Hello, world!" (en Klingon : "What do you want, universe?") :
                  ~ nuqneH { ~ 'u' ~ nuqneH disp disp } name

Quelques liens :

Evidemment, il vaut mieux connaitre un peu la langue, et les usages, des Klingons. Pour cela, je vous conseille les sites du  Klingon Language Institute.