محلل أكواد مصغر (Mini Code Analyzer) باستخدام C++ وFlutter
تفاصيل العمل
Mini Code Analyzer هو مشروع تعليمي لتحليل الشيفرة البرمجية، تم تطويره باستخدام Flutter وDart، ويهدف إلى توضيح المراحل الأساسية التي تمر بها الشيفرة أثناء عملية الترجمة، من خلال واجهة تفاعلية سهلة الاستخدام. المكونات الأساسية للمشروع يتكون المشروع من ثلاث مراحل رئيسية: 1. التحليل المعجمي (Lexical Analysis) يتم في هذه المرحلة تحليل الشيفرة المصدرية وتحويلها إلى مجموعة من Tokens مع تحديد نوع كل عنصر وموقعه من حيث السطر والعمود. تشمل المرحلة: التعرف على الكلمات المحجوزة والمتغيرات. تحليل الأرقام الصحيحة والعشرية. التعامل مع النصوص وعلامات الاقتباس. دعم أحرف الهروب مثل \n و\t. التعرف على العمليات الحسابية والمنطقية. إعطاء الأولوية للعمليات متعددة الرموز مثل == و!= و<= و>=. إزالة التعليقات أحادية السطر ومتعددة الأسطر. 2. فحص الأقواس باستخدام Push-Down Automaton (PDA) تستخدم هذه المرحلة Stack-based Automaton للتحقق من صحة الأقواس وترتيبها. يتم التحقق من: الأقواس الدائرية (). الأقواس المربعة []. الأقواس المعقوفة {}. الأقواس غير المغلقة. الأقواس المغلقة بشكل غير صحيح. عدم تطابق أنواع الأقواس. كما يوفر النظام رسائل توضيحية للأخطاء المكتشفة. 3. التحليل النحوي باستخدام Context-Free Grammar تستخدم هذه المرحلة Recursive Descent Parser لتحليل البنية النحوية للشيفرة والتحقق من صحة ترتيب العبارات والعمليات. تدعم: تعريف الدوال function. تعريف المتغيرات بأنواع مختلفة مثل int وfloat وvar. الجمل الشرطية if / else. جمل return. الكتل البرمجية { ... }. التعبيرات الحسابية والمنطقية. ترتيب أولوية العمليات. اكتشاف أكثر من خطأ نحوي أثناء عملية التحليل. كما يستخدم النظام آلية Panic-Mode Synchronization لمحاولة استكمال التحليل بعد اكتشاف الخطأ وعرض عدة أخطاء في عملية تحليل واحدة. واجهة المستخدم والمميزات تم تطوير واجهة المشروع باستخدام Flutter وMaterial 3، وتتميز بـ: تصميم داكن مناسب لأدوات البرمجة. واجهة متجاوبة مع أجهزة الكمبيوتر والهواتف. تقسيم الواجهة إلى لوحتين على الشاشات الكبيرة. عرض رأسي مناسب للشاشات الصغيرة. عرض الـ Tokens بشكل منظم وملون حسب نوعها. أمثلة برمجية جاهزة للتجربة. إمكانية تجربة حالات مختلفة مثل: الشيفرات البسيطة. العمليات الحسابية. الدوال المعقدة. اختبار الأقواس. 🎯 الهدف من المشروع يهدف المشروع إلى تقديم طريقة تفاعلية وبصرية لفهم مفاهيم Compiler Design، وخاصة: Lexical Analysis Finite Automata / DFA Push-Down Automata Context-Free Grammar Recursive Descent Parsing Syntax Error Detection وذلك من خلال تطبيق عملي يمكن للمستخدم تجربة الشيفرة وتحليلها ومشاهدة نتائج كل مرحلة بشكل مباشر.
مهارات العمل