الخميس، 12 مايو 2011

لغات البرمجة

-_- لغة البرمجة -_-


-_- المقدمه -_-

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

-_- التمهيد-_-


عبارة عن مجموعة من الأوامر، تكتب وفق مجموعة من القواعد تحدد بواسطة لغة البرمجة، ومن ثم تمر هذه الأوامر بعدة مراحل إلى ان تنفذ على جهاز الحاسوب.
تقسم لغات البرمجة بناء على قربها من اللغات الإنسانية إلى لغة عالية المستوى (قريبة من اللغة التي يفهمها البشر) مثل سي Java جافا، C ولغة منخفضة المستوى (كلغة الأسيمبلي Assembly وهي قريبة من لغة الآلة).
وتقسم أحيانا بناء على الأغراض المرغوبة من اللغة المستخدمة. هناك لغات صُممت لكي تعمل على أجهزة معينة، مثل ان تقوم شركة ما بإنتاج جهاز حاسوب أو معالج مركزي (CPU)، وتوفر له دليل استعمال يحتوي على الأوامر التي تنفذ عليه، وهناك لغات أخرى أكثر عمومية تعمل بشكل مستقل عن نوع الآلة، أي انها تعمل ضمن آلة افتراضية Virtual Machine، مثل لغة الجافا Java.
أولا :ماهية البرمجة :
من الممكن تعريف البرمجة بأنها عملية كتابة تعليمات وأوامر لجهاز الحاسوب أو أي جهاز آخر، لتوجيهه وإعلامه بكيفية التعامل مع البيانات أو كيفية تنفيذ سلسلة من الأعمال المطلوبة.
و تتبع عملية البرمجة قواعد خاصة باللغة التي اختارها المبرمج.
و كل لغة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج والمهمة المطلوبة من هذا البرنامج.
كما أن للغات البرمجة أيضاً خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات صممت للتعامل مع الحاسوب.
وتتطور لغات البرمجة (السوفتوير Software) بتطور الحاسوب (الهاردوير Hardware). فعندما ابتكر الحاسوب الإلكتروني في الأربعينيات والخمسينيات من القرن الماضي (بعد أجهزة الحساب الكهربائية في العشرينات)- وكان الكمبيوتر يعمل بأعداد كبيرة من الصمامات الإلكترونية - كانت لغة البرمجة معقدة هي الأخرى، حتي أنها كانت عبارة عن سلسلة من الأعداد لا يدخلها إلا الصفر 0 والواحد 1، وكان ذلك صعبا على المبرمجين. ولكن بابتكار الترانزيستور صغر حجم الحاسوب كثيرا وزادت إمكانياته، واستطاع المختصون في نفس الوقت أن يبتكروا لغات أسهل للاستخدام، وأصبحت لغات البرمجة مفهومة إلى حد بعيد للمختصين. ولا يزال التطوير والتسهيل دائرا.
ثانيا : خصائص لغات البرمجة :
لغة البرمجة
هي بالأساس طريقة تسهل للمبرمج كتابة برنامجه في هيئة تعليمات وأوامر يفهما الحاسوب بغرض تنفيذ العمل المطلوب. ومن المعروف ان الحاسوب يحول اللغة المكتوبة بها البرمجة إلى سلسلة من 0 و 1، ويبدأ على أساسها عمله. ولكتابة الأوامر توفر لغة البرمجة المختارة مجموعة من اللبنات الأساسية للاستناد عليها خلال عملية تكوين البرنامج ومجموعة من القواعد التي تمكن من التعامل مع معلومات وتنظيمها بغرض أداء العمل المطلوب.
تتمثل هذه الأسس والقواعد بصفة عامة في:
  • المعلومات وتخزينها
  • الأوامر وتنظيم سيرها
  • التصميم الخاص

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

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

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

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

التصميم الخاص

