رهاينو (محرك جافا سكريبت)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
راينو
Rhino
Inicio de ldp para 260px50px moziyarinocrnt.jpg
المطور شركة موزيلا ومؤسسة موزيلا
آخر إصدار 1.7R3 / 2011-05-09؛ منذ 1207 أيام
مكتوب بلغة جافا
نظام تشغيل متعدد
المنصة آلة جافا الافتراضية
النوعية محرك جافاسكربت
الترخيص إم.بي.إل/جي.بي.إل/إل.جي.بي.إل [1]
موقع وب http://www.mozilla.org/rhino

تعديل

راينو (بالإنجليزية: Rhino) هو محرك جافاسكربت مفتوح المصدر تم تطويره بواسطة لغة جافا ويدار بواسطة مؤسسة موزيلا. التي توفر محركا آخرا للجافاسكريت تمت كتابة الكود الخاص به بواسطة لغة سي يعرف بـسبايدر مونكي

راينو يقوم بتحويل كودات جافاسكربت إلى كلاسات (أصناف) برمجية. وهو يعمل بكلا من نمطي الـ (compiled) والـ (interpreted) وقد خطط لجعله يعمل لإعداد تطبيقات (Server Side) أي تطبيقات برمجية تعمل على الخادم (Server) كما في اي اس بي دوت نيت وبي اتش بي غير أنه لن تكون حاجة لدعم إضافي في متصفح الانترنت البراوزر.

اصدار حديث من راينو (راينو 1.6) تم إصداره لتتم كتابة الكود الخاصة به بواسطة لغة جافا وقد أنتجته الشركة المالكة لجافا (سن مايكروسستمس) وتم دمجه مع جافا 6 في سنة 2006 مما جعل التعامل مع الجافاسكربت عن طريق لغة البرمجة جافا امرا سهلا.

نبذة تاريخية[عدل]

بدأ مشروع راينو في سنة 1997 بمؤسسة (Netscape Communications Corporation) نيتسكيب للاتصالات, والتي كانت تخطط لإنتاج اصدار من متصفح نيتسكيب المكتوب بلغة جافا كلية وبناء على ذلك فقد احتاجت إلى دمج الجافاسكربت ضمن لغة الجافا. وعندما توقف المشروع وترك العمل على المتصفح الجديد, تم إنهاء محرك راينو وقامت (suns microsystems) بشراء المشروع ودفع ثمن الرخصة لأكمال العمل عليه.

في الاصل تم دمج جميع كودات الجافاسكربت ضمن الجافا ضمن كلاس (صنف) برمجي خاص بذلك وكان العمل بجودة عالية جدا تتفوق على دمج الجافاسكربت ضمن لغة سي. غير ان المحرك عانا من مشكلتين اولاهما ان التنفيذ كان يستغرق وقتا طويلا لأن كلاس الجافاسكربت كان كبير الحجم. وأيضا فقد كان هناك مشكلة [[تسرب في الذاكرة) (memory leak) لأن معظم مشغلات الجافا لا تتضمن تطبيق جامع للقمامة (Garbage collection).

وبذلك فقد تمت إضافة نمط التشغيل الجديد للجافاسكربت في سنة 1998 (interpretive mode) وتم تحويل الكلاس إلى نمط اختياري وضمن مكتبة مدمجة (Dll) وبذلك زادت سرعة التنفيذ عن السابق ولم يعد التعامل مع الجافاسكربت داخل الجافا كبقية مكونات الجافا. وتم نشر الإصدار الأول من موزيلا في سنة 1998 وتم حجز الإصدار المصنف الذي يحتوي على كلاسات (اصناف) برمجية والذي عانا من مشاكل, واليوم وافقت موزيلا على نشر راينو بما فيه الإصدار الذي يحتوي على كلاسات كمشروع مفتوح المصدر قابل للتعديل (Open Source Project)ـ[2]

مثال[عدل]

الكود ادناه مكتوب بلغة جافاسكربت لتنفيذ تطبيق (Hello World) print('Hello, world!')

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
 
public class RhinoEngine {
    public static void main(String[] args) {
        ScriptEngineManager mgr = new ScriptEngineManager();
        // Now we can go and get a script engine we want. 
        // This can be done either by finding a factory that supports 
        // our required scripting language 
        // (engine = factory.getScriptEngine();)
        // or by requesting a script engine that supports a 
        // given language by name from the script engine manager.
        ScriptEngine engine = mgr.getEngineByName("JavaScript");
 
        // Now we have a script engine instance that 
        // can execute some JavaScript
        try {
            engine.put("name", args[0]);
            engine.eval("print('Hello ' + name + '!')");
        } catch (ScriptException ex) {
            ex.printStackTrace();
        }    
    }
}

وفيما يلي مثال آخر لتحويل النص بين الاحرف الكبيرة والصغيرة.

// Equivalent in effect to the Java declaration import java.io.*;
importPackage(java.io);
importPackage(java.lang);
 
// "in" is a keyword in JavaScript. 
// In JavaScript you could query for an attribute using [] syntax: 
S = new BufferedReader(new InputStreamReader(System['in']));
s = true;
 
while (s){
    s = S.readLine().toUpperCase();
    if (s) System.out.println(s);
}

المصادر[عدل]

  1. ^ بنود رخصة مصدر موزيلا
  2. ^ | url=https://developer.mozilla.org/en/docs/New_in_Rhino_1.7R1 | title=New in Rhino 1.7R1 | publisher=Mozilla Foundation | accessdate=2008-03-20}}

وصلات خارجية[عدل]

قالب:Mozilla projects قالب:ECMAScript