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.
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
Pour construire brainfuck
, les dépendances suivantes sont nécessaires (uniquement lors de la construction) :
-
Récupérer les sources.
git clone "https://github.com/beatussum/brainfuck.git"
-
Se placer dans le répertoire.
cd brainfuck
-
Créer le dossier de construction.
mkdir build cd build
-
Lancer CMake.
cmake -DCMAKE_BUILD_TYPE:STRING="Release" -G Ninja ..
Pour construire en plus la documentation, rajouter l'option
-DWITH_DOCS:BOOL=YES
. -
Construire l'exécutable.
ninja
Pour construire la documentation, appeler
ninja docs
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.
Le code de ce logiciel est sous licence GPL-3 ou toute version ultérieure.
Footnotes
-
seulement si vous souhaitez construire la documentation ↩