Brain Fuck


یک کد ساده php برای تبدیل BrainFuck به C نوشتم.

<?php
$h = '++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.';
$h = str_replace(['+', '-', '[', ']', '>', '<', '.'], ['++*ptr;'."\n",  '--*ptr;'."\n", "while (*ptr) {\n", "}\n", '++ptr;'."\n", '--ptr;'."\n", 'putchar(*ptr);'."\n"], $h );

$a = '#include <stdio.h>
int main() {
    char arr[30000] = {0};
    char *ptr = &arr;

    '.$h.'
}
';

file_put_contents('test.c', $a);

اگر خیلی ساده بخوام توضیح بدم روی یک بلاک پوینتر میشه راحت حلقه تعریف کرد و مقدار اون بلاک رو کم و زیاد کرد. بعد مقدار اون بلاک ها رو خیلی راحت میشه چاپ کرد.

خروجی برنامه بالا رو با Gcc کامپایل کنید به شما یک Hello World میده. البته Hello World رو خیلی راحتتر از روش بالا هم میشه باهاش نوشت.

https://github.com/pejman-hkh/brainfuck-to-c

یک نکته باید در آخر بگم این هست که یاد گرفتن BrainFuck سخت نیست. بلکه نوشتن برنامه با اون سخته و اونه که مغز رو به اصطلاح سرویس میکنه ...

دیدگاه بگذارید

دیدگاه

دیدگاه ها بدون تایید میباشد.