لغات البرمجة

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

تقسم لغات البرمجة بناء على قربها من اللغات الإنسانية إلى لغة عالية المستوى (قريبة من اللغة التي يفهمها البشر) مثل سي و جافا، ولغة منخفضة المستوى (كلغة الأسيمبلي Assemblyوهي قريبة من لغة الآلة).

وتقسم لغات البرمجة أحيانا بناء على الأغراض المرغوبة من اللغة المستخدمة. هناك لغات صُممت لكي تعمل على أجهزة معينة، مثل ان تقوم شركة ما بإنتاج جهاز حاسوب أو معالج مركزي (CPU)، وتوفر له دليل استعمال يحتوي على الأوامر التي تنفذ عليه، وهناك لغات أخرى أكثر عمومية تعمل بشكل مستقل عن نوع الآلة، أي انها تعمل ضمن آلة افتراضية  Virtual Machine، مثل لغة الجافا Java.

تعريف البرمجة

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

و تتبع عملية البرمجة قواعد خاصة باللغة التي اختارها المبرمج.

و كل لغة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج والمهمة المطلوبة من هذا البرنامج.

كما أن للغات البرمجة أيضاً خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات صممت للتعامل مع الحاسوب.

وتتطور لغات البرمجة (السوفتوير Software) بتطور الحاسوب (الهاردوير Hardware). فعندما ابتكر الحاسوب الإلكتروني في الأربعينيات والخمسينيات من القرن الماضي (بعد أجهزة الحساب الكهربائية في العشرينات)- وكان الكمبيوتر يعمل بأعداد كبيرة من الصمامات الإلكترونية - كانت لغة البرمجة معقدة هي الأخرى، حتي أنها كانت عبارة عن سلسلة من الأعداد لا يدخلها إلا الصفر 0 والواحد 1، وكان ذلك صعبا على المبرمجين. ولكن بابتكار الترانزيستور صغر حجم الحاسوب كثيرا وزادت إمكانياته، واستطاع المختصون في نفس الوقت أن يبتكروا لغات أسهل للاستخدام، وأصبحت لغات البرمجة مفهومة إلى حد بعيد للمختصين. ولا يزال التطوير والتسهيل دائرا.

 

 

خصائص لغات البرمجة

لغة البرمجة هي بالأساس طريقة تسهل للمبرمج كتابة برنامجه في هيئة تعليمات وأوامر يفهما الحاسوب بغرض تنفيذ العمل المطلوب. ومن المعروف ان الحاسوب يحول اللغة المكتوبة بها البرمجة إلى سلسلة من 0 و 1، ويبدأ على أساسها عمله. ولكتابة الأوامر توفر لغة البرمجة المختارة مجموعة من اللبنات الأساسية للاستناد عليها خلال عملية تكوين البرنامج ومجموعة من القواعد التي تمكن من التعامل مع معلومات وتنظيمها بغرض أداء العمل المطلوب.

تتمثل هذه الأسس والقواعد بصفة عامة في:

  • المعلومات وتخزينها
  • الأوامر وتنظيم سيرها
  • التصميم الخاص

المعلومات وتخزينها

يتم تخزين المعلومات في الأجهزة الرقمية الحالية في هيئة أرقام طبقا لنظام العد الثنائي (أي المعتمد على 0 و 1). و بصفة عامة فان المعالجات الحديثة لا تقوم بالتعامل مع البت الواحد بل مع مجموعات من البتات يمكن أن تضم :

و باستعمال 8 بت مثلا, يمكن تشكيل 256 قيمة مختلفة, ويمكن أن تكون هذه القيمة بين 0 و 255 و تمثل وظيفة لغة البرمجة استغلال وحدة أو مجموعة من الوحدات (رموزا) لتخزين معلومات من الحياة الواقعية مثل الأسماء أو القياسات أو أرقام الحسابات البنكية.

الأوامر وتنظيم سيرها

يقوم المبرمج باجراء عمليات على وحدات المعلومات مثل تخزينها وقراءتها ومقارنتها، كما يمكن إجراء عمليات حسابية عليها أيضا, وتتبع العمليات القواعد المحددة للغة. و للغة البرمجة دور آخر وهو التحكم في تنظيم إجراء العمليات، حيث توجه تنفيذ خطواتها بنفس تتابع كتابتها من طرف المبرمج،

