أنواع لغات البرمجة
لغة البرمجة
البرمجة (بالإنجليزيّة: Programming) هي العمليّة التي يقوم فيها المُبرمِج بكتابة شيفرة (بالإنجليزيّة: Code)، والتي تتمثَّل بمجموعة من الأوامر، والتي بدورها تُنفَّذ على الأجهزة الحاسوبيّة. لغة البرمجة (بالإنجليزيّة: Programming Language) هي عبارة عن لغة خاصّة يتم استخدامها من قِبَل المُبرمجين لكتابة البرمجيّات، أو النصوص (بالإنجليزيّة: Scripts)، أو مجموعة أخرى من الأوامر، ليتم تنفيذها على جهاز الحاسوب.[1][2]
أنواع لغات البرمجة
حسب المستوى
يمكن تقسيم لغات البرمجة إلى نوعين حسب مستواها من حيث القُرب إلى لغة الآلة (بالإنجليزيّة: Machine language)، وهي اللغة التي يفهمها جهاز الحاسوب بشكل مباشر، وتتمثَّل بالأرقام. النوع الأوّل من لغات البرمجة حسب هذا التصنيف هي لغات البرمجة منخفضة المستوى (بالإنجليزيّة: Low-level languages)، وهي لغات البرمجة الأقرب للغة الآلة، بحيث تُعد لغة الآلة هي الأقل مستوى، ويأتي في مستوى أقل من بعدها لغة التجميع (بالإنجليزيّة: Assembly language)، إذ إنَّ هذه اللغات تتميَّز بكونها تتضمَّن فقط الأوامر التي يفهمها جهاز الحاسوب، وبالتالي هي الأكثر بُعداً عن اللغة التي يفهمها الإنسان، ولكن في نفس الوقت تتيح للمُبرمج التحكُّم الكامل في برنامجه.[3]
النوع الآخر من لغات البرمجة حسب المستوى هي لغات البرمجة عالية المستوى (بالإنجليزيّة: High-level languages)، وهي الأبعد عن لغة الآلة، والأقرب لفهم الإنسان، ولكنّها أيضاً لا تتيح نفس مقدار التحكُّم الذي تتيحه اللغات منخفضة المستوى للمبرمج، وذلك من حيث طريقة تنظيم الحاسوب للذاكرة والبيانات. من الميّزات المهمّة في لغات البرمجة عالية المستوى هي تمكين المبرمج من استخدام المتغيِّرات (بالإنجليزيّة: Variables)، والكائنات (بالإنجليزيّة: Objects)، بالإضافة إلى الروتينات (بالإنجليزيّة: Routines)، والتكرار (بالإنجليزيّة: Loops)، فيمكن عن طريق اللغات البرمجيّة عالية المستوى في بعض الأحيان، تنفيذ كمّ كبير من الأوامر بكتابة سطر واحد فقط. ومن الأمثلة على مثل هذا النوع من لغات البرمجة هي لغتي بايثون (بالإنجليزيّة: Python) وروبي (بالإنجليزيّة: Ruby).[3]
حسب طريقة تنفيذها
يمكن تقسيم لغات البرمجة من حيث طريقة تنفيذها في جهاز الحاسوب إلى نوعين، الأوّل منها هي لغات البرمجة المُترجمة أو المُحوَّلة (بالإنجليزيّة: Compiled)، أمّا النوع الآخر، فهي لغات البرمجة المُفسّرة (بالإنجليزيّة: Interpreted). لغات البرمجة المُترجمة يتم فيها استخدام برنامج المُترجِم (بالإنجليزيّة: Compiler) ليتم تحويلها إلى لغة آلة مُخصّصة لنظام التشغيل الذي تمّت عمليّة الترجمة عليه، ويكون على هيئة برنامج يمكن تنفيذه من خلال استدعاء اسمه، فلو تمَّت العمليّة في نظام تشغيل لينكس (بالإنجليزيّة: Linux) على سبيل المثال، فلن يتمكَّن المستخدم من تنفيذ ذات البرنامج على نظام تشغيل ويندوز (بالإنجليزيّة: Windows)، كما أنّه في عمليّة التحويل، يتم فحص البرنامج والكشف عن وجود أيّة أخطاء برمجيّة -وليس المنطقيّة- فيه. من الأمثلة على هذا النوع من لغات البرمجة هي لغة السي (بالإنجليزيّة: C).[4]
في اللغات البرمجيّة المُفسَّرة، يتم استخدام برنامج المُفسِّر (بالإنجليزيّة: Interpreter) لتنفيذ البرنامج بشكل مباشر دون الحاجة لترجمته، إذ يتم تنفيذ النصوص (أو ما يُسمّى بالسكريبت) بواسطة البرنامج المُفسِّر ذاته، لذا يجب تثبيت البرنامج المُفسِّر على أي جهاز يُراد تشغيل البرنامج المكتوب عليه، ممّا يجعل هذا النوع من البرامج قابلاً للتنفيذ على أي نظام تشغيل ما دام البرنامج المُفسِّر مُثبّتاً عليه. من ميّزات لغات البرمجة المُفسَّرة قدرة المبرمج على تعديل البرنامج بشكل مباشر دون الحاجة لإعادة ترجمته (كما في اللغات البرمجيّة المُترجَمة)، ولكن عمليّة الترجمة الفوريّة التي يقوم بها المُفسِّر باستمرار أثناء تشغيل البرنامج ستجعل من عمليّة التنفيذ بطيئة مقارنةً مع البرامج المُحوّلة. من الأمثلة على هذا النوع من لغات البرمجة هي لغة بايثون.[4]
حسب الاستخدام
يمكن تصنيف لغات البرمجة إلى عدّة أنواع حسب الغرض من استخدامها، حيث توجد لغات برمجة مُخصّصة لتطوير وإنشاء المواقع الإلكترونيّة، ومن الأمثلة عليها لغة جافاسكريبت (بالإنجليزيّة: Javascript)، ولغة بي إتش بي (بالإنجليزيّة: PHP)، ولغة بايثون، كما توجد لغات أخرى يمكن استخدامها في تطوير تطبيقات الهواتف المحمولة كتلك التي تعمل بأنظمة تشغيل الآندرويد (بالإنجليزيّة: Android) والآي أو إس (بالإنجليزيّة: iOS)، ومن الأمثلة على هذه اللغات لغة جافا (بالإنجليزيّة: Java)، ولغة سويفت (بالإنجليزيّة: Swift).[5]
من لغات البرمجة أيضاً ما يُستخدَم في تطوير برمجيّات الحاسوب المكتبي، ومن لغات البرمجة المستخدمة في ذلك، لغة جافا ولغة سي شارب (بالإنجليزيّة: #C)، كما توجد لغات برمجيّة يمكن استخدامها لبرمجة وتطوير ألعاب الفيديو، ويمكن أيضاً استخدام اللغتين السابق ذكرهما أيضاً في ذلك، بالإضافة إلى لغات أخرى كلغة هاكسية (بالإنجليزيّة: Haxe) وغيرها. توجد لغات برمجة أيضاً يُمكن تخصيصها لنوع معيَّن من المهام، فلغة آر (بالإنجليزيّة: R) على سبيل المثال هي لغة مُتخصّصة في التعامل مع البيانات، كالتنقيب عنها، وإجراء الحسابات عليها، بالإضافة إلى تحليلها، كما يمكن استخدام لغة بايثون لنفس الغرض.[5]
أمثلة على لغات برمجة
يوجد من لغات برمجة ما لا يمكن عدّه أو حصره، ولكلّ من هذه اللغات ميّزاتها واستخداماتها، ومن بعض لغات البرمجة الشائعة ما يأتي:
- لغة سي (بالإنجليزيّة: C): هي لغة برمجة عالية المستوى ذات استخدام عامّ، تمَّ إنشاؤها في السبعينات من القرن الماضي في مختبرات بيل (بالإنجليزيّة: Bell Labs) على يد دينيس ريتشي (بالإنجليزيّة: Dennis Richie)، وهي تُعد لغة مثاليّة لكتابة البرامج الثابتة (بالإنجليزيّة: Firmware) والمتنقّلة (بالإنجليزيّة: Portable).[6]
- لغة بايثون (بالإنجليزيّة: Python): هي لغة برمجة مُفسَّرة كائنيّة التوجُّه (بالإنجليزيّة: Object-oriented)، تتميَّز بسهولة تعلُّمها وقلّة تعقيدها، بالإضافة لإمكانيّة تشغيل برامجها على عدّة نُظُم تشغيل.[7]
- لغة الجافا (بالإنجليزيّة: Java): هي لغة برمجة عالية المستوى ذات استخدام عامّ، بالإضافة إلى كونها كائنيّة التوجُّه، تمَّ إنشاؤها من قِبَل شركة صَن مايكروسيستمز (بالإنجليزيّة: Sun Microsystems) في عام 1991م، وحاليّاً تخضع لشركة أوراكل (بالإنجليزيّة: Oracle)، بعد أن قامت الأخيرة بشراء شركة صَن في عام 2009م. بحسب إحصائيّة من شركة أوراكل، فإنَّه في الوقت الحالي، يوجد أكثر من 9 ملايين مبرمج يستخدم لغة جافا.[8]
- لغة السي بلس بلس (بالإنجليزيّة: ++C): هي لغة برمجة عالية المستوى ذات استخدام عامّ، تتميَّز بكونها شبيهة إلى حدّ كبير بلغة سي، إلّا أنّها أيضاً تدعم البرمجة كائنيّة التوجُّه، والتي يمكن للمبرمج الاستفادة منها أو البرمجة بلغة سي الاعتياديّة دون الحاجة للتقيُّد بالبرمجة كائنيّة التوجُّه.[9]
المراجع
- ↑ "Programming", www.computerhope.com, Retrieved 20-12-2017. Edited.
- ↑ "Programming Language", www.computerhope.com, Retrieved 20-12-2017. Edited.
- ^ أ ب Dann Albright (9-11-2017), "High-Level vs. Low-Level Programming Languages: Which Should You Learn? "، www.makeuseof.com, Retrieved 20-12-2017. Edited.
- ^ أ ب Juergen Haas (22-7-2017), "What Is The Different Between A Compiled And Interpreted Languages? "، www.lifewire.com, Retrieved 20-12-2017. Edited.
- ^ أ ب Joel Lee (6-11-2017), "Looking for the Best Programming Languages? Start Here! "، www.makeuseof.com, Retrieved 20-12-2017. Edited.
- ↑ "C Programming Language", www.techopedia.com, Retrieved 20-12-2017. Edited.
- ↑ Margaret Rouse, "Python "، www.techtarget.com, Retrieved 20-12-2017. Edited.
- ↑ Vangie Beal, "Java"، www.webopedia.com, Retrieved 20-12-2017. Edited.
- ↑ "C++ Programming Language", www.techopedia.com, Retrieved 20-12-2017. Edited.