الفصل الثامن



البرمجيات

8-1البرمجيات
8-2 مفاهيم في البرمجة
8-3 أنواع البرمجيات
  8-3-1 نظم التشغيل
  8-3-2 البرامج التطبيقية
  8-3-3 البرمجيات الجاهزة
8-4 مراحل ترجمة البرنامج



مقدمة في الحاسوب

8-1البرمجيات Software:

 

هي عبارة عن مجموعة برامج يمكن استخدامها في عملية تشغيل المعدات و الإشراف عليها و تضم هذه البرامج نظم التشغيل Operating System الأنظمة التطبيقية Application System و أيضاً منسق الكلمات و معالج الجداول و البرامج التطبيقية Application Program و المعنى بكتابتها أشخاص معنيين بإحدى لغات البرمجة.

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

4. ثم ظهر ما يسمى بلغة الاختصارات و ذلك لصعوبة تذكر الأرقام عند استخدام لغة الآلة.
5. ظهور المترجمات عام 1952.
6. تم تطوير و تحسين لغة الاختصارات ليظهر ما يسمى بلغة التجميع.
7. كان لا بد للإنسان في الاستمرار بتسهيل و تبسيط لغة البرمجة إلى لغة الإنسان العادية، فظهرت مجموعة من اللغات بمستوى عال و قريبة من لغة الإنسان مثل لغة بيسك، فورتران، كوبل، و غيرها.
 

   

8-2 مفاهيم في البرمجة Programming Concept:

 

•البيانات: مجموعة من الأفكار و الحقائق التي تقوم بوصف شيء أو حدث دون القيام بمعالجة حسابية أو منطقية.

•المعلومات: هي مجموعة البيانات بعد المعالجة، أي أن البيانات هي المادة الخام للمعلومات أو أن المعلومات هي مجموعة الأفكار و الحقائق التي تصف شيء أو حدث ما بعد أن تمت معالجة الأفكار و الحقائق حسابياً أو منطقياً. أو غير ذلك من عمليات معالجة البيانات.

•قاعدة البيانات: و هي مجموعة ملفات البيانات الموجودة في أنظمة المعلومات دون تكرار.

•الملفات: مجموعة من عناصر البيانات المتجانسة ذات علاقة واحدة مرتبطة بوصف مجموعة من الأشياء.

•السجلات: مجموعة من حقول البيانات تصف مجموعة من الحقائق عن شيء ما.

الحقل: مجموعة من الحروف أو الرموز التي تصف حقيقة واحدة لشيء ما.

