كيف يعد جدول الرمز مفيدا في ترجمة لغة واحدة إلى أخرى

StackOverflow https://stackoverflow.com/questions/1919732

سؤال

في Compiler Class، صنعنا محللا لغة مكونة مكونة من نسخة مبسطة من C. لا يقوم جميع المحفوظات بإصدار جدول رمز يعتمد على الإدخال والخروج مع رسالة خطأ إذا كان بناء الجملة غير صحيح. الآن نحتاج إلى اتخاذ ملف الإدخال مكتوب في هذه اللغة، وتحويله إلى رمز MIPS (في الواقع رمز SpIm الذي هو MIPS لنظام التشغيل Linux.) لماذا هناك حاجة إلى جدول الرمز لذلك؟ هل يمكن القيام به بدون جدول الرمز؟

هل كانت مفيدة؟

المحلول

سيقوم جدول الرموز بإخبار أي تمرير مزيد من المترجم الخاص بك ما إذا كان أي اسم معين (على سبيل المثال) اسم النوع، اسم الوظيفة، اسم المتغير، وما إلى ذلك. كيف تريد ترجمة C في كود التجميع (أو أي تلاعب جوهري آخر) دون معرفة الذي - التيمن جديد النظر، على سبيل المثال، X * Y; - هل هذا يتضاعف x مرات y، أو إعلان y أن يكون مؤشرا إلى x؟ تحتاج إلى معرفة ما إذا كانت X أسماء نوعا، لتصفح ذلك - ماذا آخر ولكن يمكن أن يخبرك جدول الرموز؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top