و تمكن اللغة أيضاً من إجراء عملية اختيار وتفرع، وذلك بإدخال شرط منطقي يقوم الحاسوب على أساسه باختيار اتجاه الاستمرار في أداء العمل : فلنفترض أن البرنامج الذي يريد المبرمج صنعه يقوم بقسمة عددين يختارهما المستخدم، وإظهار النتيجة على الشاشة, ومن المعروف أن القسمة على صفر لا تجوز، وبناء علي ذلك فلا بد أن يحدد المبرمج في برنامجه هذا الاختيار : فاذا كان القاسم مخالفا للصفر، فإن البرنامج يسيـّر الحاسوب فيقوم بإجراء العملية ويعطي النتيجة. أما إذا كان القاسم صفراً فان البرنامج لا يقوم باجراء العملية وإنما ينبه إلى أن المستخدم حاول القسمة على صفر. و يمكن تنظيم الأوامر بصفة أخرى، حيث يقع تنفيذ أمر أو مجموعة من الأوامر بصفة متكررة حلقية (Loop)، و يمكن تقسيم الأوامر أيضاً إلى وحدات فرعية تقوم كل وحدة بانجاز عمل محدد, والهدف هو تقسيم العمل إلى أجزاء يسهل العمل عليها كل على حدة في هيئة دورات حلقية (Loops).

تتمتع كل لغة بتصميم خاص من حيث التعامل مع المعطيات، ومن حيث الطرق والتسهيلات التي توفرها اللغة للتعامل مع مشكلة معينة.

يمكن تصنيف لغات البرمجة من حيث طريقة بناء البرامج إلى لغات إجرائية (Basic, Fortran) وهي لغات تسلسلية، أساس بناؤها هو الإجراءات المطلوب تطبيقها على المعطيات والمتحولات. ولغات شيئية (C, Java, Delphi) وهي لاتسلسلية، وتقوم على أساس العناصر والمتحولات المستخدمة ضمن البرنامج المطلوب تحويرها، من خلال تطبيق مجموعة معينة من الإجراءات عليها.

لغة الآلة

لغة الآلة هي اللغة البرمجية الوحيدة التي يفهمها وينفدها الحاسوب مباشرة. وهي من لغات البرمجة المتدنية المستوى حيث (أي يحتوي قاموسها على الكثير من الايعازات (InstructionSet)).

تعتبر أكثرية لغات البرمجة الشائعة مثل C++ وفيجول بيسك ذات مستوى تخصصي عالي ولهذا السبب تستخدم عند كتابة البرامج فتحول هذه الأوامر إلى لغة التجميع الخاصة بالمعالج (Microprocessor) ومن ثم إلى لغة الآلة حتى يتم تنفيدها.

لغة تجميع

في علوم الحاسوب، لغة التجميع هي الصيغة السهلة القراءة للبشر المقابلة للغة الآلة التي تشكل الأوامر التي ينفذها حاسوب بتصميم ما. فلغة الآلة عبارة عن تتابع من البتات (bits) تمثل عملية حاسوبية أو أمر للحاسوب، تصبح أسهل للقراءة عندما تستبدل برموز تعبر عنها.

ولكل معالج لغة تجميع خاصة به كما أن له "لغة آلة Machine Language" خاصة به. وتحتاج لغة التجميع ما يسمى "المجمـِّع" (Assembler) وهو الذي يقوم بتحويل لغة التجميع التي يستطيع البشر قراءتها والتعديل فيها إلى لغة الآلة التي يستطيع المعالج تنفيذها. وتستخدم هذه اللغة الآن من قبل البشر وذلك لبرمجة أجزاء من نظم التشغيل أو للتاكد من سرعة وكفاءة تنفيذ بعض البرامج التي يحتاج فيها الكفاءة كبرامج المحاكاة والألعاب.

و تتكون اسطر برامج التجميع من ثلاثة أجزاء:

  • العلامة (Label) وهو ما يتم به الإشارة لسطر ما في سطور أخرى.
  • الأمر (Instruction) وهو يكون مناظر في الغالب لأمر في المعالج وهو ما سيقوم المعالج بتنفيذه عند الوصول لهذا السطر أثناء تنفيذ البرنامج.
  • المعامل (Operand) وهو المتغير الذي سيتم تطبيق الأمر عليه.

تنقسم الأوامر إلى أربعة حقول :

  • الاسم
  • المعامل
  • العملية
  • التعليق

أمثلة للغات البرمجة

توجد لغات برمجة عديدة إلا أنه يوجد فيها نوع من التخصص حيث يعتمد اختيار اللغة على المهام التي نريد من الحاسب إنجازها حيث أن لكل لغة ما يناسبها وهناك مهام يصعب تنفيذها بلغة معينة ولكنها تكون ميسورة بلغة أخرى ومن اللغات التي ظهرت في فترة الستينات لغة البيسك وهي لغات تدرس للمبتدئين وكلمة بيسك لفظة أوائلية تشكل الحروف الأولى من Biginners All Symbolic Instruction Code

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

 

لغة البرمجة سي C

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

تاريخ تصميمها

تم تصميم السي في مختبرات بيل ما بين 1969 و 1972، وقد تم تسميته بالسي لأن جزأ كبيرا منه قد اقتبس عن لغة البي (B) و عندما تطورت السي إلى درجة أصبحت فيها بالقوة الكافية لتحويل نواة يونكس من الأسمبلي إلى السي.

