ForHosting KIT · أدوات المطورين

مُرمِّز Brainfuck

اكتب «Hi» لتحصل على برنامج Brainfuck جاهز للتشغيل من 107 محارف، مكوّن من علامات الجمع ونقاط الطباعة فقط. ويعمل في الاتجاه المعاكس أيضًا: ينفّذ Brainfuck ويعرض ما يطبعه وينبّه إلى الأقواس التي بلا نظير. مجاني في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
النص
Hi
وضع الحساب
Encode
تحصل على
الترميز
brainfuck
طول المُدخَل
2
طول المُخرَج
107

يحوّل مُرمِّز النص إلى Brainfuck النص العادي إلى برنامج Brainfuck عامل يطبع ذلك النص، وينفّذ مصدر Brainfuck في الاتجاه المعاكس حتى تروا ما يطبعه البرنامج. يمرّ وضع encode على كل بايت Latin-1، ويضبط خلية شريط واحدة بالتسلسل الأقصر من زائد أو ناقص على الحلقة اللفافية 0–255، ثم يُصدِر نقطة بعد كل محرف ليصبح البرنامج قابلاً للتشغيل فوراً. أما وضع decode فهو مفسّر كلاسيكي بثماني أوامر على شريط محدود: يتحقق من تطابق الأقواس قبل التنفيذ، ويتجاهل المحارف غير الأوامر كما يفعل Brainfuck التقليدي، ويفشل بوضوح عند الأقواس غير المتطابقة أو حدود الخطوات أو تجاوز المؤشر.

ما هو Brainfuck وماذا تُرجع هذه الأداة

Brainfuck لغة غامضة ضئيلة بثماني أوامر تحرّك مؤشر بيانات، وتزيد أو تنقص الخلية الحالية، وتقرأ أو تكتب بايتاً، وتقفز عند الصفر أو غير الصفر للحلقات. رغم الاسم الطريف، فهي نموذج حساب كامل ما زال المعلمون ومؤلفو الألغاز وهواة esolang يستخدمونه لشرح آلات الشريط والحساب اللفافي والفرق بين التحقق النحوي وحدود وقت التشغيل. تركّز هذه الصفحة على مهمتين عمليتين يبحث الناس عنهما فعلاً: توليد برنامج Brainfuck يطبع سلسلة معطاة، وتنفيذ مصدر Brainfuck لاستعادة المخرجات المطبوعة.

يقبل وضع decode أي سلسلة أوامر Brainfuck ممزوجة بتعليقات لأن المحارف غير الأوامر تُتجاهل عرفاً، لكنه يرفض البرامج التي لا تتداخل أقواسها المربعة بشكل صحيح.

أين يناسب مُرمِّز Brainfuck ومشغّله التعلم والألغاز والاختبارات

يلتقي الطلاب بـ Brainfuck عندما يقدّم مقرر مجموعات تعليمات دنيا، أو عندما ينظّم نادٍ ليلة esolang، أو عندما يطلب واجب طباعة Hello World دون لغة تقليدية. يحتاج مصممو الألغاز ومؤلفو CTF مرمّزاً حتمياً حتى تصبح الراية أو التلميح نفسه دائماً البرنامج نفسه، ومشغّلاً حتى يتحقق اللاعبون والمدققون من المخرجات دون شحن مفسّر منفصل. يعرض المعلمون ودجت المتصفح المجاني أثناء الدروس حتى تشارك الصف بأكمله خوارزمية توليد واحدة ومجموعة حدود تشغيل واحدة بدل أدوات ويب متنافسة تلتفّ الخلايا بطريقة مختلفة أو تتوقف عند حلقات مفتوحة.

اقرنوه بمساعدات ترميز نص أخرى عند بناء مختبر صغير من أدوات حتمية مجانية للتعليم وتحديات الأمن واختبارات دخان العمليات التي يجب ألا تعتمد أبداً على نداء شبكة أو نموذج.

