الصنف InstructionSequence
في روبي
يمثل الصنف 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) في سلسلة التعليمات.