الحروف أو الرموز: مجموعة من الخلايا الثنائية تصف أحد الأحرف الأبجدية أو أحد الأرقام أو أي رمز خاص كإشارة +، _/* وغيرها.

الخلية الثنائية Binary digit Bit :و هي أصغر وحدة من وحدات البيانات، و تكون على إحدى الحالتين دائماً صفر أو واحد.
و يمكن اعتبار الخلية الثنائية، و الحرف أو الرمز، الحقل، السجل، الملف، و قاعدة البيانات التشكيل الهرمي للبيانات من أصغر وحدة إلى أكبر وحدة.
وللقيام بعمليات معالجة البيانات لا بد من وجود ما يسمى بالبرامج.

البرنامج: هو عبارة عن مجموعة من الأوامر مكتوبة بلغة محددة، بحيث تكون مرتبة ترتيباً منطقياً، موجهة لحل مشكلة محددة.

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

لغة البرمجة: مجموعة من التعليمات و القواعد التي تؤدي وظائف عمليات معالجة البيانات جزئياً أو كلياً و ذلك تبعاً لشروط و قيود كتابة محددة و لغات البرمجة متعددة المستوى، إما أن تكون ذات مستوى راقي كلغة Basic, Fortran, Cobol, و قد تكون ذات مستوى متدني كلغة Assembly.

البرنامج المصدري :Source Program هو البرنامج المكتوب باللغة التي يفهمها الإنسان.

البرنامج الهدفي :Target Program هو البرنامج المكتوب بلغة الآلة.

•لغة الآلة :Machine Language و هي عبارة عن لغة البرمجة التي كتبت تعليماتها بالشيفرة الثنائية، حيث أن هنالك قسمين رئيسيين للتعليمة الواحدة، الأول يحتوي على شيفرة العملية operation code و الثاني يحتوي على شيفرة العنوان Address code.

المترجم Compiles:البرنامج الذي يقوم بعملية تحويل البرنامج المصدري إلى برنامج هدفي، بحيث تشمل عملية الترجمة ثلاثة مراحل:
1. تحليل لغوي
Lexical Analysis
2. تحليل قواعدي
Syntax Analysis
3. توليد شيفرة ثنائية
Code Generation
و بالنسبة للبرنامج المصدري تتم عملية الترجمة له دفعة واحدة بحيث ينتج عنه برنامج هدفي و مجموعة أخطاء إذا كان هناك في البرنامج أي أخطاء.

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

8-3 أنواع البرمجيات:

 

•تقسم البرمجيات إلى نوعين:
1. برمجيات النظم و تضم:
    1. نظم التشغيل.
    2. معالجة اللغات(المترجمات).
    3. لغات البرمجة.

2. البرمجيات التطبيقية:
و تقسم إلى نوعين:
النظم التطبيقية مثل أنظمة المحاسبة، المخازن، الحجز على الطاولات،....إلخ.
البرامج التطبيقية و هي عبارة عن برامج مكتوبة بلغة معينة تقوم بحل مسألة محددة.

8-3-1 نظم التشغيل Operating System :

 

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

     

8-3-2 البرامج التطبيقية:

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

و يمكن تصنيف لغات البرمجة إلى:
لغات البرمجة عالية المستوى  High Level Language
لغات البرمجة متدنية المستوى
Low Level Language

لغات البرمجة علية المستوى :ومن أهم هذه اللغات لغة بيسك Basic، سي C، باسكال Pascal، كوبل و لغات قواعد البيانات المختلفة.
تمتاز هذه اللغات بالخصائص التالية:
1. سميت لغات البرمجة عالية المستوى بهذا الاسم لأنها قريبة جداً من لغة الإنسان.
2. سهولة الكتابة (إعداد البرامج) و سهولة مراجعتها و فهمها و تعديلها إذا لزم الأمر.
3. لا تحتاج الكتابة و التعامل معها إلى وجود معلومات موسعة لدى المستخدم.
4. كل لغة متخصصة بمجال معين فلغة بيسك تستخدم في المجالات التعليمية و كوبل في المجالات التجارية، و باسكال و سي في المجالات العلمية.
5. إمكانية التوثيق و ذلك لامتلاكها تعليمات تزود البرنامج بالملاحظات اللازمة لمتابعة البرنامج.
6. إمكانية هيكلة البرنامج و تقسيمه إلى أجزاء مترابطة بحيث يستخدم الجزء المطلوب عند الحاجة.

• لغات البرمجة متدنية المستوى:
فقد سميت بهذا الاسم لبعد لغتها عن لغة الإنسان العادية و ذلك لأنها تستخدم لغة الآلة(النظام الثنائي) أو الرموز للتعبير عن التعليمات و من الأمثلة عليها لغة التجميع
(Assembly)
و هي تتصف بما يلي:
1. صعوبة الكتابة فيها لأنها تستخدم الرموز.
2. صعوبة متابعتها و فهمها و ذلك لبعدها عن لغة الإنسان.
3. يحتاج المستخدم لمعلومات موسعة عن الحاسوب عند استخدامه لهذه اللغة.
لذا تستخدم من قبل المتخصصين في مجال الحاسوب.
4. يعتمد البرنامج المكتوب على نوع جهاز الحاسوب لأنه يعتمد على تركيبه الداخلي و بالتالي يصعب تنفيذ البرنامج الواحد على جهازين مختلفين خلافاً للغات البرمجة عالية المستوى و التي لا تعتمد إلى حد ما على نوع الجهاز المستخدم.

 

8-3-3 البرمجيات الجاهزة:

 

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

هذا و يمكن تصنيف حزم البرمجيات إلى:
1. برنامج أتمته المكاتب و تنفيذ عمليات الطباعة و التصميم المختلفة كمعالجات النصوص و البرامج المتخصصة بأعمال الطباعة و النشر.
2. برامج التصاميم الهندسية و التي يمكن استخدامها في مجال تصميم الأبنية
AutoCAD.
3. برامج معالجة الجداول الالكترونية (المعالجة المحاسبية و الإحصائية و التمثيل البياني مثل برنامج
(Excel) و غيرها.
4. برامج الألعاب الخاصة بالترفيه.
5. البرامج التعليمية لمختلف المستويات.
6. البرامج متعددة الاستخدام كبرنامج
(Windows).

     

8-4 مراحل ترجمة البرنامج :

  إن البرنامج الذي يكتبه المستخدم يسمى البرنامج المصدري Source program و حتى يصبح قابل للتنفيذ لا بد من تحويله إلى لغة الآلة، و تسمى هذه العملية عملية التحويل من البرنامج المصدري إلى برنامج تنفيذي عن طريق المترجمات. و هناك مجموعة من المترجمات أهمها:

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

أضغط لتكبير الشكل

الشكل 8-1 آلية عمل المفسر

2. المترجم العالي Compiler: يستخدم المترجم العالي كبرنامج لترجمة البرامج المكتوبة بلغات البرمجة عالية المستوى و يحولها دفعة واحدة إلى برنامج تنفيذي.
و ينفذ المترجم الوظائف التالية:
• تحويل البرنامج المصدري الخالي من الأخطاء إلى برنامج هدفي، مكون من مجموعة من التعليمات الثنائية و تتم عملية التحويل دفعة واحدة.
•اكتشاف الأخطاء الإملائية و القواعدية و القيام بالتحليل اللغوي للبرنامج المصدري للتأكد من خلوه من الأخطاء.
• ربط الجمل الثنائية في البرنامج الهدف و ذلك بحساب العناوين الحقيقية للتعليمات و بناء ما يسمى بالبرنامج التنفيذي
Executable Program و يبين الشكل 8-2 آلية عمل المترجم العالي:

أضغط لتكبير الشكل

الشكل 8-2 آلية عمل المترجم العالي

3. المجمع :Assembler و يعمل بنفس الطريقة التي يعمل بها المترجم العالي إلاّ أنه يخصص لترجمة البرامج المكتوبة بلغة برمجة متدنية المستوى كلغة التجميع و يبين الشكل 8-3 آلية عمل المجمع:

أضغط لتكبير الشكل

الشكل 8-3 آلية عمل المجمع

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

و من أكثر الأخطاء التي لا يكتشفها الحاسوب:
1. إعطاء الحاسوب بيانات خاطئة.
2. الخطأ في العمليات الحسابية المراد تنفيذها.
3. أخطاء التصميم الخاصة بإنتاج التقارير و ذلك لأن الحاسوب ٍيتقيد و بشكل صارم بالمواصفات التي يزود بها عن طريق البرنامج المكتوب من قبل المستخدم.

 



حول الموقع  الصفحة الرئيسية  المراجع