This commit is contained in:
Tanguy MAZE
2019-06-22 18:23:35 +02:00
commit f9e508d5ef
173 changed files with 6727 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
$>./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
Hello World!$
$>./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
Hi$
$>./brainfuck | cat -e
$

View File

@@ -0,0 +1,32 @@
Assignment name : brainfuck
Expected files : *.c, *.h
Allowed functions: write, malloc, free
--------------------------------------------------------------------------------
Write a Brainfuck interpreter program.
The source code will be given as first parameter.
The code will always be valid, with no more than 4096 operations.
Brainfuck is a minimalist language. It consists of an array of bytes
(in our case, let's say 2048 bytes) initialized to zero,
and a pointer to its first byte.
Every operator consists of a single character :
- '>' increment the pointer ;
- '<' decrement the pointer ;
- '+' increment the pointed byte ;
- '-' decrement the pointed byte ;
- '.' print the pointed byte on standard output ;
- '[' go to the matching ']' if the pointed byte is 0 (while start) ;
- ']' go to the matching '[' if the pointed byte is not 0 (while end).
Any other character is a comment.
Examples:
$>./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
Hello World!$
$>./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
Hi$
$>./brainfuck | cat -e
$

View File

@@ -0,0 +1,32 @@
Assignment name : brainfuck
Expected files : *.c, *.h
Allowed functions: write, malloc, free
--------------------------------------------------------------------------------
Écrire un programme capable d'interpréter du Brainfuck.
Le code source sera passé en premier paramètre.
Le code transmis sera toujours valide, et ne comportera pas plus de 4096 opérations.
Le Brainfuck est un langage minimaliste constitué d'un tableau d'octets
(dans le cadre de cet exercice, 2048 octets) tous initialisés à 0,
et d'un pointeur sur son premier octet.
Voici les différents opérateurs du Brainfuck :
- '>' incrémente le pointeur ;
- '<' décrémente le pointeur ;
- '+' incrémente l'octet pointé ;
- '-' décrémente l'octet pointé ;
- '.' affiche l'octet pointé sur la sortie standard ;
- '[' va au ']' correspondant si l'octet pointé est égal à 0 (début de boucle) ;
- ']' va au '[' correspondant si l'octet pointé est différent de 0 (fin de boucle).
Tout autre caractère est un commentaire.
Exemples:
$>./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
Hello World!$
$>./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
Hi$
$>./brainfuck | cat -e
$

View File

@@ -0,0 +1,32 @@
Exercitiu : brainfuck
Fisiere de iesire : *.c, *.h
Functii autorizate : write, malloc, free
--------------------------------------------------------------------------------
Scrieti un interpretor de programe numit Brainfuck.
Codul sursa va fi dat ca primul argument.
Codul va fi mereu valid, cu cel mult 4096 operatii.
Barinfuck este un limbaj minimal. Contine un vector de bytes
(pentru acest exercitiu, 2048 bytes) initializati cu zero, si
un pointer spre primul byte.
Fiecare operator consista dintr-un singur caracter:
- '>' incrementeaza pointerul ;
- '<' decrementeaza pointerul ;
- '+' incrementeaza byte-ul la care pointeaza ;
- '-' decrementeaza byte-ul la care pointeaza ;
- '.' printeaza la iesirea standard byte-ul spre care pointeaza ;
- '[' du-te la perechea ']' byte-ul la care pointeaza e 0 (while start) ;
- ']' du-te la perechea '[' byte-ul la care pointeaza nu e 0 (while end).
Orice alt caracter este un comentariu.
Examples:
$>./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
Hello World!$
$>./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
Hi$
$>./brainfuck | cat -e
$