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

نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
إشكالية الموضوع:

ماهي لغة البرمجة؟
كيف يعمل الحاسب الألي لفهم لغة البرمجة؟
هل هناك مستويات لهذه اللغة؟
ماهي أنواع لغة البرمجة؟

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

يمكن لأي شخص يهدف لأن يصبح مبرمجا أن يتعلم إحدى هذه اللغات ويتقنها ليستطيع بعد ذلك إعطاء أوامره للحاسوب .
مستويات لغات البرمجة:
Levels of language

هناك العديد من لغات البرمجة معظمها ينتمي إلى نفس الفئة تسمى مجموعة الفئات المختلفة للغات البرمجة بمستويات لغات البرمجة وذلك لأنها يمكن أن ترتب بشكل هرمي وأدنى المستويات في هذا الهرم تحتله اللغات الاقرب إلى مايستخدمه الحاسوب اي النظام الثنائي
(0,1) والمستوى الاعلى تحتله اللغات التي تظهر مشابهه نوعا ما للغة الانسان مثل الانجليزية وعند الانتقال من أدنى المستويات إلى أعلاها تظهر المستويات الاتية:

1. لغات الآلة:
(متدنية المستوى)Machine Language

[TR]
[TD="width: 100%"]
إن الغة الوحيدة التي يمكن استخدامها مباشرة في حاسوب الآلة
[/TD]
[/TR]


[TR]
[TD="width: 100%"]
أي أن الشخص الآمر-المبرمج- يلقي الاوامر إلى الشخص المأمور-الحاسوب-بلغة الطرف الثاني-اللغة الثنائية-وهذا يقتضي بطبيعة الحال أن يتعلم الشخص الاول لغة الشخص الثاني أي أن يتقن المبرمج لغة 0, 1 .

إذن يتكون البرنامج المكتوب بلغة الآلة من أرقام ثنائية تعبر عن التعليمات ومواقع الذاكرة والبيانات الضرورية لحل مشكلة معينة لذلك فإن أي لغة آلة تتكون من مجموعات0,1
ولكن طريقة تنظيمها تختلف من نوع حاسوب إلى آخر فمثلا تعليمة لغة الآلة التي تقوم بجمع 8 إلى القيمة الموجودة في المراكم تكون على الشكل التالي:

10100000 00001000
8
DDA


واستخدام لغة الآلة كان صعبا للغاية ويحتاج إلى وقت كبير كما أنه معرض إلى كثير من الأخطاء والمبرمج لن يكون دقيقا ولن يعمل بكفائة عالية عندما يقضي معظم وقته في كتابة 1 و 0 كما أنها تعتمد على هندسة الحاسوب ولا تحتاج إلى مترجم .
[/TD]
[/TR]


2. لغات التجميع:
(متدنية المستوى)Assembly Language تقع لغة التجميع في مستوى أعلى من لغة الآلة ولكنها بقيت متدنية . يماثل استخدام هذه اللغة أن يقوم الشخص الآمر-المبرمج- بإلقاء أوامره باستخدام كلمات ورموز بلغته وكلمات ورموز أخرى بلغة الطرف الآخر-الحاسوب-وهذا يعني أهمية استخدام مترجم ليحول أوامر المبرمج المكتوبة بلغته -لغة التجميع -إلى لغة الحاسوب- لغة الالة - .
وتميزت هذه اللغة بما يلي :

تتكون لغة التجميع من اختصارات سهلة التذكر أو الرموز المختصرة
( Mnemonic Symbols ) والتي تمثل 1 , 0 في لغة الآلة فمثلا يمكن أن تستخدم لغة التجميع(ِِِADD ,STO ,MUL ) بدلا من الشيفرات الثنائية لعمليات الجمع والضرب والتخزين في الحاسوب استخدام العنونه الرمزية(Addressing Symbols ) أي استخدام الرموز بدلا من استخدام العناوين الرقمية ويعني هذا أن المبرمج يستطيع أن يسمي موقع الذاكرةبTotal بدلا من0001001وبهذا يتكون لدينا ما يسمى بالمتغيرVariable وهو عبارة عن معنى تجريدي لموقع معين ويمكن للمبرمج أن يستخدم الارقام الثمانية أو السادس عشرية أو العشرية في قيم البيانات كل هذه العوامل جعلت استخدام لغة التجميع أسهل بكثير من استخدام لغة الآلة .
وتعتمد لغة التجمع كلغة الآلة على نوع الحاسوب فمثلا لغة التجميع المستخدمة في حواسيب
IBMلا يمكن استخدامها مع حواسيب Apple Macintoshوهناك وجه تشابه آخر بين لغة التجميع ولغة الآلة هو أن تعليمات لغة التجميع ليست بتلك القوه بمعنى آخر لتنفيذ مهمة بسيطة يجب استخدام العديد من التعليمات .
وبعكس برنامج لغة الآلة فإن البرنامج المكتوب بلغة التجميع يجب ترجمته قبل تنفيذه ويستخدم لهذا الغرض برنامج خاص يسمى المجمع
(Assembler ) إن البرنامج المكتوب بلغة التجميع أو أي لغة أخرى ما عدا لغة الآلة يسمى بالبرنامج المصدري(Source Code ) وعندما يتم تحويل هذا البرنامج إلى لغة الآلة ينتج ما يسمى بالبرنامج الهدفي(Object Code ).
أن استخدام هذه اللغة يستحق الجهد الزائد الذي يبذله المبرمج عند الحاجة إلى الاستفادة من خصائص الحاسوب المتميزة أو من كفاءة مصادره لذلك عادة ما تستخدم هذه اللغة في حالة ربط الحاسوب مع أجهزة الادخال والاخراج حيث أنها تعطي المستخدم القدرة على التحكم في توظيف المصادر الداخلية في الحاسوب كما أنها تستخدم من قبل المبرمجين المهرة لأنتاج برامج تنفذ أسرع وتحتل حيزا أفل في الذاكرة ولذلك فللغة التجميع دورا هام ومميز في برمجة نوع من المهمات التي تعتمد على الآلة
3. لغات الجيل الثالث:(عالية المستوى)High-Level Languagesأن يقوم الشخص الآمر- المبرمج -باستتخدام لغته لغة البرمجة للحديث مع الطرف الثاني - الحاسوب- .
تم استخدام مجموعة من لغات البرمجة وهي اللغات عالية المستوى حيث أن جملها أقرب إلى لغة الانسان أو التعابير الحسابية من لغات الآلة ولغات التجميع , ومن أمثلة هذه اللغات :
Cobol,Fortran,Basic,C Pascal وهي تحتاج إلى مترجمات أو مفسرات ليفهمها الحاسوب .
للغات عالية المستوى مميزات عديدة تجعلها تتفوق على لغة الآلة ولغة التجميع ,
وأهمها:
* أسهل في التعليم والكتابة وتصحيح الأخطاء والمراجعة .

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

* تعطي المبرمج القدرة على التعبير عن العمليات المعقدة بجمل قليلة وبسيطة .

* إن عدم اعتماد هذه اللغات على نوع الحاسوب يعني إمكانية نقل البرنامج من حاسوب لآخر مما يحرر المبرمج من تعلم لغات مختلفة لكل حاسوب يحتاج الى استخدامه.
4. مولدات التطبيقات:(عالية المستوى)Application Generators

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

st-name From Students WHERE average<=50; TCELES

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