ما هو الكود المصدري؟
الكود المصدري (source code) هو نص البرنامج المقروء للبشر، يكتبه المبرمج بلغة مثل Python أو Java أو C ويحفظه في ملفات نصية عادية، ثم يحوّله مترجم أو مفسر إلى تعليمات يستطيع الحاسوب تنفيذها.
آخر تحديث 24 سبتمبر 2026
افتح أي ملف ينتهي بـ .py أو .c أو .java في محرر نصوص عادي وستكون تقرأ كودًا مصدريًا. إنه من نوع الملفات نفسه الذي تكتب فيه قائمة مشتريات: حروف وأرقام ومسافات وأسطر جديدة. وما يجعله برنامجًا هو أن النص يتبع قواعد لغة برمجة، فتستطيع أداة ما أن تحوّله إلى تعليمات للمعالج.
كيف يبدو الكود المصدري
هذا برنامج Python كامل. كل سطر فيه كود مصدري، بما في ذلك التعليق الذي يتجاهله الحاسوب ويقرؤه المبرمج التالي.
Total: 12
والبرنامج نفسه بلغة C هو كود مصدري أيضًا، لكن بلغة مختلفة وقواعد مختلفة:
#include <stdio.h>
int main(void) {
int price = 4;
printf("Total: %d\n", price * 3);
return 0;
}
التطبيق الحقيقي يتكوّن من آلاف الملفات المشابهة. نواة Linux فيها أكثر من 30 مليون سطر من الكود المصدري، وتطبيق ويب صغير قد يضم بسهولة بضع مئات من الملفات. ولكل ملف امتداد يخبر الأدوات باللغة المكتوب بها:
| الامتداد | اللغة |
|---|---|
.py | Python |
.c, .h | C |
.cpp, .hpp | C++ |
.java | Java |
.js | JavaScript |
.go | Go |
.rs | Rust |
الكود المصدري نص عادي
لا يحتوي الكود المصدري على خطوط أو ألوان أو تنسيق مخفي. الألوان التي تراها في المحرر يضيفها المحرر لتسهيل القراءة، ولا تُحفظ في الملف. لهذا تكتب الكود في محرر أكواد مثل VS Code وليس في Microsoft Word أبدًا: معالج النصوص يحفظ بيانات التنسيق وعلامات الاقتباس "الذكية"، والنتيجة ملف لا تستطيع اللغة قراءته، وغالبًا ما يُرفض مع خطأ في الصياغة.
ولأنه مجرد نص، يستطيع برنامج أن يحتفظ بالكود المصدري لبرنامج آخر داخل سلسلة نصية ثم يشغّله:
<class 'str'>
3 lines of text
Total: 12
حتى السطر الأخير، source مجرد سلسلة نصية عادية. ثم تسلّمها exec إلى Python، فيقرأ النص وينفّذه. هذه هي حياة الكود المصدري كلها في صورة مصغّرة: نص أولًا، ثم تعليمات.
كيف يصبح الكود المصدري برنامجًا يعمل
المعالج في حاسوبك لا يستطيع قراءة Python أو C. إنه ينفّذ لغة الآلة فقط، وهي تعليمات ثنائية خاصة بنوع واحد من المعالجات (x86-64 في معظم الحواسيب المحمولة والخوادم، وARM في الهواتف وأجهزة Mac بمعالجات Apple Silicon). لا بد إذن من ترجمة. وهناك طريقتان رئيسيتان:
- المترجم يترجم البرنامج كله مسبقًا. الأمر
gcc hello.c -o helloيقرأ كود C المصدري ويكتب ملفًا جديدًا اسمهhelloمليئًا بلغة الآلة. يمكنك حذفhello.cبعد ذلك ويظلhelloيعمل. - المفسر يشغّل الكود المصدري مباشرة. الأمر
python3 hello.pyيشغّل مفسر Python، فيقرأhello.pyوينفّذ تعليماته. لا يُنتَج ملف برنامج منفصل، لذا يجب أن يكون الكود المصدري موجودًا في كل مرة.
كثير من اللغات تجمع بين الطريقتين. كود Java المصدري يترجمه javac إلى بايت كود (ملفات .class)، ثم تشغّل آلة Java الافتراضية (JVM) هذا البايت كود. المقارنة الكاملة موجودة في صفحة المترجم مقابل المفسر.
الكود المصدري والكود الكائني ولغة الآلة
هذه المصطلحات الثلاثة تصف البرنامج نفسه في مراحل مختلفة:
| المصطلح | من يقرؤه | مثال |
|---|---|---|
| الكود المصدري | البشر والمترجمات | total = price * 3 في app.py |
| الكود الكائني (object code) | الرابط (linker) | hello.o، الناتج عن gcc -c hello.c |
| لغة الآلة (ملف تنفيذي) | المعالج | hello على Linux أو macOS، وhello.exe على Windows |
إذا فتحت ملفًا تنفيذيًا مترجَمًا في محرر نصوص فسترى رموزًا غير مقروءة، لأنه ملف ثنائي وليس نصًا. على جهاز Mac، أول أربعة بايتات من برنامج hello السابق هي cf fa ed fe بالنظام الست عشري، وهي علامة الملف التنفيذي من نوع Mach-O. ويمكنك فحص قيم خام كهذه باستخدام محوّل أنظمة الأعداد.
المصدر المفتوح والمصدر المغلق
مسألة من يحق له قراءة الكود المصدري قانونية بقدر ما هي تقنية. البرامج مفتوحة المصدر تنشر كودها المصدري بترخيص يسمح لأي شخص بقراءته وتعديله ومشاركته، ومنها Python وLinux وFirefox. أما البرامج مغلقة المصدر (الاحتكارية) فتُوزَّع كبرنامج مترجَم فقط، ومنها Microsoft Windows وAdobe Photoshop، وكودها المصدري سر تجاري.
والكود المصدري محمي بحقوق النشر مثل الكتاب. عثورك على كود في الإنترنت لا يعني أنه يحق لك إعادة استخدامه: راجع ملف الترخيص، وغالبًا ما يكون اسمه LICENSE، قبل أن تنسخ أي شيء إلى مشروعك.
مفاهيم خاطئة شائعة
- "عرض مصدر الصفحة يُظهر الكود المصدري للموقع." إنه يُظهر HTML وCSS وJavaScript التي استلمها متصفحك. أما الجانب الخادمي من الموقع (المكتوب بلغة Python أو Java أو PHP أو غيرها) فلا يغادر الخادم أبدًا، لذا لا يمكنك رؤيته.
- "أداة فك الترجمة تعيد لك الكود المصدري الأصلي." أداة فك الترجمة (decompiler) تعيد بناء كود مقروء من برنامج مترجَم، لكن التعليقات تضيع والأسماء غالبًا ما تُفقد، فالنتيجة تخمين للمصدر وليست الملف الذي كتبه المؤلفون.
- "الكود والكود المصدري يعنيان الشيء نفسه." الكود المصدري هو النسخة التي يكتبها البشر. أما "الكود" فأوسع، ويشمل أيضًا لغة الآلة والبايت كود والكود المولَّد.
- "يجب أن يكون الكود المصدري بالإنجليزية." الكلمات المفتاحية مثل
ifوprintكلمات إنجليزية، لكن أسماء المتغيرات والتعليقات والسلاسل النصية يمكن أن تكون بأي لغة. ملفات Python 3 المصدرية بترميز UTF-8 افتراضيًا، لذا فإنprix = 4و# 合計を計算するكلاهما صحيح.
إلى أين بعد ذلك
يُفحص الكود المصدري قبل تشغيله، وأول ما يصادفه معظم المبتدئين هو الخطأ في الصياغة. ولترى الفرق بين طريقتي تشغيل الكود المصدري، اقرأ ما هو المترجم ثم المترجم مقابل المفسر. ويمكنك كتابة كودك المصدري وتشغيله في المتصفح عبر Python Playground، أو البدء في دورة Python.
الأسئلة الشائعة
ما هو مثال على الكود المصدري؟
app.py، أو ملف C مثل main.c، أو كود JavaScript في صفحة ويب. حتى سطر واحد مثل print("Hello") محفوظ في ملف .py يُعد كودًا مصدريًا. وبرامج مثل Firefox أو Linux مبنية من ملايين الأسطر منه.ما الفرق بين الكود والكود المصدري؟
كيف أحصل على الكود المصدري لبرنامج ما؟
هل يُعد HTML كودًا مصدريًا؟
.html التي يكتبها المطور هي المصدر الذي تُبنى منه صفحة الويب، والمتصفحات تسمّي عرضها "عرض مصدر الصفحة" (View Page Source). وينطبق الأمر نفسه على ملفات CSS وملفات JavaScript التي تحمّلها الصفحة.