هل ينتج مترجم F# (fsi.exe) أيضًا رمز اللغة الوسيط كما يفعل برنامج التحويل البرمجي F# (FSC.Exe)؟

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

سؤال

حاليًا أقوم بعمل recherche للجامعة حول F#. لدي سؤال حول وحدة التحكم التفاعلية F# ومترجم F#.

ينتج برنامج التحويل البرمجي F# رمز اللغة المتوسطة (MSIL) عند تجميعه F# -Source. ثم يتم ترجمة هذا بواسطة JIT-Compiler إلى رمز الجهاز ، عند تنفيذ البرنامج المكتوب.

ولكن ماذا تفعل وحدة التحكم في المترجمة F#؟ هل يترجم أيضًا خط السطر لكل خط إلى رمز F# إلى MSIL ، ثم jit إلى رمز الجهاز؟ أم أنه يترجم الرمز F#مباشرة إلى رمز الجهاز؟

إذا قام بتحويله إلى IL أولاً ، فأعتقد أنه من المحتمل أن يكون هناك IL-Interpreter لأن JIT-Compiler يجمع البرامج الكاملة فقط. أليس كذلك؟

ما رأيك ، كيف يتولى F# -Interpreter F# رمز وترجمته؟

تحياتي ، مارتن

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

المحلول

ينطلق برنامج التحويل البرمجي F# IL باستخدام مكتبته الخاصة بذلت. ABRAY هو مشروع آخر MSR تم امتصاصه بواسطة F#.

عند تجميع الوضع التفاعلي ، absil الاستخدامات ال System.reflection.emit مساحة الاسم التي تنبعث منها IL في الذاكرة ، في وقت التشغيل ، والتي تم تجميعها بدورها إلى التعليمات البرمجية الأصلية بواسطة JIT أثناء تنفيذ الكود.

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