منتديات سوسو كاتي
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


منتديات سوسو كاتي
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 نبذة عامة عن بعض لغات البرمجة

اذهب الى الأسفل 
كاتب الموضوعرسالة
بيتي
Admin
بيتي


المساهمات : 177
تاريخ التسجيل : 28/07/2008

نبذة عامة عن بعض لغات البرمجة Empty
مُساهمةموضوع: نبذة عامة عن بعض لغات البرمجة   نبذة عامة عن بعض لغات البرمجة I_icon_minitimeالأربعاء يوليو 30, 2008 2:09 am

farao farao flower
أولا : الاسيمبلي
تانيا :فيجوال بيسك
ثالتا : لغة السي بلس بلس
رابعا : لغة الجافا


نبدا بالاسيمبلي

لغة التجميع
إذا اقتربنا من لغة الآلة واستخدمنا لغة التجميع ، فنجد أننا نخسر المرونة والعمومية . فلغة التجميع تفتقر إلى التجريد ومن الصعوبة بمكان تعديل جزء من برنامج مكتوب بها دون إعادة النظر في باقي أجزائه . كما أنها تحاكي ، بطبيعتها ، نوع الجهاز الذي تعمل عليه لدرجة أن أي تغيير في الأجهزة الملحقة بالحاسب ( مثل نوع الشاشة ) غالباً ما يستوجب إعادة صياغة بعض تعليمات البرنامج . أما من الناحية الإيجابية ، فإن لغة التجميع تكسبنا سرعة ( Speed ) وسلطة ( Power ) لا مثيل لهما في اللغات عالية المستوى . أما السرعة ، فتنتج من أن برامج لغة التجميع تخاطب المعالج المركزي ( CPU ) مباشرة ودون وسيط ( مترجم ) .
فإذا كنت على دراية تامة بمزايا هذا المعالج ( نقاط ضعفه ونقاط قوته ) أمكنك صياغة برنامجك بحيث تستفيد من نقاط قوته وتتجنب نقاط ضعفه . أما المترجم ، فلقد صمم لترجمة أي برنامج كيفما تمت صياغته وبالتالي لن يستطيع ، في كل الحالات ، أن يجاري برامج لغة التجميع سرعة وكفاءة .
إن انعدام الوسيط بين البرنامج المجمع والحاسب يؤدي أيضاً إلى زيادة سلطة هذا البرنامج على الجهاز . إذ إن المترجم ، كأي برنامج آخر ، يفرض على المبرمج شروطاً وقواعد خاصة به وباللغة التي يترجمها . هذه الشروط تؤدي بشكل مباشر إلى الحد من مجال العمليات التي يمكن للمبرمج أن يطلبها . فمترجم لغة باسيك مثلاً ، يمنع المبرمج من " تدوير " البتات التي يتكون منها عدد ما ( لأن مثل هذه العملية ليست من مفردات لغة باسيك ) رغم أن المعالج المركزي في الجهاز يستطيع أن يقوم بهذه العملية . وكذلك نجد أن مترجم برامج باسكال لا يسمح بوضع قفل ( Lock ) على أحد الملفات المخزنة على قرص مركزي يشترك في استعماله عدة مستخدمين ، رغم أن المعالج المركزي ونظام التشغيل يسمحان بهذه العملية . ولكن ، لنتذكر أن القدر الكبير من السلطة والتحكم الذي توفره لنا لغة التجميع لا يأتي مجاناً ، بل تصاحبه مسؤولية كبيرة . فمع زيادة السلطة يزداد العبء ويجدر الحذر .
فالسلطة التي تمكنك من قراءة أي قطاع من القرص بسهولة ، مثلاً ، تتيح لك تخريب سائق الاسطوانات تخريباً تاماً ، وبنفس السهولة !

