هل ينتج مترجم F# (fsi.exe) أيضًا رمز اللغة الوسيط كما يفعل برنامج التحويل البرمجي F# (FSC.Exe)؟
-
26-09-2019 - |
سؤال
حاليًا أقوم بعمل 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 أثناء تنفيذ الكود.