لغات البرمجة

PCRE: مكتبة تعابير عمليات نمطية

لغة البرمجة PCRE (Perl Compatible Regular Expressions) هي مكتبة لتعابير العمليات النمطية (Regular Expressions) في لغة البرمجة C، مستوحاة من قدرات تعابير العمليات النمطية في لغة البرمجة Perl. بدأ فيليب هازل في كتابة PCRE في صيف عام 1997. يتميز بنحو تركيبته وقابليته للتوسيع بشكل كبير عن تركيبتي التعابير النمطية POSIX وعن تركيبات العديد من المكتبات الأخرى لتعابير العمليات النمطية. على الرغم من أن هدف PCRE الأصلي كان تحقيق المكافئة بالميزات مع Perl، إلا أن الاثنين ليستا متكاملين تمامًا. خلال فترة إصدارات PCRE 7.x و Perl 5.9.x، قام المشروعان بتنسيق التطوير معًا، حيث تم نقل الميزات بينهما في كلا الاتجاهين. تضم عدة برامج مفتوحة المصدر بارزة، مثل خادم Apache HTTP ولغتي البرمجة PHP و R، مكتبة PCRE؛ ويمكن للبرمجيات الخاصة القيام بالشيء نفسه (بترخيص BSD). ومنذ Perl 5.10، أصبحت PCRE متاحة أيضًا كبديل لمحرك تعابير العمليات النمطية الافتراضي في Perl من خلال وحدة re::engine::PCRE. يمكن بناء المكتبة باستخدام configure و make (المعتاد في بيئات تشبه Unix)، بالإضافة إلى بيئات Unix و Windows وأخرى باستخدام CMake. يتم اختيار العديد من الإعدادات الافتراضية أثناء عملية البناء. بالإضافة إلى المكتبة PCRE، تتضمن التوزيعة ملف تعليق C POSIX، وتوضيح C++ الأصلي، وعدة برامج اختبار، وبرنامج الأداة pcregrep المضمن مع المكتبة. تقدم المكتبة PCRE الإلتقاء فقط؛ وتضيف التوضيح C++ الأصلي، إذا استخدمت، وظائف الإلتقاء والاستبدال المتعددة. ما لم يختر المستخدمون خيار البناء “NoRecurse” في PCRE (المعروف أيضًا بـ “–disable-stack-for-recursion”)، يجب على التطبيق الداعي أو نظام التشغيل تخصيص مساحة كافية في الذاكرة العميقة لـ PCRE. تختلف كمية الذاكرة العميقة اللازمة لكل نمط. على سبيل المثال، يتطلب إكمال الاختبارات المقدمة مع pcretest 8 ميغابايت من مساحة الذاكرة العميقة. بينما تحذر وثائق PCRE من أن خيار البناء “NoRecurse” يجعل PCRE أبطأ من البديل، إلا أن استخدامه يتجنب تمامًا مشكلة تجاوز الذاكرة العميقة. تعتبر PCRE أداة قوية لمعالجة التعابير العمليات النمطية في البرمجة، وهي تستخدم على نطاق واسع في مجموعة متنوعة من التطبيقات والمشاريع، مما يجعلها تكنولوجيا ذات أهمية كبيرة في عالم تطوير البرمجيات. للمزيد من المعلومات، يمكن الاطلاع على صفحة ويكيبيديا المخصصة لـ Perl Compatible Regular Expressions (PCRE).