هناك العديد من لغات البرمجة التي لها خصائصها الفريدة. ولكن لكي يعمل برنامج مكتوب في أي منها ، تحتاج إلى بثه. في بعض الأحيان يتم تطوير لغات البرمجة لتلبية احتياجاتها الخاصة (على سبيل المثال ، دعم الأتمتة في التطبيقات الكبيرة) ومن ثم يصبح من الضروري كتابة مترجم.
ضروري
- - القواعد الطبيعية أو BNF للغة المصدر ؛
- - ادوات التطوير.
تعليمات
الخطوة 1
تحضير البيانات للتحليل المعجمي للنص في اللغة المصدر. ضع قائمة بجميع الرموز في اللغة. قسّمهم إلى فئات (كلمات رئيسية ، وحرفية رقمية وسلسلة ، ومعرفات ، ومسافات بيضاء ، وعلامات ترقيم ، وما إلى ذلك).
الخطوة 2
تنفيذ وحدة أو lexer. عند الإدخال ، يجب أن يتلقى تدفق بيانات "خام" ، وفي نموذج الإخراج قائمة بالعناصر التي تحتوي على الرموز ومعرفات الأنواع في التسلسل الذي تحدث فيه في النص المصدر. يمكن أن يكون برنامج التحليل بسيطًا إلى حد ما " ماسح ضوئي أحادي المستوى. تنفيذ استرداد الخطأ لا معنى له. يجب التعامل مع الأحرف غير الصالحة على أنها أخطاء.
الخطوه 3
تحضير البيانات للتحليل. بناءً على القواعد النحوية الطبيعية أو BNF للغة المصدر ، قم بتكوين قواعد اللغة LL1 الخاصة بها. بناءً على هذا النوع من القواعد ، ضع مخطط تحليل من حيث فئات الرموز المميزة الصالحة والتركيبات الدلالية للغة.
الخطوة 4
تنفيذ وحدة أو محلل. عند الإدخال ، يجب أن تتلقى قائمة من الرموز المميزة التي تم إعدادها في مرحلة التحليل المعجمي. قم بتطوير خوارزميات التحقق من بناء الجملة باستخدام المخطط الذي قمت بإنشائه في الخطوة الثالثة. إذا لزم الأمر ، قم بتنفيذ آليات استعادة الأخطاء. أضف وظائف لخوارزميات التحليل لبناء شجرة لحساب الوظائف وطرق الفئات. مع الهيكل الصحيح لتحليل الخوارزميات ، يمكن تنفيذ هذه الوظيفة دون أي مشاكل. هذا يتجنب الحاجة إلى تنفيذه كوحدة منفصلة. يجب أن تحتوي هياكل البيانات التي تم إنشاؤها على قوائم من التعليمات في شكل متواليات "مسطحة" (تم توسيع التعبيرات الحسابية إلى شكل postfix مناسب للحساب على آلة مكدس ، والحلقات المحولة إلى مجموعات من تسلسل التعليمات الحسابية والقفزات الشرطية أو غير المشروطة ، إلخ.).
الخطوة الخامسة
قم بإنشاء وحدة تحسين إذا لزم الأمر. يجب أن تقوم بمعالجة وتحويل هياكل البيانات المعدة في الخطوة السابقة. خوارزميات وطرق التحسين متنوعة للغاية.
الخطوة 6
تطوير منشئ الكود. عند معالجة الهياكل المعدة في الخطوتين الرابعة أو الخامسة ، يجب ببساطة تحويل تسلسل التعليمات المجردة إلى تعليمات للتنفيذ على نظام أساسي معين.
الخطوة 7
قم بإنشاء برنامج رابط (رابط) إذا لزم الأمر. يجب أن تشكل الوحدة النمطية القابلة للتنفيذ الناتجة عن طريق اختيار موقع مقاطع الكود ، وحساب عناوين الملصقات ، إلخ.