-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbf en bf.bf
75 lines (47 loc) · 2.27 KB
/
bf en bf.bf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
On initialise les variables
++ inferieur
>>+++++[-<+++>]<-> supérieur
+> point
++> moins
>+++++++[-<++++++>]<+ plus
>>>>>+ On met le bit qui va servir à vérifier les nombres
et sinon en essayer d'autres
>>>>,[>>,] On met les entrées dans la mémoire du programme
>>+ On met le premier bit de la mémoire d'execution
<<<<[<<]> On reviens au début
+> On set le bit du pointeur de mémoire du programme
et on passe à la première case
[ On commence à travailler avec les mémoires
[-<[<<]<<<+>>>>>[>>]<] On déplace la case actuel dans la zone de traitement
<[<<]<<<<<<< On va sur le premier symbole a tester
>[->+>+<<]>[-<+>] On le copie dans la zone de traitement
>[->-<] On enlève le symbole à la case
>[>]>>[ On vérifie si c'est le même symbole (case = 0)
>>>[>>]>[>>]>>[>>]<+<[<<]<<[<<]<[<<]>]
On ajoute 1 au pointeur de la mémoire d'exécution
et on reviens à la zone de traitement
<[ on teste si l'octet n'a pas été égal au premier symbole
<<<<<<[->>+>+<<<]>>[-<<+>>] Si non on amène le deuxième symbole
>[->-<]>[>]>>[ On vérifie si cette fois c'est le bon symbole
>>>[>>]>[>>]>>[>>]<-<[<<]<<[<<]<[<<]>]]
On enlève 1 au pointeur de la mémoire d'exécution
et on reviens à la zone de traitement
<[ on teste si l'octet n'a pas été égal au deuxième symbole
<<<<<<<[->>>+>+<<<<]>>>[-<<<+>>>] Si non on amène le troisième symbole
>[->-<]>[>]>>[ On vérifie si cette fois c'est le bon symbole
>>>[>>]>[>>]>>[>>]<.<[<<]<<[<<]<[<<]>]]
On print la valeur du pointeur de la mémoire d'exécution
et on reviens à la zone de traitement
<[ on teste si l'octet n'a pas été égal au troisième symbole
<<<<<<<<[->>>>+>+<<<<<]>>>>[-<<<<+>>>>] Si non on amène le quatrième symbole
>[->-<]>[>]>>[ On vérifie si cette fois c'est le bon symbole
>>>[>>]>[>>]>>[>>]<<<<[>>-<<<<]>>[<<]<<[<<]<[<<]>]]
On change le pointeur de la mémoire d'exécution
et on reviens à la zone de traitement
<[ on teste si l'octet n'a pas été égal au quatrième symbole
<<<<<<<<<[->>>>>+>+<<<<<<]>>>>>[-<<<<<+>>>>>] Si non on amène le cinquième symbole
>[->-<]>[>]>>[ On vérifie si cette fois c'est le bon symbole
>>>[>>]>[>>]>>[>>]+[<<]<<[<<]<[<<]]]
On change le pointeur de la mémoire d'exécution
et on reviens à la zone de traitement
<<<[-]>>>>>[>>]+>] On va à la deuxième case à traiter