وفي سنة 1978 قام كرنيغان (Brian Kernighan) ورتشي (Dennis Ritchie) بنشر الكتاب المشهور The C Programming Languageوذلك لتحديد خصائص اللغة, ويعرف هذا الكتاب في الأوساط المختصة ب K&R. إلا أن تقنين اللغة وتبنيها بصفة رسمية من طرف الـ ANSI والـ ISO تم في الثمانينات وكنتيجة لذلك ظهرت الطبعة الثانية للكتاب بعنوان The C Programming Language, Second Edition, أو K&R2وهو المرجع الرئيسي للغة إلى حد الآن ، و بتقنين اللغة تمت إضافة أجزاء وتنقيح أخرى لتفادي السلبيات التي ظهرت في السابق ولتهيئة أداة أفضل وأقوى بالنسبة للمبرمج.

و لولا ظهور لغة السي وتجربتها التي فاقت الثلاثين سنة لما كان ممكنا ظهور اللغات الحديثة والشيئية مثل السي بلس بلس أو على الأقل لما أصبحت كما تعرف عليه اليوم أسس تطويرها كل من شركة مايكروسوفت وشركة اي بي ام معاً ولذالك الاساسيات العامه لأسلوب كتابتها يستخدم للآن وفي العديد من اللغات المتطورة والمنشأة من خلالها حتى اخر لغات السي وهي لغة السي شارب والتي تعتبر احدث التطويرات للغة السي ويوجد اصدارات عديده منها بدأ من سنة 2001 حتي اصدار 2010

سي++

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

تاريخ السي بلس بلس

طوّر بيارن ستروستروب (Bjarne Stroustrup) خلال عمله في مختبرات بيل لغة سي++ في الثمانينات كتحسين للغة سي. تشمل سي++ جميع مزايا السي بالإضافة إلى مزايا البرمجة الكائنية. تسهّل لغة سي++ الأسلوب المُهيكل والمنهجي لعملية تصميم البرامج، وتعتمد على الكائنات كبنية أساسية لتشكيل البرامج.

كما هو الحال مع لغة السي، فإن سي++ لغة متعددة الاستخدامات، إلا أنها مناسبة لبرامج أنظمة التشغيل. وتكتب معظم أجزاء أنظمة التشغيل وبرامج مساعدة أنظمة التشغيل باستخدام سي++ ومنها نظام جنو/لينكس.

و يتجنب الكثير من المبرمجين لغتي سي وسي++ نظراً لشهرتهما كلغات برمجة معقدة. وقد أدى ذلك إلى استخدام الكثيرين للغات مثل فيجوال بيسك ودلفي ثم جافا وسي شارب. الأخيرتين هما مجرد تسهيل (وليس تطوير) للغة سي++، وبدا في وقت معين أن لغات مثل جافا سوف تستولي على سوق البرمجيات التجارية من سي++ مع هجرة عدد كبير من مبرمجي السي++ إلى جافا وسي شارب، إلا أنه سرعان ما أدرك المبرمجون أن السي++ هي السبيل الوحيد لإنتاج برامج تجارية قوية وسريعة وتؤدي المطلوب منها بكفاءة وبأقل عدد من الأخطاء.

وفقاً لمواصفات سي++، فإنها تدعم لغة سي بشكل كامل. وعملياً يمكن لمعظم برامج السي أن تترجم بواسطة مترجمات سي++ ولهذا تسمى هذه المترجمات بمترجمات سي/سي++. إلا أن الأمر لا يخلو من بعض المشاكل غير المتوقعة، مثلاً قد يحدث أن تسمى متغيراً باسم newوهى كلمة محجوزه في سي++ وليست محجوزة في سي.

الجديد في سي++

الإضافة الأهم التي أتت بها السي++ عن السي هي البرمجة عن طريق الكائنات. حيث تعتمد السي على البرمجة الإجرائية والتي كانت كافية في وقتها. إلا أن ظهور أنظمة التشغيل ذات الواجهة الرسومية نقل العديد من المبرمجين إلى البرمجة بالكائنات. بالرغم من ذلك فإن السي ما زالت تُستخدم في برمجة الويندوز واليونكس. أبرز هذه الإضافات هي:

  • الصفوف والكائنات.
  • التحميل الزائد للعمليات: ويعتبرها الكثير أهم إضافة في سي++، لأنها جعلت من سي++ لغة قابلة للتوسع. هناك أكثر من 30 عملية يمكن التحميل الزائد عليها.
  • القوالب.
  • التعددية الشكلية.
  • الوراثة: وهي إمكانية تطوير صنف جديد يرث جميع خصائص صنف آخر. في هذه الحالة يسمى الصنف بالصنف المشتق.
وسيم قدورة

إغلاق
يلزمك برنامج Adobe Acrobat للتمكن من تصفح العدد