تتمتع كل لغة بتصميم خاص من حيث التعامل مع المعطيات، ومن حيث الطرق والتسهيلات التي توفرها اللغة للتعامل مع مشكلة معينة.
يمكن تصنيف لغات البرمجة من حيث طريقة بناء البرامج إلى لغات إجرائية (Basic, Fortran) وهي لغات تسلسلية، أساس بناؤها هو الإجراءات المطلوب تطبيقها على المعطيات والمتحولات. ولغات شيئية (C, Java, Delphi) وهي لاتسلسلية، وتقوم على أساس العناصر والمتحولات المستخدمة ضمن البرنامج المطلوب تحويرها، من خلال تطبيق مجموعة معينة من الإجراءات عليها.
ثالثا : اللغات البرمجية :
سنتطرق في هذه الفقرة عن اربع لغات برمجية وصفها الكثيربانها اللغات البرمجية الكبار أو الاربعة الكبار وهم :
1- لغة التجميع :
ظهرت لغة التجميع بوصفها أو لغة ترميز، تستخدم الرموز SYMBOLIC CODE للتعبير عن تعليمات لغة الآلة، وذلك لمواجهة صعوبة الترميز بلغة الآلة، ولغة التجميع لغة قريبة من لغة الآلة التي يفهمها الحاسب الآلي، وتسمى هذه اللغات بلغات المستوى البسيط . ويتم استعمال مختصرات ورموز يسهل حفظها وكتابتها لكل تعليمة من تعليمات لغة الآلة، ولغة التجميع كما في لغة الآلة مصممة للعمل على حاسب معين، مما يوفر قدرة أكبر على استغلال موارد الحاسب الآلي ووحدة المعالجة المركزية بشكل أفضل، ويقوم البرنامج المسمى المجمع ASSEMBLER بترجمة البرنامج المكتوب بلغة المجمع إلى لغة الآلة . ساعد الانتشار الواسع للحواسيب الشخصية في تجديد الاهتمام باللغة التجميعية لاسباب عديده ولعله اهمها ان برنامج اللغة التجميعية يحتاج لحيز تخزين اضغر وزمن تنفيذ اقل وذلك بالمقارنه مع اي لغة اخري.
كما ان الالمام بهذه اللغة وبشفرة الآله الناتجه عنها يوفر فهما اعمق لبنية الحاسوب , الامر الذي لا توفره أي لغة برمجة أخري .
ويمكن تعريف لغة التجميع بانها اللغة التي تعمل على تمثيل رمزي للإعازات الثنائية التي يفهمها الحاسوب , وهذه اللغة صعبة الاستعمال إذ يحتاج المبرمج إلى تحديد المسجلات الداخلية إضافة إلى العمليات الداخلية بشكل مفصل .
وتستعمل لغة التجميع كلما كانت سرعة التنفيذ ضرورية ولكن رغم ذلك فانها تجعل من البرمجة عملا صعبا
2- لغة البيسك :
وهي اختصار للعبارة الإنجليزية Beginer's All Purpose Symbolic In struction Code أي اللغة المتعدد الأغراض للمبتدئين، وتأتي كلمة BASIC التي تعني الأساس لتحقيق المعنى نفسه، فهذه اللغة ونظراً لبساطة تعليماتها ومحدوديتها فإنها تعد لغة مناسبة للتعلم من قبل المبتدئين في عالم الحاسب الآلي والبرمجة، وتستخدم هذه اللغة في معظم الحاسبات الشخصية، مما يدل على الانتشار الواسع لها، وقد طورت هذه اللغة في كلية Dartmouth عام 1963م من لدن John Demuy و. Thomas Kurtzوتستخدم لغة Basic الحديثة في قطاع واسع . إذ تستخدم في مجال الأعمال لقدرتها على التعامل مع الملفات، وكذا في العمليات الرياضية من قبل العلماء والمهندسين لامتلاكها كثيراً من الوظائف للقيام بمثل تلك العمليات المعقدة . لقد طورت هذه اللغة اصلا كأداة تعليميه , لتسهيل الاستخدام وتبسيطه أكثر من غاية القوة والمرونة , نتيجة لذلك نظر إلى لغة البيسك كلعبة جميلة للتعلم , وانما غير كناسبة في البرمجة الحرجة , وطورت هذه اللغة عبر السنين الماضية وصارت مترجمات لغة البيسك متوفرة مع كل القوة والمرونه الازمتين لكتابة مشاريع برمجية معقده , وبقية اللغة مع ذلك سهلة التعلم والاستخدام .
ويوجد نوعان أساسيان للغة البيسك وهما البيسك المترجم والبيسك التفسيرية .
ففي لغة البيسك المترجم يترجم النص المصدري إلى لغة الآلة ثم يتم عليه عملية ربط لتحويله إلى برنامج تنفيذي يتم تخزينه على الاسطوانه .
اما في البيسك التفسيرية , فيتم تحويل عبارات النص المصدري إلى تعليمات لغة الىلة على الفور عند تنفيذ البرنامج .
وكثير من اصدارات البيسك القديمه كانت تفسيرية وعلى الرغم من أن البيسك التفسيرية تعتبر رائعة في بعض المهمام إلى أن القيود الداخلية للغات التفسيرية تجعل منها غير مناسبة للبرمجة الجدية .
3- لغة باسكال :
وسميت باسم العالم الفرنسي الرياضي الفذ Blaise Pascal ، وصممت هذه اللغة من قبل العالم السويسري Niklaus Wirth ، وطرحت عام 1971م، وقد انتشرت هذه اللغة خصوصاً في الجامعات . إذ تدرس هذه في معظم جامعات العالم لطلاب علوم الحاسب، وتمتاز لغة PASCAL بالسهولة، واختصار الكلمات فيها إلى حد كبير، وبنيتها التركيبية وقوة البرامج الفرعية، واستخدام المؤشرات Pointers ، وقد ظهرت نسخ جديدة من Pascal امتازت بتلافي العيوب في النسخ السابقة، ويعد TurboPascal من شركة Borland من البرامج المستخدمة بكثرة بين المبتدئين والتخصصين في البرامج، وتنافس هذه اللغة لغة Basic في كثرة المستخدمين لتوافر كثير من المميزات فيها، وتستخدم هذه اللغة من قبل الطلاب والمهندسين، كما تستخدم في قطاع الأعمال التجارية .
تعتبر لغة باسكال لغة إجرائية طورت في أوامر عام 1960 , وتعتبر لغة قادرة , وتتقارب مع لغة سي من ناحية القوة , إلى ان لغة باسكال بالمقارنه مع سي تمتلك مجموعة من القوانين الصارمة التي تحكم شكل وبنية البرامج , وهذه الوسوسة في القوانين شجعت مبرمجة هذه اللغة على كتابة برامج موجزه محكمة البنية تنتزع إلى الخلو من الاخطاء , إلى أن النقص النسبي في لغةسي جلب غليها قدرا كبيرا من المرونه بالمقابل , وعلى العموم فكاي شيء آخر تعتبر مسألة إنتقاء اللغة مسالة ترجع لعوامل شخصية .وتستخدم باسكال طرازا ذاكريا كبيرا ويتميز هذا الطراز بتعدد مقاطع الشفرة وتعدد مقاطع المعطيات , إلا ان باسكال تترجم كل النص التنفيذي لجسد البرنامج غلى مقطع وحيد , وبهذا يتوجب على برامج لغة السمبلي الفرعية المصرح عنها ضمن الجسد الرئيسي للبرنامج استخدام واستدعاء ورجوع قريبين .
4- لغة اللوغو :
هي احدي لغات البرمجة الموجوده في حياتنا .
..و الـتـي تـتـمـيـز بـالآتـي :
1) لغة سـهـلـة وبـسـيـطـة, وعند تعلم أساس القواعد يمكن الحصول علي نتائج سريعة باقل امكانيات .
2) وسـيـلـة لـلـتـعـلـملأنها تتيح لمن يستخدمها بشكل يناسب كفائته وامكانياته ان يتعلم اشياءكثيرة بمجرد تعلم عدد قليل من أوامرها .
3) تعمل على تـنـمـيـة قـدرات الـطـلابعلى الابداع والابتكار والتفكير المنطقي من بداية استخدامها .
4) تستخدم لغة لوجو فكرة تنمية امكانيات اللغة عن طريق استخدام البرامج الفرعية (
Procedures) والتي تصبح بعد ذلك من ضمن مفردات اللغة بمجرد تعريفها بواسطة مصمم البرنامج الفرعي .
* السلحفاة(
Turtle) : هي آداة الرسم , وهو عبارة عن مـثـلـثيظهر في وسط الشاشة ويكون بمثابة المؤشر الذي يمكن تحريكه والتحكم فيه لرسم الأشكال .
علامة الاستعداد( Prompt) : عند بدأ تشغيل لغة اللوجو يظهر علامة الاستعداد الخاصة باللغة والتي تأخذ شكل علامة الاستفهام ( ? ) وتعني هذه العلامة أن البرنامج مستعد لاستقبال أى امر من المستخدم .

ليست هناك تعليقات:

إرسال تعليق