الفرق بين المراجعتين لصفحة: «Ruby/InstructionSequence»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>InstructionSequence</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby InstructionSequence...'
 
طلا ملخص تعديل
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>InstructionSequence</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: الصنف <code>InstructionSequence</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Class]]
[[تصنيف: Ruby InstructionSequence]]
[[تصنيف: Ruby InstructionSequence]]
يمثل الصنف <code>InstructionSequence</code> تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي. يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها. هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات امصرف روبيRuby ككك compiler compiler.يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة <code>insns.def</code>in في توثيق روبي.من شبه المؤكد أن نتائج ككك سوف تتغير مع تغير روبي، لذلك قد يكون ناتج الأمثلة في صفحات هذا التوثيق مختلفًا عما لديك.
يمثل الصنف <code>InstructionSequence</code> تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي.  


==توابع الصنف العامة (Public Class Methods)==
يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها.
===[[Ruby/InstructionSequence/compile | التابع compile]]===
 
يأخذ  وسيطًا <code>source</code> ، والذي هو سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي على أكواد برمجية لروبي ويُصرّفها (compiles) إلى كائن من النوع <code>[[Ruby/InstructionSequence|InstructionSequence]]</code>.
هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات المُصرِّف iseq لروبي.
===[[Ruby/InstructionSequence/compile_file | التابع compile_file]]===
 
يأخذ  وسيطًا <code>file</code> ، والذي هو سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي مسار ملف روبي المصدري، ثم يقرأ ويحلل (parses) ويُصرّف (compiles) الملف، ثم يعيد <code>iseq</code>، والذي هو كائن من النوع <code>[[Ruby/InstructionSequence|InstructionSequence]]</code> يضم البيانات الوصفية (metadata ) للمصدر.
يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة <code>insns.def</code>في توثيق روبي.
===[[Ruby/InstructionSequence/compile_option | التابع compile_option]]===
 
يعيد قاموسا يحتوي الخيارات الافتراضية المستخدمة بواسطة المصرفRuby ككك compiler compiler.
من شبه المؤكد أن نتائج سلاسل التعليمات سوف تتغير مع تغير روبي، لذلك قد يكون ناتج الأمثلة في صفحات هذا التوثيق مختلفًا عما لديك.
===[[Ruby/InstructionSequence/compile_option-3D | التابع compile_option=]]===
 
