ما هي التطبيقات الافتراضية التي يتم كتابتها بلغات عالية المستوى؟
-
01-10-2019 - |
سؤال
ما هي التطبيقات الافتراضية للتطبيق المكتوب بلغات المستوى الأعلى؟ يشبه C/C ++ لغات الاختيار (لأسباب واضحة).
ما وجدته على Google هو على الأقل مكتوبة في Java (كلاهما meta-circular): Jikesrvm و Maxine.
أي شيء آخر وجدته؟
المحلول
- تتم كتابة العديد من تطبيقات المخططات في المخطط ، وعلى الرغم من أن العديد من هؤلاء المترجمين أو المترجمين الفوريين ، إلا أن بعضها من VMs ،
- تتم كتابة بعض التطبيقات الشائعة في الشائعة وعلى الرغم من أن العديد من هذه التطبيقات هي المترجمين أو المترجمين الفوريين ، إلا أن بعضها من VMs ،
- ال Pypy تتم كتابة VM في Rpython ، وهي مجموعة فرعية من Python مع "بناء جملة ودلالات Python ، وسرعة C ، وقيود رسائل خطأ Java وبراميلر قابلة للاختراق مثل النكاف" ، ،
- ال Squeak smalltalk vm مكتوبة باللغة العامية (مجموعة فرعية من Squeak Smalltalk) و
- ال كلاين metacircular VM مكتوبة بالكامل في النفس.
من بين هؤلاء ، الأكثر إثارة للاهتمام هم كلاين وماكسين (الذي يعتمد تصميمه في الواقع على كلاين). عادةً ما تفترض تطبيقات LISP ومخطط Metacircular وجود بعض الأشكال الخاصة البدائية الأساسية ، والتي يجب تنفيذها بعد ذلك في المجمع أو C أو مجموعة فرعية محدودة من اللغة بأسلوب منخفض المستوى. استخدم Squeak و Pypy مجموعة فرعية محدودة من اللغة. يستخدم Jikes أساليب "السحر" وأسلوب المستوى المنخفض.
فكرة كلاين وماكسين هي ذلك كل شىء مكتوبة بأسلوب عالي المستوى ، موجه نحو الكائن ، والتعبيرية ، والتعبيرية. في الإصدار الحالي من Klein ، لا يوجد سوى مكانان صغيران حيث يتم إعاقة النمط من خلال بعض القيود: في تنفيذ إرسال الرسائل ، لا يمكنك إرسال أي رسائل وفي تنفيذ استنساخ الكائنات ، لا يمكنك استنساخ أي كائنات. ومع ذلك ، المترجم الحالي يستطيع في الواقع مضمّن أو حتى تحسين استنساخ الكائنات وإرسال الرسائل تمامًا ، لذلك يمكن إعادة كتابة هذين المكانين بأسلوب ذاتي عادي - إنه لم يفعل أحد حتى الآن.
كل ذلك كان مجرد metacircular vms. هناك أيضًا VMs أخرى مكتوبة بلغات عالية المستوى:
- Hotruby هو Ruby VM (في الواقع ، yarv vm) مكتوبة في JavaScript ،
- أشعة الشمس الحمراء هو Ruby VM (في الواقع ، yarv vm) مكتوبة في ActionScript ،
- رافا هو VM يشبه JVM مكتوبة في Ruby بواسطة Koichi "KO1" Sasada ، مؤلف كتاب Yarv و
- روفا هو VM يشبه JVM مكتوبة في روبي
نصائح أخرى
هناك المزيد من تطبيقات VM في TCL (لغة أمر الأدوات) و LUA (تم تسميتها أحيانًا باسم Java) وبعضها مكتوب في مجمع. تتم كتابة المتغيرات الأخرى بلغة برمجة نظام أجهزة الكمبيوتر للشركة المصنعة.