LLMs يمكنها كتابة معالج لغة برمجة: مفهوم جديد يُطلق عليه FAWK
بعد تجربة حل أحد مسائل "Advent of Code" باستخدام لغة AWK، اكتشف الكاتب أن مفاهيم البرمجة الوظيفية — مثل أنواع البيانات الجبرية، التوقيعات المكتملة، التماثل المنهجي، والكود غير القابل للتغيير — قد أثرت عليه بشكل عميق. ورغم أن AWK تُعد لغة قديمة ومتواضعة من حيث الميزات، إلا أن محاولة تطبيق نهج وظيفي معقد فيها (خاصة في مسألة البحث عن أقصر مسار) أظهرت حدودها بوضوح: غياب المصفوفات الأولى، وغياب الدوال المُضمنة، ونطاق ديناميكي بدلًا من محلي، وصعوبة في تمرير المصفوفات وعوامل التحويل. هذا دفعه إلى تخيّل لغة "AWK وظيفية" (FAWK) — ترقيّة مُتوقّعة لـ AWK تدمج مبادئ التصميم الأنيق (النمط-العمل) مع ميزات حديثة: مصفوفات أولية (بما في ذلك مصفوفات متعددة الأبعاد وعوامل ترقيم مزدوجة)، دوال مُضمنة (Lambdas)، نطاقات محلية بدلًا من ديناميكية، متغيرات عالمية صريحة، ودعم لسلاسل معالجة البيانات (Pipelines) بأسلوب مُسلّم (chaining). ورغم أن بعض هذه الميزات قد تبدو مبالغة، إلا أن الفكرة تُمثّل تكاملًا منطقيًا بين بساطة AWK ومتطلبات البرمجة الحديثة. بمجرد تخيّل هذه اللغة، قرر الكاتب تجربة إنشاء نسخة واقعية منها باستخدام الذكاء الاصطناعي. بدلًا من برمجتها يدويًا، استخدم أداة "Cursor Agent" مع نموذج Sonnet 4.5 لطلب مُقدّمة (README) ونُسخة كاملة من المُفسِّر بلغة بايثون. النتيجة: نسخة مُنفّذة وقابِلة للتشغيل، تُنفّذ الأمثلة التي تخيّلها — من مصفوفات مُضمنة إلى دوال مُضمنة وسلاسل معالجة. ورغم طلب نسخ مُماثلة بلغات أخرى (C، Haskell، Rust)، لم تُقدّم النتائج أي مشاكل في التجميع. الاستجابة كانت مدهشة: نجح النموذج في معالجة ميزات معقدة مثل التمييز بين print كعبارة وتعبير، ودعم المصفوفات متعددة الأبعاد، وحتى الحفاظ على التوافق مع GAWK. فقط في حالة العمليات الحسابية عالية الدقة (بدون مكتبات خارجية)، أظهر النموذج صعوبة في استخدام متسلسلات تيلور، لكنه سرعان ما تكيّف بعد طلب إضافة مكتبة mpmath. النتيجة: كشف الكاتب عن تحوّل في تصوراته حول قدرات الذكاء الاصطناعي. لم يعد يرى البرمجة بالاعتماد على الذكاء الاصطناعي كمهمة ثانوية، بل كأداة قابلة للتنفيذ في وقت قصير، حتى لمشاريع معقدة مثل مفسّر لغة برمجة. لكنه أشار إلى مخاوف: غياب الفهم العميق لل código، صعوبة التعديل اليدوي لاحقًا، وخطر الاعتماد المفرط على الأدوات دون تعلّم. بالنسبة للمستقبل، يخطط لاختبار FAWK على مسائل Advent of Code، لاختبار الاستقرار والحدود. كما يتساءل إن كان يمكنه استخدام نفس النهج لاستكمال مشاريعه السابقة، مثل نظام نوع هيندلي-ميلن في لغته الوهمية "Cara"، مع الحفاظ على قدرته على التحكم بالكود. في النهاية، يُقدّم FAWK كمشروع تجريبي مفتوح المصدر على GitHub، متاحًا للمستخدمين المهتمين، رغم التحذيرات حول أداءه (الذي لا يُعد هدفًا حاليًا) وطبيعته "السحابية" من حيث المعرفة. فهذا ليس مجرد مُفسِّر، بل تجربة مبكرة لمستقبل البرمجة: حيث تُصبح تخيّلات المبرمجين ممكنة بسرعة، لكنها تتطلب توازنًا بين الاعتماد والفهم.