لماذا نستعملها ؟
لقد رأينا أن لغة التجميع تفتقر إلى المرونة ( مما يجعل كتابة وصيانة برامجها صعبة نسبياً ) وإلى العمومية ( التي تجبرنا على إعادة كتابة نفس البرنامج كلما تغير الجهاز ) وأنها تتطلب توخي الحذر وتحمل قدر كبير من المسؤولية ( إذ بدونها يمكن للبرنامج أن يعطب الجهاز ) . فإذا ابتلت لغة بهذا الوابل من المساويء ، جاز لنا أن نطرح السؤال : لماذا نستعملها أصلاً ؟
هذا حقاً سؤال وجيه . ونحن في الواقع نسعى دائماً إلى تجنب لغة التجميع إلا عند الضرورة القصوى ، حين تكون ميزاتها ( السرعة والسلطة ) أساسية لعمل النظام . ففي نظم الزمن الحقيقي ( Real time systems ) مثلاً ( كنظام الطيار الآلي ونظم الدفاع الجوي ونظم التحكم الصناعي ) تكون سرعة النظام هي معيار نجاحه أو فشله ، ولذا لابد من الاستعانة بلغة التجميع للوصول إلى السرعة المنشودة . وحتى عندما لا تكون السرعة أساسية بكل معنى الكلمة لعمل النظام ، قد نضطر إلى استخدام لغة التجميع ، جزئياً ، في برامجنا لتحقيق المواصفات المطلوبة من المستعمل أو محلل النظم ( كما يحدث في التطبيقات التجارية عندما نفرز Sort عدداً كبيراً من البيانات ) .
أما الموجب الثاني لاستخدام هذه اللغة فهو السلطة التامة على الجهاز أو أحد ملحقاته . فعند كتابة برنامج متعدد المستعملين ( multi - user ) ، كثيراً ما نضطر إلى وضع قفل على أحد سجلات ملف ، لكي لا نسمح لمستخدم آخر أن يكتب عليه أثناء عملنا . وكما نوهنا سابقاً فإن لغة باسكال القياسية لا تؤمن هذه الخدمة / مما يضطرنا إلى تنفيذها بلغة التجميع .
وبشكل عام ، فإن أي تحوير في عمليات الإدخال أو الإخراج القياسية سيضطرنا إلى استخدام لغة التجميع ، ولو جزئياً في برامجنا .
ولقد ظهر مؤخراً موجب ثالث لاستخدام هذه اللغة ، لا ينبثق من ميزاتها الأساسية ( سرعة + سلطة ) ، بل من السرعة المذهلة التي تتطور بها تقنية الحاسبات في الآونة الأخيرة . إذ لم تستطع الشركات المصنعة لبرامج النظم ( وعلى رأسها المؤلفات ) مواكبة سرعة تطور الأجهزة (Hardware) بل تختلف عنها بفارق يصل في بعض الأحيان إلى خمس سنوات! فنجد مثلاً ، أن مؤلفات اللغات الشهيرة لم تستطع التعامل مع المعالج الحاسبي المساعد ( arithmetic co-processor ) من النوع 8087 أو 80287 إلا عام 1986م ، رغم أن هذا المعالج ظهر إلى الأسواق في أوائل الثمانينات . وها قد مضى الآن أكثر من عامين على ظهور أجهزة PS/2 ، دون أن يظهر أي مؤلف يستفيد من مزاياها الكبيرة . أما على مستوى لغة التجميع ، فالصورة مختلفة : إذ إن هذه اللغة لا تحتاج إلى مترجم بكل معنى الكلمة ، بل كل ما تحتاج إليه هو قاموس صغير لمرادفات جملها بلغة الآلة . ومن السهولة بمكان توفير هذا القاموس ( أي المجمع ) مع كل جهاز أو نظام تشغيل جديد . لهذا تمكن مستعملوا هذه اللغة من تقديم برامج متطورة تواكب كل جديد في تقنية الحاسب ، سابقين بذلك من أصر على استخدام لغات المستوى الأعلى .
نلخص إذن بأن علينا تجنب استخدام لغة التجميع إلا في الحالات الثلاث الآنفة الذكر . ونضيف هنا أنه حتى في تلك الحالات ، علينا أن نعمد لاستخدامها جزئياً ، أي كبرنامج فرعي ، يتم طلبه من البرنامج الرئيسي الذي يكتب بلغة عالية أو حديثة .




ترقبوا (نبذة عن الفيجوال بيسك)يتبع..................
واجو التثبيت للاهمية
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://sosocatty.yoo7.com
 
نبذة عامة عن بعض لغات البرمجة
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات سوسو كاتي :: منتـديات الحاسوب والبرامج :: مبرمجين - مطوري أنظمة - لغات برمجة-
انتقل الى: