CodeFuck

CodeFuck is a variant of BrainFuck.

It avoids repetitions and adds new operators

CodeFuck
+10[>+7>+10>+3>+<4-]>+2.>+.+7.2+3.>+2.<2+15.>.+3.-6.-8.>+.>.

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

CodeFuck
(.|!.|?.)

C
if (*cell==0) { putchar(*cell); } else if (*cell>0) { putchar(*cell); } else if (*cell<0) { putchar(*cell); }

CodeFuck
{100.|?50.&.}

C
if (*cell!=100) { putchar(*cell); } else if (*cell<50) { putchar(*cell); } else { putchar(*cell); }

CodeFuck
[100{80.|!30.|?30.&.}+]

C
while (*cell!=100) { if (*cell!=80) { putchar(*cell); } else if (*cell>30) { putchar(*cell); } else if (*cell<30) { putchar(*cell); } else { putchar(*cell); }   ++*cell; }

Functions examples
The creation of a function always takes place before any other operations

CodeFuck
f1   +65. f . F1 or f1+65.f.F1

C
long f1(long cell) { [...]   *cell+=65; putchar(*cell); return cell*; }

int main(int argc, char **argv) {   [...]    putchar(*cell); *cell=f1(*cell); [...] }

Code
+10[   >+7    >+10    >+3    >+    <4- ] >+2. >+. +7.2 +3. >+2. <2+15. >. +3. -6. -8. >+. >. "Salut le monde " >5 +48;" == "." " [-] +65;" == "." " [-] +97;" == "." " [-];" " /+5\;" " {-5};" " (+);" "-;" " [15+] (15"*cell ";" == ";" ") /15-\ {15"*cell ";" != 15"_}" "
 * cell ";" == ";"
 * cell ";" == "($;)[-]_"

Output
Hello World! Salut le monde! 48 == 0 65 == A 97 == a 05010 14 == 14
 * cell 0 == 0
 * cell 15 == 15
 * cell 14 not 15

Code
>5+43 >+45 <6 "Add ":>"+"< :[<+>-]"= "<; >[-]<[-] " Sub ":>"-"< :[<->-]"= "<; >[-]<[-] " Mul ":_"x" >:[>+$<-]"= ">; <[-]>[-]

Output
Add 10 + 10 = 20

Sub 78 - 45 = 33

Mul 3 x 6 = 18

Code
"CodeFuck Math

