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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>InstructionSequence</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby InstructionSequence...'
 
لا ملخص تعديل
سطر 2: سطر 2:
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: 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) لروبي.  
 
يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها.  
 
هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات مصرف روبي Ruby iseq compiler.
 
يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة <code>insns.def</code>في توثيق روبي.  
 
من شبه المؤكد أن نتائج سلاسل التعليمات سوف تتغير مع تغير روبي، لذلك قد يكون ناتج الأمثلة في صفحات هذا التوثيق مختلفًا عما لديك.


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

مراجعة 23:57، 1 نوفمبر 2018

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

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

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

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

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

توابع الصنف العامة (Public Class Methods)

التابع compile

يأخذ وسيطًا source ، ويُصرّفه (compiles) إلى كائن من النوع InstructionSequence.

التابع compile_file

يأخذ وسيطًا file ، ثم يقرؤه ويحلله (parses) ويُصرّفه (compiles)، ثم يعيد كائنا من النوع InstructionSequence

التابع compile_option

يعيد قاموسا يحتوي الخيارات الافتراضية المستخدمة من المصرّف.

التابع compile_option=‎

يضبط القيم الافتراضية لتحسين أداء المصرف

التابع disasm

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

التابع disassemble

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

التابع load_from_binary

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

التابع load_from_binary_extra_data

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

التابع new

يأخذ وسيطًا source ويُصرّفه إلى كائن من النوع InstructionSequence.

التابع of

يُعيد التابع of سلسلة التعليمات التي تحتوي كائن proc أو method المعطى.

توابع النسخ العامة (Public Instance Methods)

التابع absolute_path

يُعيد المسار المطلق

التابع base_label

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

التابع disasm

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

التابع disassemble

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

التابع each_child

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

التابع eval

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

التابع first_lineno

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

التابع inspect

يعيد تمثيلًا نصيا قابلًا للقراءة سلسلة التعليمات

التابع label

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

التابع path

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

التابع to_a

يُعيد مصفوفة(Array) تتألف من 14 عنصرًا يمثلون سلسلة التعليمات.

التابع to_binary

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

التابع trace_points

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