إم4 هو معالج الماكرو ذو الأغرض العامة من تصميم بريان كيرنيغان ودنيس ريتشي. إم4 هو امتداد لمعالج ماكرو في وقت سابق إم3، الذي كتبه ريتشي الكمبيوتر الصغيرة AP-3.
الاستخدام
جميع إصدارات يونكس جعلت معالج الماكرو إم4 متاح، وبوسيكسPOSIX جعله موحداً. شعبية جنيو أوتوكونف GNU autoconf (الذي يتطلب جنو إم4 لإنشاء تركيب النصوص) قد شجعت العديد على تثبيته، حتى لو لم يكن هؤلاء الناس أنفسهم سيبرمجوا بـ إم4.
معالج الماكرو (أو المعالج) ويعمل كأداة تبديل النص. المستخدم النهائي يستخدمه في كثير من الأحيان إلى إعادة استخدام قوالب النص، تماما في برمجة التطبيقات، ولكن أيضا في تحرير النص ومعالجة النص والتطبيقات.
التاريخ
أصبحت معالجات ماكرو شعبية عندما استخدم المبرمجين لغة التجميع. في تلك الأيام الأولى من البرمجة، لاحظت المبرمجين ان معظم برامجهم يتألف من نصوص متكررة، واخترعوا وسائل بسيطة لإعادة استخدام هذا النص. وسرعان ما اكتشفت المبرمجين المزايا ليس فقط في إعادة أستخدام كتل كاملة من النص، ولكن أيضا في استبدال قيم مختلفة لمحيطات (وسائط) مماثلة. وهذا يعرف نطاق استخدام معالجات الماكرو. كيرنيغان وريتشي قدما إم4 في عام 1977، واسندوه على أفكار كريستوفر ستراتشي. الخصائص المميزة لهذا النمط من معالجة الماكرو تشمل ما يلي :
- شكل حر للقاعد اللغوية (وليس على أساس خط مثل معالج الماكرو النموذجي المصمم لمعالجة لغة التجميع)
- الدرجة العالية من إعادة التوسع (وسائط الماكرو تتوسع مرتين: مرة خلال المسح الضوئي ومرة في وقت الاستكمال أو الاستيفاء)
تطبيق راشونال فورتران استخدم إم4 كمحرك الماكرو الخاص به من البداية، ومعظم متغيرات يونكس بحروا معه.
اعتبارا من عام 2009 العديد من التطبيقات استمرت في استخدام إم4 كجزء من مشروعautoconf GNU جنو أوتوكونف. وأيضا يظهر في عملية التكوين لـ sendإمail (نطاق واسع من عامل نقل البريد) ولإنشاء بصمات في حزمة أدوات الجي إي دي أيه gEDA toolsuite.
إم4 له استخدامات عديدة في توليد كود code generation، ولكن (كما هو الحال مع أي معالج ماكرو) المشاكل يصعب تصحيحها.
مميزات
إم4 يقدم هذه التسهيلات :
- نموذج حر لقواعد اللغة، بدلا من الاستناد على الخط كأساس لقواعد لغة البرمجة
- درجة عالية من توسع الماكرو (وسائط الماكرو تتوسع مرتين: مرة خلال المسح الضوئي ومرة في وقت الاستكمال أو الاستيفاء)
- تبديل النص
- الاستعاضة عن الوسيط
- إدراج ملف
- التلاعب في سلسلة النص
- تقييم شرطي
- التعبيرات الحسابية
- واجهة النظام
- تشخيص المبرمج
- استقلال لغة البرمجة
- لغة الإنسان المستقلة
- يوفر قدرات لغة البرمجة
وخلافا لمعظم معالجات الماكرو في وقت سابق، إم4 لا يستهدف أي جهاز كمبيوتر معين أو لغة الإنسان ؛ تاريخيا، ومع ذلك، طور أصلاً لدعم لغة راتفور Ratfor من فورتران Fortran. وعلى عكس من بعض معالجات الماكرو الأخرى، إم4 هو آلة تورينج كاملة تورينج كاملة Turing-coإمplete، وكذلك لغة البرمجة العملية.