Options : 0  Addition 1  Soustraction 2  Multiplication 3  Division : ":" " (   %            CHAR +            %    >5+43<5    "Addition  " :>5.<4" ":[<+>-]"= "<;"        "    %            CHAR -             %    >6+45<6    -    "Soustraction  " :>6.<5" ":[<->-]"= "<;" "    -2    "Multiplication  " :_"x ">:[>+$<-]"= ">;" "    -3    "Division  " :>"÷ ":>    <2[        >[->+>+<2]        >[-<2-            [>]>3            [                <[                    >3-<3[-]                ]>2            ]<2        ]>3+        <2[            -<2+>2        ]<3    ]    >[-]>4[-<5+>5]    <4+6<"= ";" " )
 * (1
 * (2
 * (3

Output
CodeFuck Math

Options 0  Addition 1  Soustraction 2  Multiplication 3  Division n° 1

Soustraction 5675 - 55 = 5620

C Generate

 * 1) include 
 * 2) include 

void memsetcf(char *array, int z, long unsigned int s ); int main(int argc, char **argv);

void memsetcf(char *array, int z, long unsigned int s ) { long unsigned int p;  for (p=z; p<=s; p++){ array[p]=z; } }

int main(int argc, char **argv) {   long *cell = calloc(30000, 1); long *cells = cell; char num[8]; char c; int i=0; int var=0; if (!cell) { fprintf(stderr, "Error allocating memory.\n"); return 1; } /**/ /*--CodeFuck--*/ /**/   putchar(67); putchar(111); putchar(100); putchar(101); putchar(70); putchar(117); putchar(99); putchar(107); putchar(32); putchar(77); putchar(97); putchar(116); putchar(104); putchar(10); putchar(10); putchar(79); putchar(112); putchar(116); putchar(105); putchar(111); putchar(110); putchar(115); putchar(32); putchar(58); putchar(10); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(48); putchar(32); putchar(32); putchar(32); putchar(65); putchar(100); putchar(100); putchar(105); putchar(116); putchar(105); putchar(111); putchar(110); putchar(10); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(49); putchar(32); putchar(32); putchar(32); putchar(83); putchar(111); putchar(117); putchar(115); putchar(116); putchar(114); putchar(97); putchar(99); putchar(116); putchar(105); putchar(111); putchar(110); putchar(10); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(50); putchar(32); putchar(32); putchar(32); putchar(77); putchar(117); putchar(108); putchar(116); putchar(105); putchar(112); putchar(108); putchar(105); putchar(99); putchar(97); putchar(116); putchar(105); putchar(111); putchar(110); putchar(10); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(51); putchar(32); putchar(32); putchar(32); putchar(68); putchar(105); putchar(118); putchar(105); putchar(115); putchar(105); putchar(111); putchar(110); putchar(10); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(58); putchar(32); *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }   }    *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; putchar(10); if (*cell==0) { /*           CHAR +            */ cell+=5; *cell+=43; cell-=5; putchar(65); putchar(100); putchar(100); putchar(105); putchar(116); putchar(105); putchar(111); putchar(110); putchar(10); putchar(32); putchar(32); *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }       }        *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; cell+=5; putchar(*cell); cell-=4; putchar(32); *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }       }        *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; while (*cell!=0) { --cell; ++*cell; ++cell; --*cell; }       putchar(61); putchar(32); --cell; printf("%li", *cell); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(32); putchar(10); } else if (*cell==1) { /*           CHAR -             */ cell+=6; *cell+=45; cell-=6; --*cell; putchar(83); putchar(111); putchar(117); putchar(115); putchar(116); putchar(114); putchar(97); putchar(99); putchar(116); putchar(105); putchar(111); putchar(110); putchar(10); putchar(32); putchar(32); *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }       }        *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; cell+=6; putchar(*cell); cell-=5; putchar(32); *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }       }        *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; while (*cell!=0) { --cell; --*cell; ++cell; --*cell; }       putchar(61); putchar(32); --cell; printf("%li", *cell); putchar(10); } else if (*cell==2) { *cell-=2; putchar(77); putchar(117); putchar(108); putchar(116); putchar(105); putchar(112); putchar(108); putchar(105); putchar(99); putchar(97); putchar(116); putchar(105); putchar(111); putchar(110); putchar(10); putchar(32); putchar(32); *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }       }        *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; var=*cell; putchar(120); putchar(32); ++cell; *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }       }        *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; while (*cell!=0) { ++cell; *cell+=var; --cell; --*cell; }       putchar(61); putchar(32); ++cell; printf("%li", *cell); putchar(10); } else if (*cell==3) { *cell-=3; putchar(68); putchar(105); putchar(118); putchar(105); putchar(115); putchar(105); putchar(111); putchar(110); putchar(10); putchar(32); putchar(32); *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }       }        *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; ++cell; putchar(195); putchar(183); putchar(32); *cell = getchar; while (*cell!=0) { num[i]=*cell; i++; *cell-=10; if (*cell!=0) { *cell+=10; *cell = getchar; }       }        *cell = atoi(num); memsetcf(num, 0, sizeof (num)); i=0; ++cell; cell-=2; while (*cell!=0) { ++cell; while (*cell!=0) { --*cell; ++cell; ++*cell; ++cell; ++*cell; cell-=2; }           ++cell; while (*cell!=0) { --*cell; cell-=2; --*cell; while (*cell!=0) { ++cell; }               cell+=3; while (*cell!=0) { --cell; while (*cell!=0) { cell+=3; --*cell; cell-=3; while (*cell!=0) { --*cell; }                   }                    cell+=2; }               cell-=2; }           cell+=3; ++*cell; cell-=2; while (*cell!=0) { --*cell; cell-=2; ++*cell; cell+=2; }           cell-=3; }       ++cell; while (*cell!=0) { --*cell; }       cell+=4; while (*cell!=0) { --*cell; cell-=5; ++*cell; cell+=5; }       cell-=4; *cell+=6; --cell; putchar(61); putchar(32); printf("%li", *cell); putchar(10); } /**/ /*End CodeFuck*/ /**/   free(cells); return 0; }

Source
CodeFuck source repository