Archive for October, 2007

Brainfuck

Dans des temps anciens et reculés, avant l’apparition du micro ordinateur personnel, il vivait un mathématicien du nom de Turing qui inventa la machine de Turing (comme c’est original vous ne trouvez pas ?). Cette machine se compose d’un ruban magnétique d’une longueur indéfinie (on suppose que quand on arrive au bout on peut l’allonger) et comportant des cases contenant la valeur d’un entier. Turing a démontré qu’il est possible d’adapter n’importe quel alogrithme pour sa machine. Il a par ailleurs été démontré que nos ordinateurs actuels sont équivalents à cette machine de Turing, ce qui leur confère aussi cette capacité d’executer n’importe quel algorithme. Enfin bref, de nos jours les ordinateurs utilisent des concepts bien plus évolués que la machine à ruban de Turing, ce qui fait que personne ne s’y est jamais intéressé… Sauf le suisse Urban Müller qui a inventé un langage de programmation qui permet de programmer un ordinateur comme on programmerai une machine de Turing. Ce langage est probablement le plus simple au mondre syntaxiquement parlant : il n’y a que 8 opérateurs :

  • > déplace le ruban vers la droite
  • < déplace le ruban vers la gauche
  • + incrémente la case
  • - décrémente la case
  • [ début de la boucle
  • ] fin de la boucle
  • . affichage du carractère correspondant au numéro dans la case
  • , demande d’un caractère à l’utilisateur et insertion de son numéro dans la case

Voici un exemple de programme (un hello world pour un peu d’originialité)

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

Vous pouvez d’ailleurs utiliser mon générateur de chaine (à utiliser depuis un shell linux). Pour de l’aide sur l’usage du convertisseur utilisez l’option -h.

Pour un complément d’informations, vous pouvez aller voir sur wikipedia ou alors sur ce très bon tutorial.

Bien qu’il existe un compilateur brainfuck, il est largement plus simple de l’interprêter. Sous linux, j’utilise le logiciel “bf” qui remplis parfaitement cette tâche et qui est intégré aux paquets ubuntu.

Sur ce, bon niquage de cerveau ! (c’est garanti si vous essayez de faire un programme un brin complexe…)

Add comment October 22nd, 2007

Plats cuisinés

Martine achète un congélo

Je ne suis malheureusement pas en mesure de citer le nom de l’auteur, mais je trouve sa blague géniale :D (bien qu’un peu sombre)

Edit: par contre je peut dire que les martines viennent du Martine Generator

Add comment October 22nd, 2007

Optimisation PHP

Voici un slide d’excellent conseil sur l’optimisation en PHP. Il regorge de tout un tas de tests que j’ai toujours voulu faire et que j’ai toujours eu la flemme de faire…

http://ilia.ws/files/phptek2007_performance.pdf

1 comment October 7th, 2007

Number One

Youpi :) J’ai gagné =D

   

2 comments October 1st, 2007


Calendar

October 2007
M T W T F S S
« Sep   Nov »
1234567
891011121314
15161718192021
22232425262728
293031  

Posts by Month

Posts by Category

Wikipedia Affiliate Button