الفرق بين المراجعتين لصفحة: «Ruby/InstructionSequence»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE: الصنف <code>InstructionSequence</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Class]] | |||
[[تصنيف: Ruby InstructionSequence]] | [[تصنيف: Ruby InstructionSequence]] | ||
يمثل الصنف <code>InstructionSequence</code> تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي. | يمثل الصنف <code>InstructionSequence</code> تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي. | ||
سطر 6: | سطر 7: | ||
يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها. | يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها. | ||
هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات | هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات المُصرِّف iseq لروبي. | ||
يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة <code>insns.def</code>في توثيق روبي. | يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة <code>insns.def</code>في توثيق روبي. | ||
سطر 12: | سطر 13: | ||
من شبه المؤكد أن نتائج سلاسل التعليمات سوف تتغير مع تغير روبي، لذلك قد يكون ناتج الأمثلة في صفحات هذا التوثيق مختلفًا عما لديك. | من شبه المؤكد أن نتائج سلاسل التعليمات سوف تتغير مع تغير روبي، لذلك قد يكون ناتج الأمثلة في صفحات هذا التوثيق مختلفًا عما لديك. | ||
==توابع الصنف العامة | ==توابع الصنف العامة== | ||
===[[Ruby/InstructionSequence/compile | | ===[[Ruby/InstructionSequence/compile |<code>compile</code>]]=== | ||
يصرِّف السلسلة النصية المُمرَّرة إليه والتي تحتوي على أكواد برمجية لروبي إلى كائن من النوع <code>InstructionSequence</code>. | |||
===[[Ruby/InstructionSequence/compile_file | | ===[[Ruby/InstructionSequence/compile_file |<code>compile_file</code>]]=== | ||
يقرأ ملف روبي المصدري ذا المسار المُمرَّر إليه ويحلله (parses) ويُصرّفه (compiles) ثم يعيد <code>iseq</code>، الذي هو الكائن <code>InstructionSequence</code> المصرَّف مع البيانات الوصفية (metadata) للمصدر. | |||
===[[Ruby/InstructionSequence/compile_option | | ===[[Ruby/InstructionSequence/compile_option |<code>compile_option</code>]]=== | ||
يعيد | يعيد كائنًا من النوع <code>[[Ruby/Hash|Hash]]</code> يحوي الخيارات الافتراضية المستخدمة من المصرف iseq لروبي. | ||
===[[Ruby/InstructionSequence/compile_option-3D | | ===[[Ruby/InstructionSequence/compile_option-3D |<code>compile_option=</code>]]=== | ||
يضبط | يضبط عند استدعائه بالشكل <code>compile_option = options</code> القيم الافتراضية إلى القيم <code>options</code> لتحسين أداء المصرف iseq لروبي. | ||
===[[Ruby/InstructionSequence/disasm | | ===[[Ruby/InstructionSequence/disasm |<code>disasm</code>]]=== | ||
يأخذ كائنًا يمكن أن يكون من النوع <code>[[Ruby/Method|Method]]</code> أو من النوع <code>[[Ruby/Proc|Proc]]</code> ويعيد سلسلة نصية تعليمات قابلة للقراءة لهذا المعامل المعطى. | |||
===[[Ruby/InstructionSequence/disassemble | | ===[[Ruby/InstructionSequence/disassemble |<code>disassemble</code>]]=== | ||
يأخذ المعامل <code>body</code>، والذي سيكون إما كائنًا من النوع <code>[[Ruby/Method|Method]]</code>، أو من النوع <code>[[Ruby/Proc|Proc]]</code>، ثم يُعيد سلسلة نصية تحوي هذا المعامل على هيئة تعليمات قابلة للقراءة. | |||
===[[Ruby/InstructionSequence/load_from_binary | | ===[[Ruby/InstructionSequence/load_from_binary |<code>load_from_binary</code>]]=== | ||
يُحمّل سلسلة تعليمات من سلسلة نصية ثنائية (binary format String) مُنشأ بواسطة <code>[[Ruby/InstructionSequence/to binary|to_binary]]</code>. | |||
===[[Ruby/InstructionSequence/load_from_binary_extra_data | | ===[[Ruby/InstructionSequence/load_from_binary_extra_data |<code>load_from_binary_extra_data</code>]]=== | ||
يُحمّل | يُحمّل البيانات الإضافية المُضمّنة في السلسلة النصية الثنائية (binary format String) المعطاة. | ||
===[[Ruby/InstructionSequence/new | | ===[[Ruby/InstructionSequence/new |<code>new</code>]]=== | ||
يأخذ | يأخذ سلسلة نصية تحوي شيفرات برمجية بلغة روبي، ويُصرّفها (compile) إلى كائن من النوع <code>InstructionSequence</code>. | ||
===[[Ruby/InstructionSequence/of | | ===[[Ruby/InstructionSequence/of |<code>of</code>]]=== | ||
يُعيد | يُعيد سلسلة التعليمات التي تحوي الكائن <code>[[Ruby/Proc|Proc]]</code> أو <code>[[Ruby/Method|Method]]</code> المعطى. | ||
== توابع النسخ العامة | == توابع النسخ العامة == | ||
===[[Ruby/InstructionSequence/absolute_path | | ===[[Ruby/InstructionSequence/absolute_path |<code>absolute_path</code>]]=== | ||
يُعيد | يُعيد المسار المطلق <nowiki/>[[Ruby/InstructionSequence|لسلسلة التعليمات]] المعطاة، أو يعيد القيمة <code>nil</code> إذا تم تقييم سلسلة التعليمات التي استُدعي معها انطلاقًا من سلسلة نصية. | ||
===[[Ruby/InstructionSequence/base_label | | ===[[Ruby/InstructionSequence/base_label |<code>base_label</code>]]=== | ||
يُعيد | يُعيد التسمية الأساسية (base label) لسلسلة التعليمات التي استُدعي معها. | ||
===[[Ruby/InstructionSequence/disasm | | ===[[Ruby/InstructionSequence/disasm |<code>disasm</code>]]=== | ||
يعيد سلسلة نصية | يعيد سلسلة التعليمات المعطاة على هيئة سلسلة نصية قابلة للقراءة. | ||
===[[Ruby/InstructionSequence/disassemble | | ===[[Ruby/InstructionSequence/disassemble |<code>disassemble</code>]]=== | ||
يُعيد سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي تعليمات قابلة للقراءة. | يُعيد سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي تعليمات قابلة للقراءة. | ||
===[[Ruby/InstructionSequence/each_child | | ===[[Ruby/InstructionSequence/each_child |<code>each_child</code>]]=== | ||
يًكرّر | يًكرّر الكتلة المعطاة على جميع سلاسل التعليمات المنحدرة مباشرة من سلسلة التعليمات التي استُدعي معها. | ||
===[[Ruby/InstructionSequence/eval | | ===[[Ruby/InstructionSequence/eval |<code>eval</code>]]=== | ||
يقيّم | يقيّم سلسلة التعليمات المعطاة ويُعيد النتيجة. | ||
===[[Ruby/InstructionSequence/first_lineno | | ===[[Ruby/InstructionSequence/first_lineno |<code>first_lineno</code>]]=== | ||
يعيد | يعيد رقم أول سطر في المصدر حيث تم تحميل <nowiki/>[[Ruby/InstructionSequence|سلسلة التعليمات]] الحالية. | ||
===[[Ruby/InstructionSequence/inspect | | ===[[Ruby/InstructionSequence/inspect |<code>inspect</code>]]=== | ||
يحول [[Ruby/InstructionSequence|سلسلة التعليمات]] التي استُدعي معها إلى سلسلة نصية قابلة للقراءة تتضمن أيضًا الاسم والمسار. | |||
===[[Ruby/InstructionSequence/label | | ===[[Ruby/InstructionSequence/label |<code>label</code>]]=== | ||
يُعيد | يُعيد تسمية (label) لسلسلة التعليمات. | ||
===[[Ruby/InstructionSequence/path | | ===[[Ruby/InstructionSequence/path |<code>path</code>]]=== | ||
يُعيد مسار سلسلة التعليمات. | يُعيد مسار سلسلة التعليمات. | ||
===[[Ruby/InstructionSequence/to_a | | ===[[Ruby/InstructionSequence/to_a |<code>to_a</code>]]=== | ||
يُعيد | يُعيد [[Ruby/Array|مصفوفة]] تتألف من 14 عنصرًا تحوي معلومات حول [[Ruby/InstructionSequence|سلسلة التعليمات]] التي استدعي معها. | ||
===[[Ruby/InstructionSequence/to_binary | | ===[[Ruby/InstructionSequence/to_binary |<code>to_binary</code>]]=== | ||
يُسلسل (serialize) | يُسلسل (serialize) سلسلة التعليمات. | ||
===[[Ruby/InstructionSequence/trace_points | | ===[[Ruby/InstructionSequence/trace_points |<code>trace_points</code>]]=== | ||
يُعيد | يُعيد نقاط التعقب (trace points) في سلسلة التعليمات. | ||
*[http://ruby-doc.org/core-2.5.1/RubyVM/InstructionSequence.html | |||
== مصادر == | |||
*[http://ruby-doc.org/core-2.5.1/RubyVM/InstructionSequence.html صفحة الصنف InstructionSequence في توثيق روبي الرسمي.] |
مراجعة 08:21، 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) في سلسلة التعليمات.