القائمة الرئيسية

الصفحات

ما هي لغة البرمجة؟


ما هي لغة البرمجة؟

حسناً، إذا طرح عليك أحدهم هذا السؤال ، هل تسطيع الإجابة عليه؟
بعد قرائتك هذه التدوينة سيكون بإمكانك الإجابة على مثل هذا السؤال. تابع معي.


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


بدون الأكواد البرمجية ، لن تتمكن من تحريك الماوس على شاشتك، لن تكون قادرًا على البحث باستخدام جوجل، لن تكون قادرًا على لعب ببجي على هاتفك، بل ولن تكون قادراً على قراءة هذا المنشور أصلاً!!


لا يمكننا أن نقول للحاسوب الخاص بنا ما يجب القيام به. فالحواسيب لا تفهم اللغة العربية أو الإنجليزية أو أي لغة بشرية أخرى. إذن ما هي اللغة التي تتحدث بها أجهزة الكمبيوتر؟

    


اللغة التي يفهمها الحاسوب

حسناً، تتحدث الحواسيب بلغة الصفر والواحد (0,1) وتسمى بالإنجليزية Binary. تتحدث جميع الأجهزة الإلكترونية بلغة الصفر (ايقاف) والواحد (تشغيل). لكن كتابة الآحاد والأصفار سيكون بمثابة هراء بالنسبة لنا فالأمر ليس سهلاً على الإطلاق ولكن بداية لغات البرمجة كانت بهذا الشكل حيث كانت لغة Short Code لغة الكمبيوتر الأولى للأجهزة الإلكترونية وتطلبت من المبرمج تغيير عباراته إلى 0 و 1 يدويًا ، ولكنه من الصعب علينا التواصل بهذه الطريقة ، أليس كذلك؟

وهذه صورة لأحد أجهزة الحاسوب التي كان يتم برمجتها من خلال كتابة الأكواد البرمجية ب 0 ,1

لذا فقد طور المهندسون لغات برمجة بين لغة الإنسان ولغة الآلة التي هي أصفار و آحاد. ولكن لغات البرمجة ليست كلها في نفس المستوى. فهناك لغات أقرب إلى لغة الآلة مثلا Assembly ، ولغات أخرى أقرب إلى اللغة الإنجليزية أو لغة الإنسان مثل Python. حسناً إلى هنا كل شيء يبدو جيداً ولكن ما الذي نفتقده هنا؟


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


حسنًا ، لدينا لغات البرمجة هذه التي نكتبها عادةً في ملف مثل Python و JavaScript وربما حتى Java ، ومن ثم نحتاج بطريقة ما إلى إلى ترجمة هذه الملفات إلى آحاد وأصفار حتى تتمكن أجهزتنا من فهمها. حسنًا ، نحن بحاجة إلى مترجم ، أليس كذلك؟ سنأخذ الكود الخاص بنا الذي كتبناه في الملف الذي نسميه -Source code- كود المصدر مكتوبًا باحدى لغات برمجة ، ونعطي ذلك لمترجم يمكنه فهم تلك اللغة ولكنه أيضًا يفهم لغة الحاسوب(machine language). وهذا المترجم سيترجم لنا هذه الملفات. إذن من هو هذا المترجم الرائع؟ ، حسناً إنه ليس إنساناً بالتأكيد ، أليس كذلك؟ بالتأكيد لن نعطي الكود الخاص بنا إلى شخص ما ليقوم بترجمته!

الفرق بين interpreter و Compiler 

حسناً هذا المترجم هو برنامج آخر كتبه مبرمج. يمكن أن يكون إما Compiler أو interpreter . عادة ما تستخدم بايثون interpreter . وinterpreter ، تمامًا مثل المترجم ، ينتقل سطراً بسطر عبر الأكواد البرمجية الخاصة بنا و يقوم بتنقيذ الكود الخاص بنا على الحاسوب. حسناً ما الفرق بين ال compilers و interpreter . ال compiler يأخذ الكود الخاص بك ويقرؤه بأكمله دفعة واحدة ثم يقوم بترجمته إلى لغة الحاسوب، أما ال interpreter ينتقل سطراً بسطر وينفذ كل سطر على حدى قبل الانتقال للسطر التالي.


حسناً هذه ليست كل الاختلافات بين الاثنين ولكن الاختلافات بينهما معقدة بعض الشيء ولسنا بحاجة لفهمها كلها. ولكن قد نتحدث في هذا الموضوع لاحقاً . لكنني أريدك الآن أن تكون لديك الصورة العامة فقط عندما نكتب كوداً برمجياً ، سواء أكان Python أو JavaScript أو Java أو C أو ++C. ما نفعله هو أننا نكتبه بلغة يمكن للبشر قراءتها ، ونعطيها لأحد هذين الاثنين الCompiler أو ال interpreter، ويقوم هو بتحويلها إلى كود يفهمه الحاسوب.


حسنا مرة أخرى وأخيرة يقوم الinterpreter بترجمة البرنامج سطراً بسطر وتنفيذ السطر قبل الانتقال إلى السطر التالي ، و يقوم ال Compiler بترجمة جميع أسطر البرنامج إلى ملف يسمى عادةً (Binary file) وتنفيذ الملف بأكمله مرة واحدة. في المنشور التالي، سنتحدث عن هذه العملية بمزيد من التفصيل قليلاً ، خاصةً حول كيفية عمل ال interpreter مع باثيون. لكن لماذا بدأت بهذا؟حسناً في الحقيقة هذا موضوع معقد. لا يعرفه معظم المبرمجين ، خاصة إذا كانوا مبتدئين ،أغلبهم يعرفون فقط كتابة الأكواد البرمجية ثم يتم تشغيلها وانتهت القصة وهذا لا يعيبهم حقاً، ولكنه من الجيد أن تعرف هذا الفرق لأنه أساسي حيث أن هذا الفرق يجعل من بعض اللغات البرمجية أسرع من الأخرى في التشغيل وما إلى ذلك.

-أتمنى أن أكون أضفت لك اليوم معلومة جديد! إذا أعجبك هذا المنشور لا تنسى التأييد :)
أراكم لاحقاً في تدوينة جديدة.

محتوى المقالة