يضبط القيم الافتراضية لتحسين أداء المصرف Ruby ككك compiler.
==توابع الصنف العامة==
===[[Ruby/InstructionSequence/disasm | التابع disasm]]===
===[[Ruby/InstructionSequence/compile |<code>compile</code>]]===
يأخذ الكائن <code>body</code> ، الذي يمكن أن يكون من النوع (<code>[[Ruby/Method|Method]]</code>) أو من النوع <code>[[Ruby/Proc|Proc]]</code> ، ويعيد سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي <code>body</code> على هيئة تعليمات قابلة للقراءة.
يصرِّف السلسلة النصية المُمرَّرة إليه والتي تحتوي على أكواد برمجية لروبي إلى كائن من النوع <code>InstructionSequence</code>.
===[[Ruby/InstructionSequence/disassemble | التابع disassemble]]===
===[[Ruby/InstructionSequence/compile_file |<code>compile_file</code>]]===
يأخذ الوسيط <code>body</code> ، والذي سيكون إما كائنًا من النوع <code>[[Ruby/Method|Method]]</code>، أو من النوع <code>[[Ruby/Proc|Proc]]</code>، ثم يُعيد سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي <code>body</code> على هيئة تعليمات قابلة للقراءة.
يقرأ ملف روبي المصدري ذا المسار المُمرَّر إليه ويحلله (parses) ويُصرّفه (compiles) ثم يعيد <code>iseq</code>، الذي هو الكائن <code>InstructionSequence</code> المصرَّف مع البيانات الوصفية (metadata) للمصدر.
===[[Ruby/InstructionSequence/load_from_binary | التابع load_from_binary]]===
===[[Ruby/InstructionSequence/compile_option |<code>compile_option</code>]]===
يُحمّل كائنًا ككك من النوع InstructionSequence من سسس ثنائية (binary format String) <code>[[Ruby/String|String]]</code> مُنشأ بواسطة <code>[[Ruby/InstructionSequence/to_binary|#to_binary]]</code>.
يعيد كائنًا من النوع <code>[[Ruby/Hash|Hash]]</code> يحوي الخيارات الافتراضية المستخدمة من المصرف iseq لروبي.
===[[Ruby/InstructionSequence/load_from_binary_extra_data | التابع load_from_binary_extra_data]]===
===[[Ruby/InstructionSequence/compile_option-3D |<code>compile_option=‎</code>]]===
يُحمّل البيانات الإضافية المُضمّنة في السلسلة النصية الثنائية المعطاة (binary format String) <code>[[Ruby/String|String]]</code>.
يضبط عند استدعائه بالشكل <code>compile_option = options‎</code> القيم الافتراضية إلى القيم <code>options‎</code> لتحسين أداء المصرف iseq لروبي.
===[[Ruby/InstructionSequence/new | التابع new]]===
===[[Ruby/InstructionSequence/disasm |<code>disasm</code>]]===
يأخذ  وسيطًا <code>source</code> ، وهو سسس (<code>[[Ruby/String|String]]</code>) تحتوي أكواد برمجية بلغة روبي، ويُصرّفها (compiles it) إلى كائن من النوع <code>[[Ruby/InstructionSequence|InstructionSequence]]</code>.
يأخذ كائنًا يمكن أن يكون من النوع <code>[[Ruby/Method|Method]]</code> أو من النوع <code>[[Ruby/Proc|Proc]]</code> ويعيد سلسلة نصية تعليمات قابلة للقراءة لهذا المعامل المعطى.
===[[Ruby/InstructionSequence/of | التابع of]]===
===[[Ruby/InstructionSequence/disassemble |<code>disassemble</code>]]===
يُعيد  ككك التي تحتوي كائن proc أو method المعطى.
يأخذ المعامل <code>body</code>، والذي سيكون إما كائنًا من النوع <code>[[Ruby/Method|Method]]</code>، أو من النوع <code>[[Ruby/Proc|Proc]]</code>، ثم يُعيد سلسلة نصية تحوي هذا المعامل على هيئة تعليمات قابلة للقراءة.
===[[Ruby/InstructionSequence/absolute_path | التابع absolute_path]]===
===[[Ruby/InstructionSequence/load_from_binary |<code>load_from_binary</code>]]===
يُعيد المسار المطلق لككك (ووو).
يُحمّل سلسلة تعليمات من سلسلة نصية ثنائية (binary format String) مُنشأ بواسطة <code>[[Ruby/InstructionSequence/to binary|to_binary]]</code>.
===[[Ruby/InstructionSequence/base_label | التابع base_label]]===
===[[Ruby/InstructionSequence/load_from_binary_extra_data |<code>load_from_binary_extra_data</code>]]===
يُعيد التسمية الأساسية (base label) لككك التي .
يُحمّل البيانات الإضافية المُضمّنة في السلسلة النصية الثنائية (binary format String) المعطاة.
===[[Ruby/InstructionSequence/disasm | التابع disasm]]===
===[[Ruby/InstructionSequence/new |<code>new</code>]]===
يأخذ  الكائن <code>body</code> ، الذي يمكن أن يكون من النوع (<code>[[Ruby/Method|Method]]</code>) أو من النوع <code>[[Ruby/Proc|Proc]]</code> ، ويعيد سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي <code>body</code> على هيئة تعليمات قابلة للقراءة.
يأخذ سلسلة نصية تحوي شيفرات برمجية بلغة روبي، ويُصرّفها (compile) إلى كائن من النوع <code>InstructionSequence</code>.
===[[Ruby/InstructionSequence/disassemble | التابع disassemble]]===
===[[Ruby/InstructionSequence/of |<code>of</code>]]===
يأخذ  الوسيط <code>body</code> ، والذي سيكون إما كائنًا من النوع <code>[[Ruby/Method|Method]]</code>، أو من النوع <code>[[Ruby/Proc|Proc]]</code>، ثم يُعيد سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي <code>body</code> على هيئة تعليمات قابلة للقراءة.
يُعيد سلسلة التعليمات التي تحوي الكائن <code>[[Ruby/Proc|Proc]]</code> أو <code>[[Ruby/Method|Method]]</code> المعطى.
===[[Ruby/InstructionSequence/each_child | التابع each_child]]===
 
يًكرّر (Iterate)  على جميع سلاسل التعليمات (ككك) المنحدرة مباشرة من ككك . ترتيب التكرار يتعلق بطريقة التقديم (implementation) وبالإصدار، لذلك عليك ألا تعوّل على ترتيب معين.
== توابع النسخ العامة ==
===[[Ruby/InstructionSequence/eval | التابع eval]]===
 
يقيّم (Evaluates)  ككك ويُعيد النتيجة.
===[[Ruby/InstructionSequence/absolute_path |<code>absolute_path</code>]]===
===[[Ruby/InstructionSequence/first_lineno | التابع first_lineno]]===
يُعيد المسار المطلق <nowiki/>لسلسلة التعليمات المعطاة، أو يعيد القيمة <code>nil</code> إذا تم تقييم سلسلة التعليمات التي استُدعي معها انطلاقًا من سلسلة نصية.
يعيد رقم أول سطر في المصدر حيث تم تحميل تسلسل التعليمات الحالي.
===[[Ruby/InstructionSequence/base_label |<code>base_label</code>]]===
===[[Ruby/InstructionSequence/inspect | التابع inspect]]===
يُعيد التسمية الأساسية (base label) لسلسلة التعليمات التي استُدعي معها.
يعيد  تمثيلًا نصيا قابلًا للقراءة لتسلسل التعليمات ، بما في ذلك <code>[[Ruby/InstructionSequence/label|label]]</code> و <code>[[Ruby/InstructionSequence/path|path]]</code>.
===[[Ruby/InstructionSequence/disasm |<code>disasm</code>]]===
===[[Ruby/InstructionSequence/label | التابع label]]===
يعيد سلسلة التعليمات المعطاة على هيئة سلسلة نصية قابلة للقراءة.
يُعيد تسمية (label) ككك .
===[[Ruby/InstructionSequence/disassemble |<code>disassemble</code>]]===
===[[Ruby/InstructionSequence/path | التابع path]]===
يُعيد سلسلة نصية (<code>[[Ruby/String|String]]</code>) تحتوي تعليمات قابلة للقراءة.
يُعيد مسار ككك .
===[[Ruby/InstructionSequence/each_child |<code>each_child</code>]]===
===[[Ruby/InstructionSequence/to_a | التابع to_a]]===
يًكرّر الكتلة المعطاة على جميع سلاسل التعليمات المنحدرة مباشرة من سلسلة التعليمات التي استُدعي معها.
يُعيد ممم (<code>[[Ruby/Array|Array]]</code>) تتألف من 14 عنصرًا يمثلون ككك بالبيانات التالية:
===[[Ruby/InstructionSequence/eval |<code>eval</code>]]===
===[[Ruby/InstructionSequence/to_binary | التابع to_binary]]===
يقيّم سلسلة التعليمات المعطاة ويُعيد النتيجة.
يُسلسل (serialize) ككك  تنسيق على هيئة سسس ثنائية <code>[[Ruby/String|String]]</code>. يتم إنشاء ككك مقابلة بواسطة التابع <code>[[Ruby/InstructionSequence/load_from_binary|::load_from_binary]]</code>.
===[[Ruby/InstructionSequence/first_lineno |<code>first_lineno</code>]]===
===[[Ruby/InstructionSequence/trace_points | التابع trace_points]]===
يعيد رقم أول سطر في المصدر حيث تم تحميل <nowiki/>سلسلة التعليمات الحالية.
يُعيد نقاط التعقب (trace points) في ككك. على هيئة ممم من الأزواج [line، event_symbol].
===[[Ruby/InstructionSequence/inspect |<code>inspect</code>]]===
*[http://ruby-doc.org/core-2.5.1/RubyVM/InstructionSequence.html قسم  الصنف InstructionSequence في توثيق روبي الرسمي.]
يحول سلسلة التعليمات التي استُدعي معها إلى سلسلة نصية قابلة للقراءة تتضمن أيضًا الاسم والمسار.
===[[Ruby/InstructionSequence/label |<code>label</code>]]===
يُعيد تسمية (label) لسلسلة التعليمات.
===[[Ruby/InstructionSequence/path |<code>path</code>]]===
يُعيد مسار سلسلة التعليمات.
===[[Ruby/InstructionSequence/to_a |<code>to_a</code>]]===
يُعيد [[Ruby/Array|مصفوفة]] تتألف من 14 عنصرًا تحوي معلومات حول سلسلة التعليمات التي استدعي معها.
===[[Ruby/InstructionSequence/to_binary |<code>to_binary</code>]]===
يُسلسل (serialize) سلسلة التعليمات.
===[[Ruby/InstructionSequence/trace_points |<code>trace_points</code>]]===
يُعيد نقاط التعقب (trace points) في سلسلة التعليمات.
 
== مصادر ==
*[http://ruby-doc.org/core-2.5.1/RubyVM/InstructionSequence.html صفحة الصنف 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) في سلسلة التعليمات.

مصادر