Professional Documents
Culture Documents
الفرقة :الثانية
1
هنتكل علي
-1لغة االلة
-2لغة التجميع
اال يختلف اثنان على اهمية البرمجة في حياتنا في الوقت الحالي حيث اصبح االعتماد عليها في
كل شي تقريبا فاألنشطة اليومية لإلنسان أصبحت تعتمد علي التعليقات
و ال يمكن االستغناء عنها ،فالبرمجة ماهي إال أكواد وخوارزميات تترجم لقة البشر وأفكار
اإلنسان لتطبيقات ومهام تنفذ ما يدور في عقله ويسهل مهمات حياته اليومية خالل العقود
الماضية وطرأ تطور هائل في برمجيات و لغات البرمجة ،ونتج عن ذلك تطور في واجهة
تصميم البرمجيات واللغات المكتوبة بها ،إذ أصبحت أكثر سهولة من ذي قبل ،وأكثر متعة
للتعلم و البرمجة ورغم أنه يوجد حاليا أكثر 665لغة برمجة تختلف في أهدافها ووظيفتها إال أن
معظم اللغات مرت بمراحل تطور هائلة أستمرت على مدار قرنين من الزمان وتناوب عليه
الكثير من العلماء ومهندسي الحاسوب بالتطوير واإلضاقة والحذف والتبديل حتي وصلت إلينا
بشكلها الحالي اكثر سهولة وبساطة وأقرب للغة البشر واكثر قابلية للتعلم الفضل األكبر في تطور
لغات البرمجة يعود آللة الحياكة او النول الميكانيكي الذي اخترعه جوزيف ميري جاكارد عام
1801وكان يتم التحكم به عن طريق بطاقات مثقبة Punch Cardsكانت وظيفتها إمداد االلة
بالبيانات لتحريكها ،وقد إستفاد تشارلز بابيج من هذه البطاقات في صناعة اآللة التحليلية
Analytical Engineالتي كانت تدار بالبخار ويعدها البعض أول حاسوب في التاريخ في
بدايات القرن العشرين استخدم العالم األمريكي هيرمان هوليريث البطاقات المتقية في إختراع آلة
إلجراء التعداد السكاني تعمل بواسطة بطاقة مثقبة ذات حجم صغير نسبيا ً وقد احتوت البطاقة
عدداً من الثقوب يمثل فيها كل تقب معلومة محددة عن الشخص كالجنس أو مكان الوالدة ،ولفترة
طويلة من القرن العشرين استخدمت البطاقات المتقية كأساس لتغذية الحواسيب بالبيانات واستمر
إستخدامها حتى بداية سبعينيات القرن الماضي تطور البطاقات المتقية كان اساسا لتطور لغة اآللة
mnachine languageوالتي تعتمد على نظام العد الثنائي ( ) 0 , 1لتنفيذ األوامر والعمليات
2
الحسابية في الحواسيب الحديثة وكان البرنامج يكتسب بالكامل بواسطة لغة اآللة بالرغم من
كونها عملية صعبة ومرهقة وتحتوي على العديد من األخطاء
في عام 1940قام األلماني كونراد زوم بتطوير اول لغة برمجة حديثة حيث لجع في تطوير
نموذج الحاسب قابلة للبرمجة حيث يساعد المهندسين في العمليات الحسابية المعقدة ،وقد صمم
الحاسب من الصفيح وكان حجمه كبيرا جدا حيث بلغ حجم قاعة كبيرة وقد تم توصيلها
بالكهرباء ،ورغم النجاح الذي حقه الحاسب في البداية إال أنه كان يعاني من عدم دقة األداء مانفع
زوس المحاولة التغلب على الثغرات الوظيفية بتوظيف عمل حسابي إلكتروني ورغم فشل
المشروع إال أن زوس أستمر في عمله حتى نجح عام 1941في تطوير حسب قابل للبرمجة
أطلق عليه إسم zوكان ثورة علمية في ذلك الوقت حيث نجح في إجراء عمليات حسابية ناجحة
وتخزين النتائج وكان ما يعيبه فقط كبر حجمه وإستهالكه الرهيب للطاقة في عام 1946نجح
األمريكي جون ماكلي في تطوير حاسب أطلق عليه اسم ENIACوكان قابل للبرمجة وقد
إستطاع إنجاز عمليات حسابية في 30ثانية فقط وغالبا ما كانت تستغرق أربعون ساعة ،وقد تم
التخلص من الجهاز بعد الحرب نظراً لضخامته وإرتفاع درجة الحرارة بعد التشغيل و عدم
القدرة على حفظ البرامج ورغم ذلك فإن الكود الذي صممه جون ماكلي كان مهما ً جداً في تاريخ
تطور البرمجة حيث استطاع أن يحقق نجاحا ً كبيراً و أنتشر بسرعة كبيرة ،وأصبح واحداً من
أهم لغات البرمجة حول العالم ،وقد مرت تلك اللغة بالعديد من التطورات عبر السنوات التحول
إلى ما يعرف في وقتنا الحالي باسم . Mark 1 Autocode
3
( لغات البرمجة)
Programmins Linutes
هي التي تستخدم في بناء البرامج المختلفة وهي تتراوح من اللغات التي تتعامل به مع المكونات
المادية للحاسب واألخرى التي تتطلب تحويلها من صورتها التي كتب بها إلى صورة أخرى
يستطيع الحاسب التعامل معها هناك نوعان من اللغات البرمجية المستخدمة في الحواسب اللغات
منخفضة المستوى أو لغات عالية المستوى ترتبط اللغات البرمجية منخفضة المستوى بالعتاد
الصلب
( نمط وحدة المعالجة ،نمط النواقل و سعتها . . . ،الخ ) وتدعي عادة بلغة التجميع وتستخدم
رموزا تمثل عمليت الحاسب ،ويتوجب ترجمة كافة الرموز المكتوبة بلغة التجميع إلى لغة اآللة
المسلمة بترميز خاص و سالسل ثنائيتر مؤلفة من 0وا ) و تجري عملية الترجمة باستخدام
برامج خاصة
هي اللغة الوحيدة التي يفهمها الحاسب ويستطيع التعامل معها ،وهي تعتبر لغة خاصة لكل
حاسب وقد تختلف من حاسب آلخر ألنها تعتمد على المكونات المادية للحاسب نفسه لغة األلة
تتكون من مجموعة أرقام من بين 1 , 0التي تعطى تعليمات للحاسب للقيام بمعظم العمليات
األساسية واحدة بعد األخر ولغة اآللة من اللغات الصعبة في التعلم اإلنسان حتى بالنسبة
للمبرمجين ألنها مجموعة من األرقام 1 , 0فقط للتغلب على هذه الصعوبة تم اقتراح لغة أخرى
تعتمد على استخدام اختصارات معبرة من اللغة االنجليزية للتعبير عن العمليات األولية التي يقوم
بها الحاسب وهذه اللغة هي لغة
.
4
/2لغة التجميع
هي لغة تستخدم اختصارات معبرة من اللغة االنجليزية تعبر بها عن العمليات األولية التي يقوم
بها الحاسب ، ،ونظراً ألن هذه اللغة تستخدم كلمات مختصرة من اللغة االنجليزية فإنها ت لكي
يحولها إلى لغة اآللة وهو ما يسمى المجمع ( ) assemblerالذي يقوم التجميع إلى لغة اآللة كي
يفهمها الحاسب ويستطيع تنفيذها ،ولكن بالرغم من كل مازال هناك توجد مشقة عند حل ابسط
المسائل الن ذلك يتطلب معرفة وكتابة التعليمات ،وهذا ما دفع المبرمجين للتفكير في لغات
أخرى تقلل المجيد الكتابة الكثير من التعليمات فكانت لغات البرمجة ذات المستوى العالي ومن
كل تلك ولك كتابة العديد من المجهود الكبير الالزم
5
/لغات البرمجة ذات المستوى العالي 3/
اللغات البرمجية عالية المستوى فتكون مستقلة عن العتاد الصلب ،بحيث تجرى البرامج
بتعليمات و عبارات مشابهة للغة اإلنجليزية و لهذه اللغات عدة أصناف ال اإلجرائية ،واللغات
الوظيفية ،و اللغات غرضية التوجه .ويتوجب ترجمة كافة النصر المكتوبة بلغة برمجة عالية
المستوى إلى لغة اآللة الممثلة بسالسل ثنائية ( مؤلفة ) الذي يقوم بتحويل لن " ونظراً ألن هذه
اللغة تستخدم كلمات مختصرة من اللغة االنجليزية فإنها ت لكي يحولها إلى لغة اآللة وهو ما
يسمى المجمع ( ) assemblerالذي يقوم التجميع إلى لغة اآللة كي يفهمها الحاسب ويستطيع
تنفيذها ،ولكن بالرغم من كل مازال هناك توجد مشقة عند حل ابسط المسائل الن ذلك يتطلب
معرفة وكتابة التعليمات ،وهذا ما دفع المبرمجين للتفكير في لغات أخرى تقلل المجيد الكتابة
الكثير من التعليمات فكانت لغات البرمجة ذات المستوى العالي ومن كل تلك ولك كتابة العديد من
المجهود الكبير الالزم اللغات البرمجة ذات المستوى العالي High level Languages :
اللغات البرمجية عالية المستوى فتكون مستقلة عن العتاد الصلب ،بحيث تجرى البرامج
بتعليمات و عبارات مشابهة للغة اإلنجليزية و لهذه اللغات عدة أصناف ال اإلجرائية ،واللغات
الوظيفية ،و اللغات غرضية التوجه .ويتوجب ترجمة كافة النصر المكتوبة بلغة برمجة عالية
المستوى إلى لغة اآللة الممثلة بسالسل ثنائية
6
تجري عملية الترجمة باستخدام برامج خاصة تدعى المترجمات ،وهذه اللغات تستخدم العالقات
والعوامل الرياضية المتعارف عليها مثال
. Sunn = A + B + Cتضمن اللغات البرمجية عالية المستوى تحقيق مجال واسع في المهام
البرمجية المختلفة لقد جرى تطوير العديد من لغات البرمجة المختلفة على مر السنين بهدف تلبية
االحتياجات المتغيرة في تقنيات المعلومات ومن المعلوم أن عملية تحويل البرنامج من لغة ذات
مستوى عال إلى لغة اآللة تستهلك وقتا ولذلك تم تطوير نسخ من لغت المستوى العالي بحيث
تستخدم برنامج مفسر ( ) interpreter
لغة البرمجة هي باألساس طريقة تسهل للمبرمج كتابة برنامجه في هيئة تعليمات وأوامر يفهمها
الحاسوب بغرض تنفيذ العمل المطلوب .ومن المعروف ان الحاسوب يحول اللغة المكتوبة بها
البرمجة إلى سلسلة من 0و ،1ويبدأ على أساسها عمله .ولكتابة األوامر ،توفر لغة البرمجة
المختارة مجموعة من األمور األساسية لالستناد إليها أثناء عملية تكوين البرنامج ومجموعة من
القواعد التي تمكن من التعامل مع معلومات وتنظيمها بغرض أداء العمل المطلوب.
1المعلومات وتخزينها
3التصميم الخاص0
7
المعلومات وتخزينها
يتم تخزين المعلومات في األجهزة الرقمية الحالية في هيئة أرقام طبقا لنظام العد الثنائي (أي
المعتمد على 0و .)1
و بصفة عامة فان المعالجات الحديثة ال تقوم بالتعامل مع البت الواحد بل مع مجموعات من
البتات يمكن أن تضم :
وباستعمال 8بت مثال ،يمكن تشكيل 256قيمة مختلفة ،ويمكن أن تكون هذه القيمة بين 0و 255
وتمثل وظيفة لغة البرمجة استغالل وحدة أو مجموعة من الوحدات (رموزا) لتخزين معلومات
من الحياة الواقعية مثل األسماء أو القياسات أو أرقام الحسابات البنكية.
يقوم المبرمج باجراء عمليات على وحدات المعلومات مثل تخزينها وقراءتها ومقارنتها ،كما
يمكن إجراء عمليات حسابية عليها أيضا ،وتتبع العمليات القواعد المحددة للغة .و للغة البرمجة
دور آخر وهو التحكم في تنظيم إجراء العمليات ،حيث توجه تنفيذ خطواتها بنفس تتابع كتابتها من
طرف المبرمج.
تمكن اللغة أيضا ً من إجراء عملية اختيار وتفرع ،وذلك بإدخال شرط منطقي يقوم الحاسوب على
أساسه باختيار اتجاه االستمرار في أداء العمل :فلنفترض أن البرنامج الذي يريد المبرمج صنعه
يقوم بقسمة عددين يختارهما المستخدم ،وإظهار النتيجة على الشاشة ،ومن المعروف أن القسمة
على صفر ال تجوز ،وبناء علي ذلك فال بد أن يحدد المبرمج في برنامجه هذا االختيار :فاذا كان
القاسم مخالفا للصفر ،فإن البرنامج يسيـّر الحاسوب فيقوم بإجراء العملية ويعطي النتيجة .أما إذا
كان القاسم صفراً فإن البرنامج ال يقوم باجراء العملية وإنما ينبه إلى أن المستخدم حاول القسمة
على صفر .و يمكن تنظيم األوامر بصفة أخرى ،حيث يقع تنفيذ أمر أو مجموعة من األوامر
بصفة متكررة حلقية ( ،)Loopو يمكن تقسيم األوامر أيضا ً إلى وحدات فرعية تقوم كل وحدة
بانجاز عمل محدد ،والهدف هو تقسيم العمل إلى أجزاء يسهل العمل عليها كل على حدة في هيئة
دورات حلقية (.)Loopsالتصميم الخاص
8
تتمتع كل لغة بتصميم خاص من حيث التعامل مع المعطيات ،ومن حيث الطرق والتسهيالت التي
توفرها اللغة للتعامل مع مشكلة معينة.
يمكن تصنيف لغات البرمجة من حيث طريقة بناء البرامج إلى لغات إجرائية (Basic،
)Fortranوهي لغات تسلسلية ،أساس بناؤها هو اإلجراءات المطلوب تطبيقها على المعطيات
والمتحوالت .ولغات شيئية ( )C، Java، Delphiوهي التسلسلية ،وتقوم على أساس العناصر
والمتحوالت المستخدمة ضمن البرنامج المطلوب تحويلها ،من خالل تطبيق مجموعة معينة من
اإلجراءات عليها.
9
المصادر والمراجع
/1الكتاب والمحاضرات
https://web.archive.org/web/20191210213449/http://psh.techlib.cz/skos/P
SH12474
وترجمة دكتور علي بن معاضه الغامدي .جامعة الملك سعود 2010 .ص 26
10