HeadlinesBriefing favicon HeadlinesBriefing.com

تحدي جولف كود مفسر بايثون 1024 بايت

Hacker News •
×

Austin Z. Henley، مطور يكتب الكود يدويًا في عطلة نهاية الأسبوع، أعلن عن تحدي جولف كود لبناء مفسر بايثون في 1024 بايت فقط من كود C. يتجنب المشروع صراحةً الماكروهات والمكتبات الخارجية. بدأ Henley بتنفيذ برنامج FizzBuzz يقلد صيغة بايثون باستخدام النقطتين والمسافات البادئة دون أقواس. لاحظ أن من المستحيل وضع لغة بايثون بالكامل في مساحة صغيرة كهذه، لذا ركز على مجموعة فرعية من الصيغة التي تبدو 'بايرونية'. لم تنجح محاولاته الأولى؛ تجاوزت آلة حاسبة بسيطة بسرعة حد 512 بايت. ثم غير استراتيجيته، وقام بإدراج العناصر التي تبدو مشابهة لبايثون مع الاعتراف بأن مهاراته في جولف الكود كانت غير كافية للهدف المحدد بـ 512 بايت. قرر أن يجعله يعمل أولاً، ثم يجعله صغيرًا. يستخدم المفسر حالة دنيا مخزنة في متغيرات عالمية، ومصفوفة بطول ثابت للكود الخام، وجدول رموز للمتغيرات. يحلل التعبيرات بشكل متكرر ويتعامل مع التحكم في التدفق باستخدام مكدس الاستدعاء بلغة C. تعمل الحلقات بالقفز للخلف وإعادة تحليل كود المصدر في كل تكرار. يمثل المشروع تمرينًا فريدًا في قيود تنفيذ اللغات.