التتبع الميتا

التتبع الفائق هو تحويل تلقائي في الغالب، يأخذ مترجمًا فوريًا كمدخلات وينتج عنه مُجمِّعًا فوريًا للتتبع كمخرجات. ولأن كتابة المترجمات الفورية أسهل عادةً من كتابة المُجمِّعات، ولكنها أبطأ، فإن هذه التقنية تُسهِّل إنتاج تطبيقات فعّالة للغات البرمجة. [ 1 ]

تعتمد هذه المقاربة بشكل أساسي على استخدام مستويين من التفسير، حيث يُستخدم مُفسِّر تتبع لتنفيذ مُفسِّر ثانٍ يُفسِّر لغة الهدف التي سيتم إنشاء مُترجم لها؛ ثم يراقب مُفسِّر التتبع المُفسِّر الثاني أثناء تنفيذه لتسلسلات التعليمات المُولَّدة من برنامج الإدخال. [ 2 ]

يستخدم مشروع PyPy هذا النهج لإنشاء مُصرّف بايثون الخاص به ، وذلك من خلال تتبع مُفسّر بايثون مكتوب بلغة RPython ، وهي نسخة مُقيّدة من لغة برمجة بايثون. [ 3 ] في حالة RPython تحديدًا، تُفسّر لغة RPython نفسها بواسطة مُفسّر مكتوب بلغة بايثون الكاملة، والتي يرمز إليها شعار مشروع PyPy الذي يُمثّل طائر الأوربوروس .

كما تم استخدام RPython لإنشاء مترجم للغة البرمجة Scheme . [ 2 ]

يمكن مقارنة التتبع الفائق بنهج التقييم الجزئي الموجه بشجرة بناء الجملة المجردة (AST) لإنشاء المترجمات، مثل مترجم Truffle/JS للغة برمجة JavaScript . [ 4 ] ويمكن اعتبار كل من التتبع الفائق والتقييم الجزئي الموجه بشجرة بناء الجملة المجردة (AST) مثالين على إسقاط فوتامورا .

مراجع

  1. ^ بولز، كارل فريدريش. بابي، توبياس؛ سيك، جيريمي. توبين هوتشستات، سام (2014). "التتبع الفوقي يصنع مضربًا سريعًا" (PDF) .عُرضت في ورشة العمل الثامنة حول اللغات الديناميكية وتطبيقاتها، يونيو 2014 في إدنبرة، المملكة المتحدة
  2. 1 2 فاندركامين، مارتن (يونيو 2015). "جوهر التتبع الميتا لمترجمات JIT" (PDF) .
  3. بولز، كارل فريدريش؛ كوني، أنطونيو؛ فيالكوفسكي، ماسيج؛ ريغو، أرمين (2009-07-06). "تتبع المستوى الفوقي: مُترجم PyPy JIT للتتبع" . وقائع ورشة العمل الرابعة حول تنفيذ وتجميع وتحسين لغات البرمجة كائنية التوجه وأنظمة البرمجة . ICOOOLPS '09. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 18-25 . doi : 10.1145/1565824.1565827 . ISBN  978-1-60558-541-3.
  4. مار، ستيفان؛ دوكاس، ستيفان (23-10-2015). "التتبع مقابل التقييم الجزئي: مقارنة أساليب الترجمة الفوقية للمترجمات ذاتية التحسين" . وقائع مؤتمر ACM SIGPLAN الدولي لعام 2015 حول البرمجة الكائنية والأنظمة واللغات والتطبيقات . OOPSLA 2015. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 821-839 . doi : 10.1145/2814270.2814275 . ISBN  978-1-4503-3689-5.

انظر أيضاً