/brainfuck

A Brainfuck interpreter

Primary LanguageCGNU General Public License v3.0GPL-3.0

Brainfuck

License GitHub release

Quel est ce projet ?

Ce projet consiste en un interpréteur Brainfuck. Il s'agit d'un projet donné lors de mes études à l'ENSIMAG, une école d'ingénieur française en informatique, durant l'année scolaire 2023-2024.

Qu'est-ce que le Brainfuck ?

Brainfuck est un langage de programmation exotique, inventé par Urban Müller en 1993. Il tire son nom de l’union de deux mots anglais, brain (« cerveau ») et fuck (« niquer »), et joue sur les mots, puisque ce langage est volontairement simpliste, et parce que l'expression Brain Fuck évoque, en argot, ce qui met le cerveau dans un état de confusion par sa complexité apparente. Ce vocabulaire peu flatteur lui a d'ailleurs valu d'être écrit sous d'autres orthographes plus prudes, telles que Brainf*ck, Brainf*** ou encore BF. 1

Construction depuis les sources

Dépendances

Pour construire brainfuck, les dépendances suivantes sont nécessaires (uniquement lors de la construction) :

Instructions

  1. Récupérer les sources.

    git clone "https://github.com/beatussum/brainfuck.git"
  2. Se placer dans le répertoire.

    cd brainfuck
  3. Créer le dossier de construction.

    mkdir build
    cd build
  4. Lancer CMake.

    cmake -DCMAKE_BUILD_TYPE:STRING="Release" -G Ninja ..

    Pour construire en plus la documentation, rajouter l'option -DWITH_DOCS:BOOL=YES.

  5. Construire l'exécutable.

    ninja

    Pour construire la documentation, appeler

    ninja docs

Utilisation

USAGE:
    brainfuck compile <input> <output>
    brainfuck run <input>

For the `compile` command, you can replace:
    - `input` by `-` to set the standard input as input,
    - `output` by `-` to set the standard output as output.

Pour compile, le programme va générer dans la sortie output un source C à partir du programme Brainfuck input donné en entrée.

Pour run, l'exécutable prend un paramètre correspondant à un fichier contenant un programme Brainfuck.

Licence

Le code de ce logiciel est sous licence GPL-3 ou toute version ultérieure.

Footnotes

  1. https://fr.wikipedia.org/wiki/Brainfuck

  2. seulement si vous souhaitez construire la documentation