يزخر الإنترنت بمصطلحات قد تكون مربكة لغير المتخصصين في علوم الحاسوب. من هذه المصطلحات: الشفرة المصدرية، والنصوص البرمجية ، والمقتطفات البرمجية، وغيرها. تشير الشفرة المصدرية، في هذا السياق، إلى أي نص أو معلومة مكتوبة بلغة برمجة، وتلتزم بقواعد نحوية محددة، لإنشاء خوارزمية أو دالة تُشكل البرنامج.
لذا، يُعدّ مصطلح "شفرة المصدر" مصطلحًا أعمّ وأشمل، إذ يشمل المصطلحات الأخرى أيضًا، لأنّ "المقتطف" هو جزء من شفرة المصدر، وعادةً ما يكون بسيطًا. على سبيل المثال، عندما نعمل في تصميم المواقع الإلكترونية أو نحتاج إلى إدراج إعلان على موقعنا، فإنّ مزوّدي الإعلانات مثل جوجل أدسنس أو أمازون أفلييتس يزوّدوننا عادةً بمقتطف يحتوي على شفرة HTML لإدراجه على موقعنا. وبالتالي، فهو ليس برنامجًا كاملًا، بل أجزاء صغيرة من الشفرة قابلة لإعادة الاستخدام.
اللغة المفسرة مقابل اللغة المترجمة:

إذا كنت تتساءل عن ماهية السكربت ، فاعلم أنه في البرمجة، يشير هذا المصطلح إلى شفرة المصدر المكتوبة بلغة تفسيرية (في أغلب الأحيان). وما الفرق بينها وبين لغات البرمجة التقليدية المُجمَّعة؟ حسنًا، على عكسها، لا تُجمَّع شفرة المصدر مرة واحدة فقط وتُحوَّل إلى ملف ثنائي. بل تتطلب مُفسِّرًا يعمل كوسيط، وفي كل مرة يُشغَّل فيها البرنامج، يجب على المُفسِّر ترجمة الشفرة لكي يفهمها الجهاز. باختصار، الخطوات هي:
- اكتب الكود المصدري البرنامج باستخدام بعض لغات البرمجة للتجميع مثل C ، BASIC ، C ++ ، Ada ، ALGOL ، D ، COBOL ، GO ، Fortran ، G ، Lisp ، Pascal ، Swift ، Visual Basic ، إلخ. يمكن كتابة الكود في أي محرر نصوص أو باستخدام بيئة تطوير أكثر اكتمالا أو IDE.
- نقوم بتجميع الكود المصدر باستخدام بعض المترجمين ، مثل GNU GCC. باستخدام هذا ، نتمكن من تحويل هذه الأوامر إلى لغة عالية المستوى لا يفهمها سوى المبرمجون والمترجمون إلى آلة أو لغة ثنائية يمكن فهمها أو تنفيذها بواسطة وحدة المعالجة المركزية.
- El يمكن تنفيذ الثنائي عدد المرات الذي نحتاجه دون المرور بالخطوات السابقة مرة أخرى. في الواقع ، يرسل لنا معظم بائعي البرامج البرنامج الثنائي مباشرة لتشغيله على جهاز الكمبيوتر الخاص بنا. سيكون نظام التشغيل هو الذي يدير العمليات اللازمة لذلك ، والمكالمات ، وما إلى ذلك.
من ناحية أخرى، لا تتبع البرامج النصية هذه الخطوات، بل تستخدم لغات مُفسَّرة. توجد العديد من اللغات المُفسَّرة ، مثل تلك المستخدمة في مُفسِّر Bash، وهو الأكثر استخدامًا في أنظمة GNU/Linux وغيرها من أنظمة Unix، بالإضافة إلى لغات معروفة مثل Perl وPython وRuby وJavaScript وغيرها. باستخدام هذه اللغات، يمكنك كتابة الكود الذي يُشكِّل البرنامج النصي، وهو ببساطة ملف أوامر أو ملف دفعي. من البديهي أن يختلف بناء الجملة باختلاف اللغة المستخدمة. في حالة اللغة المُفسَّرة، يتغير الترتيب إلى:
- نكتب البرنامج النصي أو شفرة المصدر باستخدام أي لغة برمجة. يمكننا أيضًا استخدام IDE أو مجرد محرر نصوص.
- في هذه الحالة ، لا يتم تجميعها ، ولكن يمكن تنفيذها مباشرة بمساعدة المترجم. بمعنى ، إذا استخدمنا Bash ، فنحن بحاجة إلى تثبيته على النظام حتى نتمكن من تنفيذ البرنامج النصي الخاص بنا. إذا استخدمنا نصًا برمجيًا بلغة Python ، فسنحتاج إلى تثبيت مترجم Python وما إلى ذلك.
- عندما نقوم بتشغيل البرنامج النصي، سيكون المترجم هو الذي يفسر الكلمات أو اللغة الموجودة فيه (ومن هنا اسمه) ، أي أن هذه التعليمات لا تنتقل مباشرة إلى نظام التشغيل ووحدة المعالجة المركزية ، لأنه لن يتعرف عليها دون مساعدة الوسيط أو المترجم الذي هو المترجم.
مع ذلك، نلاحظ أن لكلتا الحالتين مزايا وعيوب . فالملفات المُجمَّعة لا تتطلب تجميعًا أثناء التشغيل؛ لذا، بمجرد تجميعها للمرة الأولى، يمكننا تشغيل الملف التنفيذي عددًا غير محدود من المرات دون إهدار موارد النظام. أما البرامج النصية، فلا ينطبق عليها هذا الأمر، إذ تحتاج أيضًا إلى تخصيص موارد للمُفسِّر، وبالتالي تعمل بشكل أبطأ عمومًا.
إنشاء أول برنامج نصي لدينا على Linux:

