تحسين مُحلل مُفردات Purple Garden: زيادة في السرعة من 0 إلى 580 ميجابايت/ثانية

2025-07-14

تتناول هذه التدوينة قصة الكاتب في تحسين مُحلل مُفردات لغة Purple Garden، ليصل إلى سرعة مذهلة تبلغ 580 ميجابايت/ثانية. وتشمل التقنيات المُستخدمة عمليات الانتقال المحسوبة، وسلاسل الأحرف بدون نسخ أو تخصيص، وواجهة مُخصصة للتخصيص، وإدخال الرموز، ووظائف التجزئة المُسبقة للحروف الرئيسية، مما يحسن بشكل كبير أداء مُحلل المُفردات. كما شملت التحسينات الأخرى تحسينات معمارية واستخدام mmap لقراءة الملفات بشكل أسرع. وقد أدت هذه التحسينات إلى زيادة هائلة في السرعة، حيث تحوّل وقت المعالجة من عشرات المللي ثانية إلى بضعة مللي ثانية فقط، وهو قفزة حقيقية في السرعة.

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

محلل JSON قوي وفعال بلغة C نقية

2025-03-01

تُفصّل هذه المقالة محلل JSON مكتوبًا بالكامل بلغة C. باستخدام نهج كائني التوجيه مع وظائف مُرفقة بالبنى، يتميز بقدرة عالية على القراءة والصيانة. مع إعطاء الأولوية للأمان، فإنه يتجنب تسربات الذاكرة والأخطاء الشائعة في التقسيم. يتم توفير واجهة برمجة تطبيقات نظيفة وسهلة الاستخدام، بالإضافة إلى تعليمات التجميع، وأمثلة الاستخدام، وأفضل الممارسات لتنمية C، بما في ذلك علامات مُجمع لكتابة شيفرة قوية. يُظهر الكاتب استخدام وحدات ماكرو متغيرة الطول لإنشاء JSON مُدمج وتقنيات فعّالة لإدارة الذاكرة.

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

تمييز Bash في Lua باستخدام Neovim و Treesitter

2025-01-28

قام المؤلف بإنشاء أداة لمزامنة الحزم على أجهزة متعددة، باستخدام ملف تكوين Lua. لتحسين قابلية القراءة وتحرير نصوص Bash المضمنة في تكوين Lua، استخدم Neovim وإضافة Treesitter. يحدد Treesitter، من خلال ميزة الحقن الخاصة به، حقل `script` في جداول Lua ويبرز محتواه على أنه Bash بناءً على استعلام مخصص. يحسن هذا بشكل كبير من قابلية قراءة وصيانة التعليمات البرمجية. تشرح المقالة بالتفصيل تكوين Neovim و Treesitter، بالإضافة إلى الاستعلام المخصص لتحقيق تمييز Bash.

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

دمج لوا في روست من أجل تحليل SQL ثابت قابل للتكوين في sqleibniz

2024-12-19

تم تحسين sqleibniz، وهي أداة تحليل SQL ثابتة لنمط SQLite، باستخدام نصوص لوا لزيادة إمكانية التكوين والقدرة على التوسعة. يوضح الكاتب تفاصيل التكامل باستخدام مكتبة mlua في روست، بما في ذلك تحويل بنية البيانات، ونداءات دالة لوا، ومعالجة الأخطاء. تسمح نصوص لوا للمستخدمين بتعريف قواعد وخطافات مخصصة، مما يتيح تحليلاً ثابتاً مرناً، مثل التشخيصات المخصصة وفحوصات الأنماط. هذا يحسن بشكل كبير من إمكانية توسعة sqleibniz وتجربة المستخدم.

اقرأ المزيد