SableVM
كان SableVM تطبيقًا مُنمذجًا لترجمة بايت كود جافا ، مُنفذًا لمواصفات آلة جافا الافتراضية ( JVM )، الإصدار الثاني. صُمم SableVM ليكون آلة جافا افتراضية قوية، سهلة النقل، فعالة، ومتوافقة تمامًا مع المواصفات (مواصفات JVM، واجهة جافا الأصلية ، واجهة الاستدعاء، واجهة التصحيح، إلخ)، بحيث يسهل صيانتها وتطويرها. وقد توقف دعمه الآن.
كان هذا التنفيذ جزءًا من الجهود المبذولة في أوائل العقد الأول من القرن الحادي والعشرين لتحرير بيئة جافا من سيطرة شركة صن مايكروسيستمز . [ 1 ] [ 2 ] [ 3 ]
ملخص
المحرك الأساسي عبارة عن مترجم فوري يستخدم تقنيات رائدة لتقديم أداء يقارب أداء المترجم الفوري البسيط ، مع الحفاظ على مزايا هندسة البرمجيات للمترجمات الفورية: قابلية النقل ، وسهولة الصيانة ، والبساطة . [ 4 ] [ 5 ] هذه البساطة تجعل شفرة المصدر الخاصة بـ SableVM سهلة الوصول والفهم للمستخدمين/المبرمجين الجدد.
برنامج SableVM برنامج حرّ ، مرخص بموجب رخصة جنو العمومية الصغرى ( LGPL ). كما أنه يستخدم برنامج GNU Classpath (المحمي بحقوق الطبع والنشر من قبل مؤسسة البرمجيات الحرة FSF )، المرخص بموجب رخصة جنو العمومية مع استثناء الربط .
SableVM هي أول آلة افتراضية مفتوحة المصدر للغة جافا تدعم JVMDI (واجهة تصحيح أخطاء الآلة الافتراضية لجافا) و JDWP (بروتوكول تصحيح أخطاء جافا السلكي). تُستخدم واجهات تصحيح أخطاء جافا القياسية هذه، على سبيل المثال، في Eclipse لتوفير بيئة تطوير جافا غنية وسهلة الاستخدام.
لغة جافا الوسيطة
تستخدم بعض إصدارات SableVM لغة Java الوسيطة، وهي لغة وسيطة (وهي مجموعة فرعية من XML ) تمثل بنية أنواع برنامج Java . اقترح فريق SableVM في جامعة ماكجيل هذه اللغة في يناير 2002 للمساعدة في تحليل برنامج Java بهدف تحقيق قابلية التوسع والأداء الجيد. [ 6 ] [ 7 ] إلا أن هذه اللغة لم تُعتمد على نطاق واسع.
انظر إلى جزء كود جافا التالي.
public MyClass implements MyInterface extends MySupperClass { int MyField ;void MyMethod ( double x , double y ) { double z ; z = x + y ; this . MyField = z } }يمكن التعبير عن هذه القطعة باللغة على النحو التالي:
<jil> <class name= "MyClass" extends= "MySupperClass" > <modifiers><modifier name= "public" /></modifiers> <interfaces><interface name= "myinterface" /></interfaces> <fields> <field name= "MyField" type= "int" /> </fields><methods> <method name= "MyMethod" returntype= "void" > <parameters> <parameter name= "x" type= "double" /> <parameter name= "y" type= "double" /> </parameters> <locals> <local name= "z" type= "double" /> </locals> <statements> <!-- يتم التعبير عن كل عبارة بتنسيق وسيط لمولد الشفرة، مثل رمز العنوان الثلاثي. في المثال أدناه، يتم استخدام لغة تسمى baf. --> <baf> <![CDATA[ $r2 = $r0 + $r1; this.MyField = (double) $r2; ]]> <!-- هنا، نفترض أن x معبر عنه كـ $r0، وy كـ $r1، وz كـ $r2. --> </baf> </statements> </method> </methods> </class> </jil>انظر أيضاً
مراجع
- ↑ "جافا مفتوحة المصدر معتمدة من صن تحرز تقدماً" . صحيفة ذا إنكوايرر. 31 مارس 2006. مؤرشف من الأصل في 3 ديسمبر 2009. تم الاطلاع عليه في 2 ديسمبر 2012 .
- ↑ "شبكة أورايلي تفوز بجولة؛ منصة سناب تتعرض لصدمة" . Onlamp.com. مؤرشف من الأصل بتاريخ 2016-03-03 . تم الاطلاع عليه بتاريخ 2012-12-02 .
- ↑ "البرابرة عند البوابة | SYS-CON.TV" . Tv.sys-con.com. 2006-09-22 . تم الاطلاع عليه بتاريخ 2012-12-02 .
- ↑ غانيون، إتيان م.، ولوري ج. هندري. "SableVM: إطار بحثي للتنفيذ الفعال لرمز بايت جافا." وقائع ندوة أبحاث وتكنولوجيا آلة جافا الافتراضية. المجلد 1. 2001.
- ↑ بروكوبسكي، غريغوري ب.، إتيان م. غانيون، وكريستيان أركاند. إطار عمل لاختبار بايت كود لمحرك نسخ الكود SableVM. تقرير فني SABLETR-2007-9، مجموعة أبحاث Sable، كلية علوم الحاسوب، جامعة ماكجيل، مونتريال، كيبيك، كندا، 2007.
- ↑ إنج، ديفيد. "JIL: لغة وسيطة قابلة للتوسيع." مجموعة أبحاث سابل، جامعة ماكجيل (2002).
- ↑ إنج، ديفيد. دمج البيانات الثابتة والديناميكية في تصور التعليمات البرمجية. المجلد 28. العدد 1. ACM، 2002.
روابط خارجية
- الموقع الرسمي
- موقع فرعي لتطوير SableVM
- معلومات حول تصحيح الأخطاء باستخدام SableVM و Eclipse
- لغة جافا الوسيطة
- برامج متعددة المنصات
- آلات جافا الافتراضية المتوقفة