في مثالنا، سنستخدم Bash كلغة برمجة تفسيرية، وبالتالي سيكون المفسر المستخدم هو Bash. بدايةً، يجب أن نعلم أن العديد من ملفات البرامج النصية تحتوي على ترويسة تُعرف باسم shebang، والتي تختلف باختلاف المفسر المستخدم. على سبيل المثال، في Linux، نجد مفسرات مختلفة. في حالة Bash، تكون ترويسة shebang هي #!/bin/bash، أما في أي حالة أخرى، فسيكون الملف التنفيذي هو الذي يشير إلى المفسر، أو الصدفة في هذه الحالة. علاوة على ذلك، في حالة Unix وLinux، عادةً ما يكون لملف البرنامج النصي الامتداد .sh.
في البرنامج النصي، يمكننا استخدام أوامر المفسر، والمعاملات، والثوابت، وما إلى ذلك. على سبيل المثال، يمكننا إنشاء برنامج نصي بسيط لعمل نسخة احتياطية من نظامنا وإنشاء سجل بالتاريخ عن طريق إنشاء ملف باسم backup.sh باستخدام محرر النصوص المفضل لدينا. سيكون محتواه كالتالي:
<div> <pre><span class="com">#<span class="simbol">!</span>/bin/bash </span></pre> <pre>tar cvf /backup/copia<span class="simbol">.</span>tar /home/usuario</pre> <pre>date <span class="simbol">></span> /backup/log_copia</pre> </div>
على سبيل المثال، في المثال السابق، سيتم إنشاء نسخة احتياطية من مجلد /home/user وضغطها في ملف مضغوط باسم copy.tar، ثم كتابة سجل التاريخ . لتشغيله، سنحتاج إلى منحه صلاحيات التنفيذ، على سبيل المثال:
chmod +x backup.sh ./backup.sh
مثال بسيط أعتقد أنه سيوضح للمبتدئين ما هو النص البرمجي. إنه سؤال يتكرر كثيراً في الآونة الأخيرة...