عروض الفصل وesolang

أظهروا كيف تطبع آلة شريط سلسلة عبر توليد برنامج Brainfuck قصير وتشغيله مباشرة دون تثبيت مفسّر محلي.

تركيبات CTF والألغاز

رمّزوا تلميحات حتمية وتحققوا من برامج Brainfuck التي يرسلها اللاعبون مقابل المخرجات المطبوعة المتوقعة في مدققات آلية.

أي المحارف يمكن ترميزها؟

بايتات Latin-1 ذات نقاط الشيفرة 0–255. النص الفارغ ينتج برنامجاً فارغاً.

ما الذي يجعل برنامج Brainfuck غير صالح؟

'[' أو ']' غير متطابق، أو تحريك المؤشر بعد أي طرف من شريط 30,000 خلية، أو تجاوز حدود الخطوات أو المخرجات، أو حقل برنامج ليس سلسلة. محارف غير الأوامر تُتجاهل ولا تُرفض.

كيف أعرف ما يطبعه برنامج Brainfuck؟

اختر فك الترميز والصق البرنامج. يُنفَّذ على شريط محدود ويعرض لك ما يطبعه، وتُتجاهل الحروف وغيرها من المحارف التي ليست أوامر، لذا لا تضر التعليقات داخل الشيفرة.

هل يمكن أن يقرأ البرنامج مدخلات؟

نعم. يمكنك تقديم مدخلات اختيارية لأمر الفاصلة الذي يقرأ بايتًا واحدًا في كل مرة. وعندما تنفد هذه المدخلات، يخزّن كل أمر فاصلة لاحق صفرًا في الخلية الحالية.

لماذا يتكوّن البرنامج الناتج من علامات الجمع والطرح والنقاط فقط؟

