الصنف InstructionSequence في روبي

من موسوعة حسوب
مراجعة 08:33، 4 ديسمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يمثل الصنف InstructionSequence تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي.

يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها.

هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات المُصرِّف iseq لروبي.

يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة insns.defفي توثيق روبي.

من شبه المؤكد أن نتائج سلاسل التعليمات سوف تتغير مع تغير روبي، لذلك قد يكون ناتج الأمثلة في صفحات هذا التوثيق مختلفًا عما لديك.

توابع الصنف العامة

compile

يصرِّف السلسلة النصية المُمرَّرة إليه والتي تحتوي على أكواد برمجية لروبي إلى كائن من النوع InstructionSequence.

compile_file

يقرأ ملف روبي المصدري ذا المسار المُمرَّر إليه ويحلله (parses) ويُصرّفه (compiles) ثم يعيد iseq، الذي هو الكائن InstructionSequence المصرَّف مع البيانات الوصفية (metadata) للمصدر.

compile_option

يعيد كائنًا من النوع Hash يحوي الخيارات الافتراضية المستخدمة من المصرف iseq لروبي.

compile_option=‎

يضبط عند استدعائه بالشكل compile_option = options‎ القيم الافتراضية إلى القيم options‎ لتحسين أداء المصرف iseq لروبي.

disasm

يأخذ كائنًا يمكن أن يكون من النوع Method أو من النوع Proc ويعيد سلسلة نصية تعليمات قابلة للقراءة لهذا المعامل المعطى.

disassemble

يأخذ المعامل body، والذي سيكون إما كائنًا من النوع Method، أو من النوع Proc، ثم يُعيد سلسلة نصية تحوي هذا المعامل على هيئة تعليمات قابلة للقراءة.

load_from_binary

يُحمّل سلسلة تعليمات من سلسلة نصية ثنائية (binary format String) مُنشأ بواسطة to_binary.

load_from_binary_extra_data

يُحمّل البيانات الإضافية المُضمّنة في السلسلة النصية الثنائية (binary format String) المعطاة.

new

يأخذ سلسلة نصية تحوي شيفرات برمجية بلغة روبي، ويُصرّفها (compile) إلى كائن من النوع InstructionSequence.

of

يُعيد سلسلة التعليمات التي تحوي الكائن Proc أو Method المعطى.

توابع النسخ العامة

absolute_path

يُعيد المسار المطلق لسلسلة التعليمات المعطاة، أو يعيد القيمة nil إذا تم تقييم سلسلة التعليمات التي استُدعي معها انطلاقًا من سلسلة نصية.

base_label

يُعيد التسمية الأساسية (base label) لسلسلة التعليمات التي استُدعي معها.

disasm

يعيد سلسلة التعليمات المعطاة على هيئة سلسلة نصية قابلة للقراءة.

disassemble

يُعيد سلسلة نصية (String) تحتوي تعليمات قابلة للقراءة.

each_child

يًكرّر الكتلة المعطاة على جميع سلاسل التعليمات المنحدرة مباشرة من سلسلة التعليمات التي استُدعي معها.

eval

يقيّم سلسلة التعليمات المعطاة ويُعيد النتيجة.

first_lineno

يعيد رقم أول سطر في المصدر حيث تم تحميل سلسلة التعليمات الحالية.

inspect

يحول سلسلة التعليمات التي استُدعي معها إلى سلسلة نصية قابلة للقراءة تتضمن أيضًا الاسم والمسار.

label

يُعيد تسمية (label) لسلسلة التعليمات.

path

يُعيد مسار سلسلة التعليمات.

to_a

يُعيد مصفوفة تتألف من 14 عنصرًا تحوي معلومات حول سلسلة التعليمات التي استدعي معها.

to_binary

يُسلسل (serialize) سلسلة التعليمات.

trace_points

يُعيد نقاط التعقب (trace points) في سلسلة التعليمات.

مصادر