TinyCompiler: مترجم تم إنشاؤه خلال عطلة نهاية الأسبوع

2025-02-20

يصف هذا المشروع إنشاء TinyCompiler، وهو مترجم بسيط تم بناؤه خلال عطلة نهاية أسبوع. يقوم بترجمة لغة البرمجة الغامضة Wend (التي أنشأها المؤلف) إلى تجميع GNU. Wend هي لغة بسيطة، بدون مؤشرات أو مصفوفات أو تعقيدات أخرى، وتركز على مفاهيم المترجمات الأساسية. يقل حجم المشروع الكامل عن 500 سطر من Python ويتضمن برامج اختبار مثل حساب الجذر التربيعي ذي النقطة الثابتة، وطباعة مجموعة Mandelbrot، وألعاب بسيطة. إنه مورد رائع لتعلم نظرية المترجمات.

اقرأ المزيد
التطوير

رمز C باستخدام توجيهات `#define` فقط: رسم متحرك للنار باستخدام السحر الأسود

2025-02-20

تُفصّل هذه المقالة كيف أنشأ الكاتب برنامجًا رسوميًا متحركًا للنار باستخدام توجيه `#define` فقط في لغة C. تم إنجاز هذه المهمة التي تبدو مستحيلة من خلال استخدام ذكي لقدرات الاستبدال النصي لتعريفات الماكرو، ودمج الرموز، وتقنيات الاستدعاء المتكرر. والنتيجة هي محاكاة لنار تحترق وتنتشر، مما يُظهر قوة مُعالج ما قبل المعالجة في C و«اكتمال تورينج» الخاص به. كما تُبرز المقالة المخاطر والمشاكل المحتملة الناجمة عن الاستخدام غير السليم للماكرو.

اقرأ المزيد