لأن الأداة تضبط خلية واحدة لكل محرف بأقصر طريق، جمعًا أو طرحًا على حلقة تمتد من 0 إلى 255، ثم تطبعه بنقطة. لذلك يخرج البرنامج جاهزًا للتشغيل مباشرة.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/enc/brainfuck-encode

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/enc/brainfuck-encode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hi"}'
{
  "text": "Hi"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.brainfuck_encode",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

لا يستدعي المحرك شبكة، ولا يستخدم عشوائية، ولا يعتمد على ساعة التقويم، لذلك ينتج النص والوضع نفسهما دائماً النتيجة نفسها في المتصفح وعبر واجهة API. تشمل الفحوصات النموذجية ترميز Hi إلى برنامج قصير من زائد ونقاط، وتشغيل ذلك البرنامج ليعود إلى Hi، ورفض قوس فتح وحيد بـ invalid_input. استخدموه مجاناً في هذه الصفحة لعروض esolang وتركيبات CTF وتدريس أوامر Brainfuck الثمانية، أو استدعوا واجهة API بسعر $0.002 لكل طلب ناجح عندما تحتاجون تحويلات encode وrun قابلة لإعادة الإنتاج في CI وخدمات الخلفية.

ما هو Brainfuck وماذا تُرجع هذه الأداة

يدعم وضع encode بايتات Latin-1 من صفر إلى مئتين وخمسة وخمسين بحيث يقابل كل محرف كتابة خلية واحدة وطباعة واحدة؛ وترفض نقاط الشيفرة فوق ذلك النطاق برسالة invalid_input واضحة بدل mojibake صامت. تتضمن استجابة JSON دائماً result للبرنامج المُولَّد أو لمخرجات التشغيل، وmode يعيد encode أو decode، وencoding ثابتاً على brainfuck، وinput_length مع output_length حتى تتمكن الاختبارات الآلية من التحقق من الأحجام دون إعادة تحليل الحمولة. يزوّد program_input الاختياري أمر الفاصلة بالبايتات أثناء decode؛ وعند نفاد stdin تخزّن الفاصلة صفراً. لا يوجد إصلاح صامت للأقواس السيئة ولا تنفيذ بلا حدود: سقف الخطوات والشريط والمخرجات يحمي Worker ويبقي البرامج القصيرة الناجحة سريعة ومجانية في المتصفح.

كيف تُقرأ text وmode وكيف تبقى النتائج قابلة لإعادة الإنتاج

يرفض encode النص المفقود والقيم غير النصية والسلاسل الأطول من الحد الموثّق وأي محرف تتجاوز نقطة شيفرته مئتين وخمسة وخمسين، مع تسمية فهرس المحرف السيئ حتى تصحّحوه. يرفض decode المصدر المفقود والبرامج الضخمة وأقواس الإغلاق غير المتطابقة وأقواس الفتح غير المتطابقة وحركات المؤشر بعد أي طرف من شريط الثلاثين ألف خلية والمخرجات التي تتجاوز سقف المخرجات والتشغيلات التي تتجاوز ميزانية الخطوات، فيلتقط حلقات اللانهاية الكلاسيكية التي كانت ستعلّق صفحة مجانية. حقل الحمولة المفضّل هو text مع الأسماء البديلة input وvalue وs وprogram وmessage حتى تعيد النماذج وسلاسل الاستعلام وعملاء SDK استخدام العقد نفسه دون إعادة تسمية الأعمدة. الوضع الافتراضي لـ mode هو encode ويقبل decode صراحة؛ وتُعيَّن الأسماء البديلة op وdirection وaction إلى المفتاح نفسه، ويُعامل run أو execute كـ decode للسكربتات التي ترى الاتجاه الثاني تنفيذاً لا فكاً. ولأن كل فرع تجميع سلاسل نقي أو حلقة مفسّر ثابتة، يتلقى عميلان بنفس text وmode وprogram_input الاختياري نتائج متطابقة بايتاً بايتاً عبر إصدارات Worker ما دامت قاعدة التوليد والحدود ثابتة. اقرنوا التشغيل المجاني في متصفح هذه الصفحة بواجهة API المدفوعة عندما تحتاجون النتيجة الرياضية نفسها داخل خط أنابيب آلي دون إعادة تنفيذ مولّد Brainfuck بأنفسكم.

أين يناسب مُرمِّز Brainfuck ومشغّله التعلم والألغاز والاختبارات

في هذه الصفحة يعمل كل شيء داخل متصفحكم؛ وعبر API تكلف كل استعلام ناجح $0.002، ولا تُحتسب التحقق الفاشل، ولا يُخزَّن شيء بعد إرجاع الاستجابة. هذا الفصل — استكشاف تفاعلي مجاني وواجهة API مدفوعة مطابقة — يوافق بقية كتالوج KIT من المستوى A ويتيح الانتقال من عرض على السبورة إلى خط أنابيب آلي دون تغيير النتيجة المرمّزة.

أزواج golden في CI

تحققوا من نتائج encode وrun في التكامل المستمر حتى لا تنحرف المولّدات وأمثلة التوثيق بصمت.

كم تكلفة مُرمِّز النص إلى Brainfuck؟

هو مجاني في متصفحكم على هذه الصفحة. عبر API يكلف الطلب الناجح $0.002؛ والمدخلات غير الصالحة لا تُحتسب.

ما الأوضاع المدعومة؟

mode=encode (الافتراضي) يحوّل النص العادي إلى برنامج Brainfuck يطبعه. mode=decode ينفّذ مصدر Brainfuck ويُرجع المخرجات المطبوعة. الأسماء البديلة run وexecute تعني أيضاً decode.

هل النتيجة حتمية؟

نعم. نفس text وmode وprogram_input الاختياري ينتجان دائماً النتيجة نفسها بلا شبكة ولا عشوائية ولا سلوك يعتمد على التاريخ.

اطّلع على توثيق KIT الكامل ←