مختصر كتابي: تشغيل الكود (Running your code)
كيف نشغّل الكود الذي كتبناه؟
الكمبيوتر لا يفهم كود بايثون مباشرة، فهو يفهم لغة الآلة (Machine Language) فقط. لذلك نحتاج إلى خطوة إضافية تترجم الكود إلى لغة الآلة حتى يعمل. وهناك ثلاث طرق لهذه الترجمة: التجميع، والتفسير، ومزيج بينهما.
لماذا لا يعمل الملف بالضغط عليه؟
- على الماك: إذا ضغطت ضغطتين (Double Click) على ملف
.pyفسيفتحه في المحرر فقط، دون أن ينفّذ شيئًا. - على الويندوز: الضغط المزدوج لن يعرف ماذا يفعل بالملف أصلًا، وإذا فتحته ببرنامج Notepad فسيظهر لك النص في المحرر فقط.
- السبب: الكود يحتاج أولًا إلى من يترجمه إلى لغة الآلة.
الطريقة الأولى: التجميع (Compile)
تخيّل أنك تريد إرسال رسالة لشخص صيني لا يعرف العربية. تكتب الرسالة بالعربية، ثم تستخدم خدمة ترجمة تحوّلها كلها إلى الصينية. الشخص الصيني لن يرى الرسالة الأصلية أبدًا، بل يرى النسخة المترجمة فقط.
- هذا ما يفعله المُجمِّع (Compiler): يأخذ الكود المكتوب بلغة عالية المستوى (High Level) ويحوّله إلى ملف قابل للتنفيذ بلغة الآلة منخفضة المستوى (Low Level).
- يقرأ الكود كله أولًا، ثم يُنفَّذ كلغة آلة.
- أمثلة على لغات مُجمَّعة: C و C++.
الطريقة الثانية: التفسير (Interpret)
الآن تخيّل أن صديقًا لك يقرأ الرسالة العربية من أولها لآخرها، ويشرح معناها للشخص الصيني بالصينية. في كل مرة يريد فيها الشخص الصيني قراءة الرسالة، سيحتاج إلى هذا المترجم ليفسّرها له من جديد.
- هذا ما يفعله المُفسِّر (Interpreter): يعالج الكود المصدري (Source Code) في كل مرة تشغّله.
- يقرأ الكود سطرًا بعد سطر (أو تعبيرًا بعد تعبير)، وينفّذه.
- أمثلة على لغات مُفسَّرة: PHP و JavaScript.
الطريقة الثالثة: مزيج بين الطريقتين (Combination)
- تجمع بين التجميع والتفسير، ولن نتعمق فيها الآن.
- أمثلة: Java و C# و Python.
- ملاحظة: الطريقتان الأولى والثانية تقومان بعمليات معقدة جدًا تساعد على تحسين حجم وسرعة وأمان الكود المصدري.
الخلاصة
- لكي يعمل الكود على الكمبيوتر نحتاج خطوة إضافية تترجمه إلى لغة الآلة.
- المُجمِّع يقرأ الكود كله ثم يُنفَّذ، مثل ترجمة الرسالة كاملة مرة واحدة.
- المُفسِّر يقرأ الكود سطرًا سطرًا في كل مرة تشغّله، مثل صديق يترجم لك في كل قراءة.
- بايثون من اللغات التي تجمع بين الطريقتين.
مصطلحات الدرس
| المصطلح | بالإنجليزية | المعنى |
|---|---|---|
| التجميع | Compile | تحويل الكود كله إلى ملف قابل للتنفيذ بلغة الآلة |
| التفسير | Interpret | قراءة الكود وتنفيذه سطرًا بعد سطر |
| الكود المصدري | Source Code | الكود الأصلي الذي كتبه المبرمج |
| عالي المستوى | High Level | لغة قريبة من لغة البشر مثل بايثون |
| منخفض المستوى | Low Level | لغة الآلة التي يفهمها الكمبيوتر |
