مترجم Brainfuck مكتوب في C.
brainfuck [-veh] file...
-e --eval run code directly
-v --version show version information
-h --help show a help message.
يمكن الوصول إلى وحدة التحكم التفاعلية عن طريق تمرير أي حجج.
نحن نقدم أيضًا واجهة برمجة تطبيقات C:
#include <stdio.h>
#include <stdlib.h>
#include <brainfuck.h>
int main () {
BrainfuckState * state = brainfuck_state ();
BrainfuckExecutionContext * context = brainfuck_context ( BRAINFUCK_TAPE_SIZE );
BrainfuckInstruction * instruction = brainfuck_parse_string ( ",+++++." );
brainfuck_add ( state , instruction );
brainfuck_execute ( state -> root , context );
brainfuck_destroy_context ( context );
brainfuck_destroy_state ( state );
return EXIT_SUCCESS ;
}يحتوي الأمثلة/ الدليل على كمية كبيرة من برامج مثال Brainfuck. لقد حاولنا أن ننسب المؤلفين الأصليين لهذه البرامج حيثما كان ذلك ممكنًا.
قم بتنزيل رمز المصدر عن طريق تشغيل الرمز التالي في موجه الأوامر الخاص بك:
$ git clone https://github.com/fabianishere/brainfuck.gitأو ببساطة الاستيلاء على نسخة من رمز المصدر كملف مضغوط.
إنشاء دليل البناء.
$ mkdir build
$ cd buildيتطلب Brainfuck cmake ومترجم C (مثل Clang أو GCC) من أجل التشغيل. يعتمد ذلك أيضًا على libedit ، الذي يتوفر في المستودعات الرئيسية لمعظم توزيعات Linux (على سبيل المثال مثل libedit-dev على Debian/Ubuntu) ويأتي مع أدوات سطر أوامر MacOS Xcode. ثم ، ببساطة إنشاء Makefiles:
$ cmake ..وأخيرًا ، قم بإنشائه باستخدام نظام البناء الذي اخترته (على سبيل المثال Make):
$ makeبعد الانتهاء من الإنشاء ، يمكنك تثبيت الثنائيات على نظامك المحلي (انظر CMAKE_INSTALL_PREFIX للحصول على معلومات حول بادئة التثبيت):
$ make installبدلاً من ذلك ، يمكنك تشغيل المترجم الفوري مباشرة دون تثبيت ، على سبيل المثال:
$ ./brainfuck ../examples/hello.bfيتم إصدار الكود ضمن إصدار ترخيص Apache 2.0. انظر الترخيص.
Fabian Mastenbroek https://github.com/fabianishere
aliclubb https://github.com/aliclubb
diekmann https://github.com/diekmann
SevenBits https://github.com/SevenBits
Alex Burka https://github.com/durka
outis https://github.com/outis
rien333 https://github.com/rien333
boweiliu https://github.com/boweiliu
Rotartsi https://github.com/ROTARTSI82
Saket Upadhyay https://github.com/Saket-Upadhyay
outis https://github.com/outis
Jalmari91 https://github.com/Jalmari91
Alok Singh https://github.com/alok
Lasse Damsgaard Skaalum https://github.com/humleflue