محتويات
لغات البرمجة
تُعرّف البرمجة بأنّها عملية استخدام المنطق للقيام بعمليات ووظائف مُحدّدة في أجهزة الكمبيوتر، ويتمّ تنفيذ هذه العمليات المنطقية بلغات برمجية مُعينة،[١] تتمثّل في مجموعة من التعليمات والأوامر المكتوبة بطريقة مُحدّدة لإنشاء برنامج مُعيّن،[٢] وتوجيهه إلى جهاز الكمبيوتر لتنفيذه،[٣] كما تُنظّم لغات البرمجة طريقة تواصل الأجهزة الإلكترونية ببعضها البعض؛ كالروبوتات والأجهزة الطرفية كالطابعات وغيرها من أنواع الأجهزة الذكية الأخرى، كما تسمح للإنسان بالتواصل مع الآلة،[٤] وعلى الرغم من امتلاك العديد من لغات البرمجة للعديد من الخصائص المُتشابهة إلّا أنّ لكلّ لغة تركيبتها الفريدة والمُميزة،[٣] وتضم كلّ لغة مجموعةً مُتميزةً من الكلمات الرئيسية الخاصة بها لبناء برنامج مُعيّن.[٥]
تاريخ لغات البرمجة
يعود تاريخ ظهور لغات البرمجة إلى ما قبل ظهور الكمبيوتر نفسه بما يزيد عن 125 عام؛ حيث ظهرت لغات البرمجة لأول مرّة في بعض الاستخدامات الصناعية؛ فقد اعتُمدت في التحكّم في إنتاج المنسوجات عن طريق تصميم ثقوب بشكل مُعيّن على أنواع مختلفة من البطاقات، بحيث يتم تغيير تلك البطاقات لإنتاج أنواع مختلفة من المنسوجات.[٦]
يُعتبر الظهور الحقيقي لأول لغة برمجة في العام 1956م؛ حيث قام فريق من شركة (IBM) بتطوير لغة برمجة عُرفت باسم (FORTRAN)، ثمّ تلاها في العام 1958م ظهور ثاني أقدم لغة برمجة عُرفت باسم (LISP)، وتوالى ظهور لغات البرمجة المُختلفة عبر القرن العشرين حيث ظهرت بعض لغات البرمجة التي لا تزال تُستخدَم حتى الآن كلغة برمجة (Basic) التي اختُرعت في العام 1964م،[٧]
شهدت فترة السبعينيات ظهور مفهوم جديد للغات البرمجة وهو مفهوم البرمجة الشيئية (Object-oriented programming) حيث كانت تلك اللغات تُصمّم لتوجيهها إلى الأشياء التي يستخدمها الإنسان،[٦] وظهرت خلال تلك الفترة العديد من لغات البرمجة المُختلفة التي لا يزال العديد منها مُستخدماً حتّى الآن كلغة باسكال التي تمّ تطويرها في العام 1971م من قِبل نيكلاوس ويرث، ولغة البرمجة (C) التي ظهرت في العام 1972م، بينما ظهرت لغة برمجة قواعد البيانات (SQL) التي تمّ تطويرها من قِبل إدجار كود في العام 1974م، ولا تزال هذه اللغة إحدى اللغات الرئيسية والمهمّة حتّى الوقت الحالي، كما ظهرت لغة البرمجة (++C) في العام 1979م.[٧]
أدّى انتشار الإنترنت إلى استحداث العديد من لغات البرمجة؛[٦] حيث طوّر تيم بيرنرز لي لغة البرمجة (HTML) في العام 1990م، تلاها في العام التالي ظهور اثنتين من أهم لغات البرمجة في العالم وهي لغة برمجة بايثون (Python) ولغة برمجة فيجوال بيسك (Visual Basic)، وكان العام 1995م سنة ظهور لغة البرمجة جافا (Java) التي تمّ تقديمها من قِبل مُبرمجين في شركة صن ميكروسيستمز (Sun Microsystems)،[٧] وفي الوقت الحالي هناك عشرات الآلاف من لغات البرمجة المُختلفة فضلاً عن التطوير المُستمرّ للغات جديدة يرى المصمّمون أنها ستُساهم في حلّ أيّة مشكلة موجودة في حياة الإنسان.[٦]
عناصر لغات البرمجة
تشتمل لغات البرمجة على عناصر أساسية كالآتي:[٦]
الصياغة
تعرّف الصياغة في لغات البرمجة (بالإنجليزية: Syntax) بأنّها القواعد التي تُحدّد كيفية كتابة المفردات والرموز بشكل صحيح في البرنامج وفقاً للغة البرمجة المُستخدمة، ويكون لكلّ لغة برمجة كلمات ورموز محجوزة يتمّ استخدامها بطريقة مُعينة ككلمة (IF) على سبيل المثال لا الحصر، وتجدر الإشارة إلى أنّ لغات البرمجة تختلف من لغة إلى أخرى تبعاً لتعاملها مع استخدام المُبرمج للأحرف الصغيرة والكبيرة أثناء كتابة البرنامج، فبعض اللغات البرمجية تعتبر استخدام الحرف الكبير يُماثل استخدام الحرف الصغير في حين يتغيّر هذا الأمر في لغات أخرى.[٨]
الدلالات
يُعبّر مصطلح الدلالات (بالإنجليزية: Semantics) عن كيفية استخدام الرموز والمفردات استخداماً صحيحاً لتكوين جملة برمجية صحيحة وفقاً لقواعد الصياغة الخاصة باللغة، وعادةً ما يتمّ تنفيذ تلك الجمل البرمجية بشكل تسلسلي حيث لا يتمّ تنفيذ الجملة التالية في البرنامج إلّا في حال كانت الجملة الحالية التي يتمّ تنفيذها صحيحة.[٨]
الأنواع
تُعرّف الأنواع (بالإنجليزية: Types) بأنّها بيانات يجب أن يتمّ استخدامها بشكل مُعيّن من قِبل المُبرمج، فيكون للأنواع التي يتمّ استخدامها في البرنامج خصائص مُحددة يتمّ فحصها من قِبل ما يُعرف بالمُترجم (بالإنجليزية: Compiler)، حيث يتمّ إظهار خطأ في البرنامج إذا تمّ إسناد شكل من البيانات لنوع (Type) لا يتوافق معه، وتتمّ عملية فحص أنواع البيانات وفقاً لطريقتين الأولى تُعرف بفحص النوع الثابت والأخرى تُعرف بفحص النوع الديناميكي.[٦]
المكتبات
تُعرف المكتبات (بالإنجليزية: Libraries) في لغات البرمج بأنّها بعض الخصائص والأدوات المُساعدة التي تتوافر في لغة برمجة مُعينة بهدف تطوير البرنامج الذي يُكتب باستخدام تلك اللغة، وقديماً لم يكن يُنظر إلى المكتبات على أنها جزء مهم من لغات البرمجة، ولكن في الوقت الحالي ومع التطور التكنولوجي الهائل فإنّ استخدام هذه الأدوات المُساعدة أصبح أمراً حتميّاً لكتابة برامج أكثر فاعلية، ومن الأمثلة على اللغات التي توفّر عدداً كبيراً من المكتبات المُضمنة فيها لغة (++C)، وهو ما جعلها واحدةً من أنجح لغات البرمجة.[٦]
أنواع لغات البرمجة
يُمكن تقسيم لغات البرمجة إلى 3 أنواع ومستويات رئيسية كالآتي:
- لغة الآلة: (بالإنجليزية: Machine language)؛ وهي المستوى الأدنى من لغات البرمجة والذي يُعنى بالتعامل مع الآلة بشكل مُباشر باستخدام نظام البيانات الثنائية (0،1)؛ لذا فإنّه يصعب على البشر فهم هذا النوع من لغات البرمجة والتعامل معه بشكل مُباشر، وتتضمّن أنظمة التشغيل المُختلفة برامح خاصة تُترجم البرامج التي يكتبها الإنسان إلى برامج مكتوبة بلغة الآلة.[٩]
- لغات عالية المستوى (بالإنجليزية: High-level language)؛ وهي تلك اللغات التي يُمكن للبشر التعامل معها لاحتوائها على أوامر مؤلّفة من رموز ونصوص مألوفة للمُستخدِم،[١٠] حيث تكون هذه الرموز والمفردات مكتوبةً بشكل شبيه لكتابة اللغة الإنجليزية، وتتنوّع اللغات عالية المستوى بشكل كبير حيث إنّ كلّ منها مُصمّم لنوع مُعيّن من الاستخدامات.[١١]
- لغة التجميع: (بالإنجليزية: Assembly language)؛ وهي تلك اللغة التي يتمّ من خلالها تحويل اللغات عالية المستوى التي يكتبها المُبرمجون إلى لغات ذات مستوى أدنى تفهمها الآلة، وتكون لغة التجميع قريبةً بشكل كبير من لغة الآلة، وجدير بالذكر أنّ لغات التجميع يُمكن قراءتها من قِبل البشر على الرغم من أنّها تعتمد على الآلة.[١٠]
خصائص لغات البرمجة
يوجد العديد من الخصائص التي يجب أن توفرها لغات البرمجة لمُستخدميها، ومن هذه الخصائص ما يأتي:[١٢]
- البساطة: لا بدّ أن تتمتّع لغات البرمجة ببساطة وسلاسة تُمكّن المُستخدِمين من التعامل معها بطريقة سهلة.
- الكفاءة: يتحتّم أن تمتاز لغات البرمجة بالقدرة على العمل بكفاءة كبيرة على الأجهزة؛ ويكون ذلك عندما تكون لغة البرمجة لا تتطلّب الكثير من الوقت لتشغيلها ولا تحتاج الكثير من المساحة التخزينية على الأجهزة.
- الهيكلة: لا بدّ أن تسمح لغات البرمجة لمُستخدميها كتابة برامجهم وفقاً لمفاهيم البرمجة المُنظّمة والمُتعارف عليها.
- سهولة اكتشاف الأخطاء: لا بدّ أن تحتوي لغات البرمجة على طريقة للتحقُق من الأخطاء التي قد يواجهها المُبرمج عند كتابه لبرنامج مُعيّن بواسطة تلك اللغة.[١٣]
- إمكانية النقل: يتحتمّ أن تكون لغة البرمجة قابلة للحمل؛ بمعنى أنّه يُمكن نقل البرنامج الذي يُكتب بواسطتها من جهاز حاسوب إلى آخر.[١٣]
أمثلة على لغات البرمجة
يوجد العديد من الأمثلة على أنواع مُختلفة من لغات البرمجة الشائعة والمُنتشرة بين المُستخدِمين، ومن هذه الأمثلة ما يأتي:[١٤]
- ++C: تُعدّ هذه اللغة تطويراً للغة (C)، وقد أُضيفت إليها خصائص جعلت منها لغة كائنيّة التوجُّه (بالإنجليزيّة: Object oriented)، وتُستخدَم هذه اللغة في تطوير البرمجيّات المختلفة والألعاب.
- Java: هي لغة كائنيّة التوجُّه تعتمد على القوالب (بالإنجليزيّة: Classes)، وقد ظهرت لغة الجافا في تسعينات القرن الماضي، وتُعدّ من أكثر اللغات طلباً؛ إذ يُمكن استخدامها في تطوير البرمجيّات، ومحتوى الويب، والألعاب، بالإضافة إلى تطبيقات الهواتف المحمولة.
- #C: هي لغة متعدّدة الاستخدامات من تطوير شركة مايكروسوفت، تدمج ما بين خصائص لغتّي (C) و(++C)، ويُمكن استخدامها في تطوير برمجيّات نظام تشغيل ويندوز.
- JavaScript: هي لغة مدعومة من العديد من متصفّحات الويب تمكِّن المبرمج من إضافة الرسوم المتحرّكة والوسائط التفاعليّة إلى محتوى الويب.
- Python: هي لغة عالية المستوى تُستخدَم في تطوير النصوص التي يتمّ تنفيذها من جهة الخادم (بالإنجليزيّة: Server-side scripting) عن طريق المواقع الإلكترونيّة أو تطبيقات الهواتف المحمولة، وتتميَّز بالبساطة وسهولة القراءة.
فيديو روبوت الموت
يُمكن مشاهدة الفيدو الآتي لمعرفة أين وصل العلم في تقنيات الروبوتات:
المراجع
- ↑ “Programming”, www.techopedia.com,13-5-2020، Retrieved 24-11-2020. Edited.
- ↑ “Programming Language”, techterms.com,23-9-2011، Retrieved 24-11-2020. Edited.
- ^ أ ب Computer Hope (9-6-2020), “Programming language”، www.computerhope.com, Retrieved 24-11-2020. Edited.
- ↑ “Programming language”, www.cs.mcgill.ca, Retrieved 24-11-2020. Edited.
- ↑ Vangie Beal, “programming language”، www.webopedia.com, Retrieved 24-11-2020. Edited.
- ^ أ ب ت ث ج ح خ “Programming Languages”, www.csun.edu, Retrieved 24-11-2020. Edited.
- ^ أ ب ت Computer Hope (24-5-2020), “Computer programming history”، www.computerhope.com, Retrieved 24-11-2020. Edited.
- ^ أ ب M. Ben-Ari (2006), Understanding Programming Languages, Page 18-21. Edited.
- ↑ “Computer Concepts – Programming Languages”, www.tutorialspoint.com, Retrieved 24-11-2020. Edited.
- ^ أ ب “Computer Programming – Basics”, www.tutorialspoint.com, Retrieved 24-11-2020. Edited.
- ↑ Lonny Meinecke, “What is Programming Language?”، study.com, Retrieved 24-11-2020. Edited.
- ↑ “PROGRAMMING LANGUAGES: TYPES AND FEATURES”, www.chakray.com, Retrieved 24-11-2020. Edited.
- ^ أ ب “Characteristic of A Good Programming Language”, www.tutorialsspace.com, Retrieved 24-11-2020. Edited.
- ↑ Rebecca Hiscott (21-1-2014), “10 Programming Languages You Should Learn Right Now”، www.mashable.com, Retrieved 13-3-2018. Edited.