Mojo Academy · درس

لماذا تسرّع fn والأنواع التنفيذ

اربط الصرامة بالأداء

الدرس 2 من 413 خطوة

لماذا تسرّع fn والأنواع التنفيذ درس مجاني في Mojo Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Mojo Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Mojo Academy 4 دروس في المجموع.

تأتي السرعة من المعرفة

تتميز Mojo بالسرعة لأنها تعرف أنواعك مسبقًا. وباستخدام fn والتعليقات التوضيحية، يستطيع المترجم إنشاء تعليمات برمجية ضيقة للمashine. ⚡

تقرر Python وقت التشغيل

تتحقق Python العادية من نوع الكائن في كل مرة تنفذ فيها عملية. ويُعد عمل التوزيع المستمر هذا سببًا رئيسيًا لشعور Python بالبطء أحيانًا.

تتجاوز الأنواع الثابتة عمليات التحقق

عندما يُثبَّت النوع وقت الترجمة، تتخلص Mojo من عمليات التحقق من النوع وقت التشغيل. وتصبح العملية تعليمة مباشرة وسريعة.

fn add(a: Int, b: Int) -> Int:
    return a + b

يتطلب fn أنواعًا

يفرض fn عليك التصريح بالأنواع، مما يمنح المترجم كل ما يحتاج إليه للتحسين. وهذا المتطلب هو مصدر سرعته.

fn scale(x: Float64) -> Float64:
    return x * 2.0

لا حاجة إلى تغليف الأرقام

تضع Python كل رقم داخل كائن في الـ heap. أما Int المكتوب نوعه في Mojo فيُخزَّن مباشرةً كبايتات خام، من دون غلاف يحتاج إلى فكّه.

var count: Int = 42

القيم تلائم السجلات

بما أن الرقم المحدد النوع ليس سوى بايتات، تستطيع وحدة المعالجة المركزية إبقاءه في سجل سريع بدلًا من تتبّع المؤشرات في الذاكرة.

إمكانية التضمين داخل الدالة

تسمح معرفة الأنواع الدقيقة للمصرّف بإجراء inline للدوال الصغيرة، ما يلغي تكلفة استدعائها داخل الحلقات الساخنة التي تعمل ملايين المرات.

تخصيص الحلقات

تُصرَّف الحلقة محددة النوع إلى تسلسل ثابت من تعليمات وحدة المعالجة المركزية. بل يستطيع المصرّف فكّها أو جعلها متجهية لزيادة معدل المعالجة.

fn total(n: Int) -> Int:
    var s = 0
    for i in range(n):
        s += i
    return s

اكتشاف الأخطاء مبكرًا

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

تبقى def مرنة

يمكن لـ def تجاوز تحديد الأنواع والتصرّف مثل Python، وهذا مفيد لكنه أبطأ. تختارون الصرامة فقط في المواضع التي تهمّ فيها السرعة حقًا.

def greet(name):
    print("Hi", name)

للصرامة ثمن ومقابل

تتخلّون عن قدر قليل من المرونة لتحصلوا على سرعة كبيرة. في المسارات الساخنة تكون المقايضة ممتازة؛ فالجمع بين fn والأنواع هو ما يقرّب Mojo من C.

اختبار سريع

اربطوا بين الصرامة والأداء.

مراجعة

يسمح كود fn محدد النوع لـ Mojo بتجاوز الفحوص الديناميكية وتجنّب التغليف وإصدار كود آلة متخصص. الصرامة في المسارات الساخنة هي سر السرعة. 🎯

البدء مجانًا

تعلم Mojo مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «لماذا تسرّع fn والأنواع التنفيذ» مجاني؟

نعم — نص درس «لماذا تسرّع fn والأنواع التنفيذ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Mojo Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Mojo Academy 4 دروس في المجموع.

ماذا ستتعلم في «لماذا تسرّع fn والأنواع التنفيذ»؟

اربط الصرامة بالأداء تتمرن على Mojo Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Mojo Academy؟

لا تُشترط خبرة سابقة. Mojo Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «لماذا تسرّع fn والأنواع التنفيذ»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Mojo Academy هذا؟

نعم. كل درس في Mojo Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. كتابة اختبار أداء منصف
  2. لماذا تسرّع fn والأنواع التنفيذ
  3. قراءة الأرقام بموضوعية
  4. عادات Mojo الاصطلاحية
← العودة إلى Mojo Academy