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

مصادر