هي عبارة عن مجموعة برامج يمكن استخدامها في عملية تشغيل المعدات و الإشراف عليها و تضم هذه البرامج نظم التشغيل 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 إن كل تعليمة من تعليمات البرنامج المصدري يقوم المفسر بتحويلها إلى تعليمة أو أكثر من تعليمات البرنامج الهدفي و ذلك بتفسير تعليمة تلو الأخرى و تشمل التحليل اللغوي و تحليل قواعد تلك التعليمة و توليد شيفرة ثنائية، يتم تنفيذها إذا اجتازت مراحل التحليل اللغوي و القواعدي.