سؤال

نظرًا لأن Ruby تتيح لك النزول إلى لغة C لأي أجزاء يكون فيها الأداء أمرًا بالغ الأهمية ولا يكون Ruby العادي على مستوى المهمة، وبما أن لغة C تتيح لك النزول إلى التجميع لنفس النوع من الظروف، فقد تساءلت دائمًا عما إذا كان الأمر كذلك من الممكن تضمين لغة التجميع داخل كود Ruby الخاص بك عن طريق النزول أولاً إلى C ثم من داخل كود C الذي ينزل إلى التجميع.

لقد كنت أتمنى دائمًا أن يكون ذلك ممكنًا، لكن لم أجد حتى الآن أي شيء يؤكد ذلك أو ينفيه.بسبب البحث عن كيو تي (وبالتالي C++) لمشروع جانبي، صادفت بيانًا حول مقارنة Ruby-lang.com بين Ruby وC & C++ ذلك في روبي

  • لا يمكنك النزول إلى التجميع

هل هذا يعني ببساطة أنه لا يمكنك الذهاب؟ مباشرة للتجميع، أو أنك لا تستطيع أن تفعل ذلك عن طريق C على الإطلاق؟ماذا لو كنت تكتب امتدادًا لـ Ruby في لغة C:هل يمكنني أن أفترض أنه نظرًا لأن هذا مجرد C (غير مضمن في Ruby) فلا يزال بإمكانك استخدام التجميع هناك ولا يزال بإمكان Ruby استخدام ملحق C مع التجميع فيه؟

هل كانت مفيدة؟

المحلول

وبالنظر إلى السياق، يبدو واضحا تماما أنه يعني في روبي, ، لا يمكنك إسقاط شيء مجنون مثل:

def func1(arr)
  arr.map { |v| func2(v) }
end

def func2(val)
  asm do
    mov ax, 1234h
    mov bx, ax
  end
end

لا يمكن لروبي منعك من استخدام شيء كهذا في كائن C مرتبط.

ولكن، بعد أن رأينا ذلك كمثال، ستكون مكتبة رائعة جدًا إذا قام شخص ما بإنشائها.:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top