علم البرمجيات (الكيان المعنوي) Software
صفحة 2 من اصل 1
علم البرمجيات (الكيان المعنوي) Software
بسم الله الرخمن الرحيم
هو أحد فروع علم الحاسوب وهو علم يختص بكل ما يتعلق بالبرامج المستخدمة مع الحاسوب وذلك من حيث تصميمها وإعدادها وتشغيلها وتطويرها وغير ذلك ، وتم تقسيم البرامج بشكل عام إلى فرعين :
1 – البرمجيات التطبيقية : Application Software
وهي البرامج التطبيقية المختلفة التي يمكن استخدامها مع الحاسوب سواء كانت هذه البرامج جاهزة تطرح في الأسواق للاستخدام العام ويستفيد منها كافة المستخدمين الراغبين في ذلك أو كانت برامج خاصة وهي تلك البرامج التي تعد من أجل استخدامها من قبل جهة معينة تناسب متطلباتها و عملها وهي في الغالب لا تصلح سوى لهذه الجهة ولا يستفيد منها سواها.و من هذه البرامج :
البرامج المكتبية مثل :
- MS-Word- MS-Excel- MS- Power Point- MS- Access- MS- Front Page- MS- Outlook- Adobe Acrobat
ومنها أيضاً البرامج الخاصة بالرسويميات Graphics و التصميم الهندسي و تصميم الفيديو و العروض المرئية الإحترافية أو برامج تصميم مواقع الإنترنت ومن هذه البرامج :
- Adobe Photoshop- Adobe Illustrator - Adobe premier - Macromedia Fireworks - Macromedia Flash- Macromedia Dreamweaver- CorelDraw - PrintShop- AutoCAD - Ulead Video Studio
ومن البرامج التطبيقة الآخرى ، برامج الصوتيات Audio وهي برامج لتشغيل ملفات الصوت أو التعامل معها بأي شكل من الأشكال ومنها برامج تشغيل الفيديو Video بأنواعه .
أيضاً من البرامج التطبيقية برامج الإنترنت المختلفة كمتصفحات المواقع مثل Internet Explorer أو Netscape Explorer وغيرهما الكثير أو برامج الماسنجر الكثيرة مثل Yahoo Messenger أو MSN Messenger وغيرهما الكثير طبعاً.
هذه عبارة عن أمثلة عن بعض البرامج التطبيقة الشهيرة ولكن الساحة تزخم بالمئات من البرامج التطبيقية الجاهزة للإستخدام والتي تلبي رغبات كافة المستخدمين.
2 – برمجيات النظم : System Software
وهي برامج ذات طابع خاص ، فهي برامج مهمة جداً بالنسبة للحاسوب قبل أن تكون مهمة بالنسبة للمستخدمين فهي برامج تمكننا من التعامل مع الحاسوب سواء من حيث الاستخدام أو من حيث كتابة وتطوير البرامج المختلفة وغير ذلك. وبرمجيات النظم هي :
أ – أنظمة التشغيل : Operating System
وهي كما أشرنا سابقاً برامج ذات طابع خاص تتحكم في الحاسوب وملحقاته والبرامج المختلفة المستخدمة وتلبي رغبة المستخدم طوال فترة مكوثه أمام شاشة الحاسوب .
ومن اشهر أنظمة التشغيل على الإطلاق ، نظام التشغيل Windows بإصداراته المختلفة و أيضاً نظام تشغيل Linux الذي يعتبر منافس قوي جداً لنظام التشغيل Windows لما به من مزايا رائعة ويأتي أيضاً من ضمن انظمة التشغيل الشهيرة والقوية نظام التشغيل Unix المستخدم بكثرة وبصفة خاصة كنظام تشغيل للشبكات.
ب – لغات البرمجة : Programming Languages
هي برامج أيضاً ، وإنما هي برامج تستخدم لكتابة برامج مماثلة أي أنها برمجيات نظم تستخدم لكتابة برمجيات تطبيقية ولهذا سميت بلغات ، ولكونها تستخدم لكتابة برامج فإن ذلك يعبر عن مفهوم البرمجة ولهذا فهي تسمى لغات برمجة.
من أشهر لغات البرمجة العالمية ، لغة البرمجة القوية Delphi ولغة Java و لغة PHP وايضاً لغة C الغنية عن التعريف و لغة البرمجة التائة (حسب رأيي الشخصي ) VB.NET التي يتغلب صيتها وشهرتها على مقدرتها الفعلية بالإضافة إلى عشرات من لغات البرمجة المختلفة حيث تختص كل منها في مجال معين فمنها ما هو مناسب للبرامج ومنها ما هو مناسب للشبكات و الانترنت و منها ما هو خاص بالتحكم الآلي بالكومبيوتر و منها ما يستخدم لصناعة العاب الكومبيوتر و غيرها .
جـ - برامج المنفعة : Utilities
هي برامج تقوم ببعض وظائف أنظمة التشغيل بشكل مشابه إلا أنها يمكنها القيام ببعض عمليات (منافع) عادة ما تكون من أجل الصيانة أو الحماية أو السرعة في تطبيق بعض العمليات .
البرامج النفعية في الغالب تكون برامج حماية وتعقب للمشاكل التي قد تحدث للكومبيوتر وأجزاءه سواء كانت مادية أو معنوية أي سواء كانت أجهزة ملحقة بالكومبيوتر أو البرامج العاملة على الكومبيوتر .
من أشهر برامج المنفعة المعروفة البرامج المضادة للفيروسات Antivirus و برامج مكافحة التجسس Antispies وبرامج تعقب مشاكل الأقراص وغيرها الكثير .
د – قواعد البيانات : Data Bases
هي برامج أشبه ما تكون بلغات البرمجة ولكنها صممت للتعامل مع كم هائل من البيانات بمرونة وكفاءة عاليتين وبالتالي فإنها تستخدم لإعداد برامج متكاملة لإدارة هذه البيانات بالشكل المناسب.
هذه البرامج تشبة إلى حد ما لغات البرمجة لأنها مزودة بإمكانيات كتابة البرامج التي تدعم قواعد البيانات التي تنشأها وبالتالي فإني أحب تصنيفها من ضمن برمجيات النظم خلافاً لبعض الكتب التي تصنفها من ضمن البرامج التطبيقية لأنه ليس من المنطقي على سبيل المثال تصنيف Oracle مثلاً على أنها برنامج تطبيقي لما لها من قدرات هائلة تفوق حتى بعض لغات البرمجة الشهيرة.
رد: علم البرمجيات (الكيان المعنوي) Software
يقوم الحاسب الآلي عند أداء أي عمل من أعماله بتتبع مجموعة من التعليمات المتسلسلة والمترابطة التي تسمى البرنامج، ويسمى من يكتب هذه التعليمات بالمبرمج، ويعتمد تركيب الجمل والتعليمات على لغة البرمجة المستخدمة، ويتصل الإنسان بالحاسب لتوجيهه للقيام بالأعمال التي يريدها بواسطة لغات البرمجة .
1ـ لغة الآلة :
وتسمى اللغة الثنائية
تتكون من سلسلة من 0 و 1، وهي اللغة الوحيدة التي يفهمها الحاسب الآلي، حيث تحول جميع اللغات إلى لغة الآلة، حتى تتمكن معدات الحاسب الآلي من التفاهم معها، ولأنها تتكون من صِفر وواحد، لذا فقد تميزت هذه اللغة بالصعوبة نظراً لما تتطلبه من حفظ ودقة في كتابة سلسلة طويلة من صِفر وواحد بترتيب معين، مما ينتج عنه أخطاء كثيرة من الترميز، ويجب أن يحدد المبرمج كل شيء، فكل خطوة يجب أن ينفذها البرنامج يجب أن ترمز، لذا فالمبرمج يجب أن يكون على علم بتركيب الحاسب الداخلي، والعناوين الرقمية لمواقع التخزين، سواء للبيانات أو التعليمات، كما أن لكل جهاز لغة آلة تختلف عن الجهاز الآخَر بحسب النوع والتركيب مما يعني أنه يجب كتابة البرنامج بشكل كامل مرة أخرى عند الرغبة في تنفيذِه على جهاز آخر، ونتيجة لهذه الصعوبات فقد ظهرت طرق أخرى لتمثيل الترميز الثنائي، كالنظام الثماني OCTAL والستة عشري HEX-ADECIMAL بدلا من 1، 0 فالنظام الستة عشري يتكون من ستة عشر رمزاُ هي : 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 A.B,C,D,E,F .
مما يساعد على سهولة قراءة التعليمات المكتوبة وحفظها بهذه اللغة، فبدلا من كتابة 16 رقماً في سلسلة يمكن الاستعاضة عنها بأربعة رموز من رموز النظام التشغيل الستة عشري .
2ـ لغة التجميع :
أول لغة ترميز، تستخدم الرموز SYMBOLIC CODE للتعبير عن تعليمات لغة الآلة، وذلك لمواجهة صعوبة الترميز بلغة الآلة، ولغة التجميع لغة قريبة من لغة الآلة التي يفهمها الحاسب الآلي، وتسمى هذه اللغات بلغات المستوى البسيط .
ويتم استعمال مختصرات ورموز يسهل حفظها وكتابتها لكل تعليمة من تعليمات لغة الآلة، ولغة التجميع كما في لغة الآلة مصممة للعمل على حاسب معين، مما يوفر قدرة أكبر على استغلال موارد الحاسب الآلي ووحدة المعالجة المركزية بشكل أفضل، ويقوم البرنامج المسمى المجمع ASSEMBLER بترجمة البرنامج المكتوب بلغة المجمع إلى لغة الآلة .
3 ـ اللغات العليا :
بإمكان المبرمج كتابة البرنامج دون معرفة تفاصيل كيفية قيام الحاسب بهذه العمليات، كمواقع التخزين وتفاصيل الجهاز الدقيقة، وتعبيرات لغات المستوى العالي هي تعبيرات شبيهة إلى درجة كبيرة باللغة الطبيعية التي يستخدمها الإنسان في حياته للتواصل، والتخاطب مع الآخرين .
ومن مميزات اللغات العليا التي تميزها من لغات المستوى البسيط، بالإضافة إلى ما سبق، أن هذه اللغات غير مرتبطة بجهاز معين . أي يمكننا تنفيذ البرنامج المكتوب بلغة من لغات المستوى العالي، كالفورتران أو الكوبول أو البيسك على أكثر من جهاز، كما يمكن استخدام أكثر من لغة ترجمة على حاسب معين . كذلك، فإن اكتشاف الأخطاء وتصحيحها أصبح أكثر سهولة بسبب سهولة قراءة البرامج وتتبعها وفهمها .
اللغات كالكوبول والفورتران والبيسك هى الغات العليا الموجهة نحو إجراءات الحل ، PROCEDURE - ORIENTED LANGUAGES ، وهي اللغات التي يعطي فيها المبرمج التعليمات خطوة خطوة .
ويمر البرنامج المكتوب بلغات المستوى العالي بثلاث مراحل قبل أن يكون جاهزاً للتنفيذ .
أولا
الترجمة : تحويل البرنامج المكتوب بلغة المستوى العالي إلى لغة الآلة .
ثانيا
ـ الربط LINKING : ربط الروتينات المكتبية الكائنة بالمكتبة، والتعليمات الضرورية بالبرنامج .
ثالثا
التحميل LOADING : يقوم البرنامج بتحميل شفرة الهدف والروتينات المكتبية، والتعليمات على الذاكرة الرئيسة بغرض التنفيذ .
وكانت اللغات تصنف حسب قوتها إلى لغات أعمال، أو لغة علمية أو لغات مبتدئين ـ
معظم اللغات يمكن استخدامها بكفاءة في تطبيق أنواع التطبيقات كافة، ومن أشهر لغات المستوى العالي :
لغة الكوبول COBOL :
وكلمة COBOL هي اختصار للعبارة الإنجليزية Common Business Oriented Language ، وقد طورت وصممت هذه اللغة من لدن لجنة من مصنعي أنظمة الحاسب الآلي ومطوريها عام 1960م تسمى لجنة CODASYL اختصاراً لـ Conference of Data System Languages .
وينتشر استخدام لغة كوبول على نطاق واسع عالمياً حيث تستخدم في البنوك وفي المنظمات الحكومية، وتستخدم على حاسبات كبيرة أو على حاسبات شخصية .
وتتميز لغة كوبول بقدرتها على التعامل مع الملفات؛ لذا اشتهرت بأنها لغة أعمال .
لغة الفورتران FORTRAN :
وهي اختصار عبارة FORmula TRANSlation ، وتعد لغة FORTRAN أقدم اللغات ذات المستوى العالي، وقد ظهرت هذه اللغة في منتصف الستينات، حيث بدئ عام 1954 بالعمل على تطوير لغة برمجة تقبل برنامجا مكتوبا بلغة قريبة من لغة الإنسان، ويحوله إلى شفرة قابلة للتنفيذ على الحاسب الآلي، وبعد 3 سنوات أي في عام 1957م . ظهر أول مفسر فورتران.
تتميز لغة FORTRAN بقدراتها على إجراء العمليات الحسابية المعقدة وحل المعادلات الرياضية .
لغة البيسك BASIC LANGAUGE :
وهي اختصار للعبارة الإنجليزية Beginer's All Purpose Symbolic In struction Code أي اللغة المتعدد الأغراض للمبتدئين، وتأتي كلمة BASIC التي تعني الأساس لتحقيق المعنى نفسه، فهذه اللغة ونظراً لبساطة تعليماتها ومحدوديتها فإنها تعد لغة مناسبة للتعلم من قبل المبتدئين في عالم الحاسب الآلي والبرمجة، وتستخدم هذه اللغة في معظم الحاسبات .
وتستخدم لغة Basic الحديثة في مجال الأعمال لقدرتها على التعامل مع الملفات، وكذا في العمليات الرياضية من قبل العلماء والمهندسين لامتلاكها كثيراً من الوظائف للقيام بمثل تلك العمليات المعقدة .
لغة باسكال PASCAL :
وسميت باسم العالم الفرنسي الرياضي الفذ Blaise Pascal ، وصممت هذه اللغة من قبل العالم السويسري Niklaus Wirth ، وطرحت عام 1971م، وتمتاز لغة PASCAL بالسهولة، واختصار الكلمات فيها إلى حد كبير، وبنيتها التركيبية وقوة البرامج الفرعية، واستخدام المؤشرات Pointers ، وقد ظهرت نسخ جديدة من Pascal امتازت بتلافي العيوب في النسخ السابقة، ويعد TurboPascal من شركة Borland من البرامج المستخدمة بكثرة بين المبتدئين والتخصصين في البرامج، وتنافس هذه اللغة لغة Basic في كثرة المستخدمين لتوافر كثير من المميزات فيها، وتستخدم هذه اللغة من قبل الطلاب والمهندسين، كما تستخدم في قطاع الأعمال التجارية .
لغة سي C :
طورت هذه اللغة في معامل Bell من قبل Dennis Ritchie وهي تطوير لنسخة قديمه تسمى B من لغة BCPL التي ظهرت عام 1969م . لذا سميت هذه النسخة اللاحقة بـ C .
وتشتهر لغة C باستخدامها كلغة برمجة نظم system software حيث تستخدم لكتابة برامج النظم التشغيلية . إذ إنها تعد لغة قريبة، وتشبه إلى حد كبير لغة التجميع As-sembly وتمتاز بسرعتها الكبيرة، كما تملك مجموعة جيدة من التعليمات، كما أنها لغة قابلة للنقل من جهاز إلى آخر لصغر الجزء الواجب نقله منها، وتعد لغة C من اللغات التركيبية Structured Language .
وازداد اهتمام محترفي البرمجة بلغة الـC ، والنسخ المحسنة منها C+ , C++ . إذ إن معظم التطبيقات تكتب بها .
لغات الجيل الرابع : Fourth-Generation language (4GL) :
سميت بهذا الاسم نسبة إلى الجيل التي ظهرت فيه، مثل هذه اللغات التي تتصف بقلة التعليمات التي يكتبها المبرمج لتحقيق هدف ما ، فما كان يتطلب مئات الأسطر من لغة بيسك أو الآلاف من لغة كوبول باستخدام عدد بسيط من الأسطر في هذه اللغات .
تمتاز هذه اللغات بعدة مزايا :
1ــ إنها لغة موجهة للنتائج أي إن المبرمج يهتم بطلب ما يريده من الكمبيوتر، دون أن يوجهه لكيفية القيام بذلك .
2ــ كتابة البرامج وصيانتها أكثر سهولة .
3ــ سهلة الاستخدام، وتتطلب قليلاً من التدريب على استخدامها، سواء كان للبرمجة أو غيرها .
4ــ لم يعد المستخدم بحاجة إلى التفكير في الأجهزة أو هيكلية البرنامج .
وقد بدأت لغات الجيل الرابع بالانتشار بين المبرمجين، وبشكل كبير جداً لما توفره لغات البرمجة هذه من سهولة في معاملة الملفات، وربط هذه الملفات بعضها مع بعض بغرض التحديث أو طباعة التقارير .
كما توفر هذه اللغات قوة في المشاركة في الموارد البرمجية وخصوصاً الملفات، ومن أمثال هذه اللغات لغة Dbase من Borland ، ولغة Foxpro من Microsoft ، و Oracle من Ingress، وتستخدم لغة الاستفسار المهيكلة SQL Structured Query Language في عمليات بناء قواعد المعلومات وتحديثها، وتوفير الحماية اللازمة لها .
ما هي SQL ؟
SQL هي اختصار للعبارة الإنجليزية Structured Query Language أي لغة الاستفسار المهيكلة، وهي عبارة عن مجموعة من التعليمات القريبة من اللغة الطبيعية التي توجه نظام إدارة قواعد البيانات DBMS للقيام بعمليات بناء قواعد البيانات، وتحديثها والبحث فيها، وعمل قواعد الحماية للبيانات .
وتمتاز لغة الاستفسار SQL بالآتي :
1ــ لغة قريبة من اللغة الطبيعية .
2ــ تستطيع الحصول على أية بيانات من قاعدة البيانات . إذ يمكن الحصول على بيانات ملف كامل أو بعض الحقول من ملف أو مجموعة ملفات .
3ــ يهتم المستخدم بتعريف احتياجه What you want، ولا يهتم بكيفية الحصول على أو من أين ؟ How or Where? .
اللغات الطبيعية Natural Language أو لغات الجيل الخامس :
ويقصد بها لغة الإنسان أي إيجاد لغة مبرمجة نستطيع بها توجيه الحاسب للقيام بما نريد من أعمال، وذلك باستخدام التعبيرات الشائعة ((اطبع تقريراً يحوي اسم الطالب والدرجة))،فالمستخدم ما عليه سوى طباعة الأمر أو إملائه للحاسب الذي يلبي الطلب .
فالمستخدم يستطيع إملاء النص وكتابته بعبارات متعدد تحمل المعنى نفسه، كأن يقول ((اطبع الاسم والدرجة لجميع الطلاب)) أو ((اطبع اسم الطالب ودرجة الاختبار للجميع))، فالطلبان لهما المعنى نفسه، وإن اختلفا في الصياغة، فلغات البرمجة هذه قادرة على فهم تراكيب الجمل المختلفة، وإن اختلفت اللهجات أو كان هناك أخطاء لغوية، وإذا لم يفهم الحاسب المقصود يقوم بتقديم أسئلة لمزيد من الوضوح والوصول إلى الهدف .
والأبحاث في مجال اللغات الطبيعية هو من المجالات التي يبحثها علم الذكاء الاصطناعي . A.I إذ إن فهم اللغة الطبيعية يحتاج إلى كثير من الخبرات والعلاقات في ربط الجمل وتحليل كل جملة لاستنتاج المعنى الصحيح، ومن ثم تقديم رد الفعل المناسب .
لغات الإنترنت :
لغة HTML : وهي إحدى اللغات المستخدمة لإنشاء صفحات الويب www .
إن (Hypertext Morkup Language) عبارة عن لغة تحوي مجموعة من الأوامر تؤدي إلى تكوين صفحات الويب، إن إنشاء صفحة بواسطة تركيبة Ascii على منسق الكلمات يمكن أن تحول إلى صفحة على الويب بإضافة بعض أوامر Html .
إن أوامر Html تمكن المستخدم من تنفيذ عدد من العمليات على صفحات الويب منها :
ـــ تحديد حجم النص وطريقة عرضه .
ـــ إنشاء الروابط مع الوثائق والمستندات الأخرى .
ـــ إنشاء نماذج تفاعلية مع الصفحة .
ـــ توفير الدعم للوسائط المتعددة كالفيديو والصوت والصورة .
لغة جافا Java : وهي من اللغات المستخدمة للانترنت ولصفحات الويب في www وتهدف لغة البرمجة هذه إلى إضافة الحيوية إلى صفحات الويب عبر النصوص المتحركة والرسوم التي تتحرك بشكل تفاعلي والوسائط المتعددة .
ولغة جافا طورت من قِبَل شركة Sun Microsystems على غرار لغة C++ وتقوم الوثائق المنشأة بلغة الترميز النصي Html باستدعاء برامج جافا كما يمكن تشغيلها بصورة منفردة .
المصدر كتاب تعلم البرمجه
1ـ لغة الآلة :
وتسمى اللغة الثنائية
تتكون من سلسلة من 0 و 1، وهي اللغة الوحيدة التي يفهمها الحاسب الآلي، حيث تحول جميع اللغات إلى لغة الآلة، حتى تتمكن معدات الحاسب الآلي من التفاهم معها، ولأنها تتكون من صِفر وواحد، لذا فقد تميزت هذه اللغة بالصعوبة نظراً لما تتطلبه من حفظ ودقة في كتابة سلسلة طويلة من صِفر وواحد بترتيب معين، مما ينتج عنه أخطاء كثيرة من الترميز، ويجب أن يحدد المبرمج كل شيء، فكل خطوة يجب أن ينفذها البرنامج يجب أن ترمز، لذا فالمبرمج يجب أن يكون على علم بتركيب الحاسب الداخلي، والعناوين الرقمية لمواقع التخزين، سواء للبيانات أو التعليمات، كما أن لكل جهاز لغة آلة تختلف عن الجهاز الآخَر بحسب النوع والتركيب مما يعني أنه يجب كتابة البرنامج بشكل كامل مرة أخرى عند الرغبة في تنفيذِه على جهاز آخر، ونتيجة لهذه الصعوبات فقد ظهرت طرق أخرى لتمثيل الترميز الثنائي، كالنظام الثماني OCTAL والستة عشري HEX-ADECIMAL بدلا من 1، 0 فالنظام الستة عشري يتكون من ستة عشر رمزاُ هي : 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 A.B,C,D,E,F .
مما يساعد على سهولة قراءة التعليمات المكتوبة وحفظها بهذه اللغة، فبدلا من كتابة 16 رقماً في سلسلة يمكن الاستعاضة عنها بأربعة رموز من رموز النظام التشغيل الستة عشري .
2ـ لغة التجميع :
أول لغة ترميز، تستخدم الرموز SYMBOLIC CODE للتعبير عن تعليمات لغة الآلة، وذلك لمواجهة صعوبة الترميز بلغة الآلة، ولغة التجميع لغة قريبة من لغة الآلة التي يفهمها الحاسب الآلي، وتسمى هذه اللغات بلغات المستوى البسيط .
ويتم استعمال مختصرات ورموز يسهل حفظها وكتابتها لكل تعليمة من تعليمات لغة الآلة، ولغة التجميع كما في لغة الآلة مصممة للعمل على حاسب معين، مما يوفر قدرة أكبر على استغلال موارد الحاسب الآلي ووحدة المعالجة المركزية بشكل أفضل، ويقوم البرنامج المسمى المجمع ASSEMBLER بترجمة البرنامج المكتوب بلغة المجمع إلى لغة الآلة .
3 ـ اللغات العليا :
بإمكان المبرمج كتابة البرنامج دون معرفة تفاصيل كيفية قيام الحاسب بهذه العمليات، كمواقع التخزين وتفاصيل الجهاز الدقيقة، وتعبيرات لغات المستوى العالي هي تعبيرات شبيهة إلى درجة كبيرة باللغة الطبيعية التي يستخدمها الإنسان في حياته للتواصل، والتخاطب مع الآخرين .
ومن مميزات اللغات العليا التي تميزها من لغات المستوى البسيط، بالإضافة إلى ما سبق، أن هذه اللغات غير مرتبطة بجهاز معين . أي يمكننا تنفيذ البرنامج المكتوب بلغة من لغات المستوى العالي، كالفورتران أو الكوبول أو البيسك على أكثر من جهاز، كما يمكن استخدام أكثر من لغة ترجمة على حاسب معين . كذلك، فإن اكتشاف الأخطاء وتصحيحها أصبح أكثر سهولة بسبب سهولة قراءة البرامج وتتبعها وفهمها .
اللغات كالكوبول والفورتران والبيسك هى الغات العليا الموجهة نحو إجراءات الحل ، PROCEDURE - ORIENTED LANGUAGES ، وهي اللغات التي يعطي فيها المبرمج التعليمات خطوة خطوة .
ويمر البرنامج المكتوب بلغات المستوى العالي بثلاث مراحل قبل أن يكون جاهزاً للتنفيذ .
أولا
الترجمة : تحويل البرنامج المكتوب بلغة المستوى العالي إلى لغة الآلة .
ثانيا
ـ الربط LINKING : ربط الروتينات المكتبية الكائنة بالمكتبة، والتعليمات الضرورية بالبرنامج .
ثالثا
التحميل LOADING : يقوم البرنامج بتحميل شفرة الهدف والروتينات المكتبية، والتعليمات على الذاكرة الرئيسة بغرض التنفيذ .
وكانت اللغات تصنف حسب قوتها إلى لغات أعمال، أو لغة علمية أو لغات مبتدئين ـ
معظم اللغات يمكن استخدامها بكفاءة في تطبيق أنواع التطبيقات كافة، ومن أشهر لغات المستوى العالي :
لغة الكوبول COBOL :
وكلمة COBOL هي اختصار للعبارة الإنجليزية Common Business Oriented Language ، وقد طورت وصممت هذه اللغة من لدن لجنة من مصنعي أنظمة الحاسب الآلي ومطوريها عام 1960م تسمى لجنة CODASYL اختصاراً لـ Conference of Data System Languages .
وينتشر استخدام لغة كوبول على نطاق واسع عالمياً حيث تستخدم في البنوك وفي المنظمات الحكومية، وتستخدم على حاسبات كبيرة أو على حاسبات شخصية .
وتتميز لغة كوبول بقدرتها على التعامل مع الملفات؛ لذا اشتهرت بأنها لغة أعمال .
لغة الفورتران FORTRAN :
وهي اختصار عبارة FORmula TRANSlation ، وتعد لغة FORTRAN أقدم اللغات ذات المستوى العالي، وقد ظهرت هذه اللغة في منتصف الستينات، حيث بدئ عام 1954 بالعمل على تطوير لغة برمجة تقبل برنامجا مكتوبا بلغة قريبة من لغة الإنسان، ويحوله إلى شفرة قابلة للتنفيذ على الحاسب الآلي، وبعد 3 سنوات أي في عام 1957م . ظهر أول مفسر فورتران.
تتميز لغة FORTRAN بقدراتها على إجراء العمليات الحسابية المعقدة وحل المعادلات الرياضية .
لغة البيسك BASIC LANGAUGE :
وهي اختصار للعبارة الإنجليزية Beginer's All Purpose Symbolic In struction Code أي اللغة المتعدد الأغراض للمبتدئين، وتأتي كلمة BASIC التي تعني الأساس لتحقيق المعنى نفسه، فهذه اللغة ونظراً لبساطة تعليماتها ومحدوديتها فإنها تعد لغة مناسبة للتعلم من قبل المبتدئين في عالم الحاسب الآلي والبرمجة، وتستخدم هذه اللغة في معظم الحاسبات .
وتستخدم لغة Basic الحديثة في مجال الأعمال لقدرتها على التعامل مع الملفات، وكذا في العمليات الرياضية من قبل العلماء والمهندسين لامتلاكها كثيراً من الوظائف للقيام بمثل تلك العمليات المعقدة .
لغة باسكال PASCAL :
وسميت باسم العالم الفرنسي الرياضي الفذ Blaise Pascal ، وصممت هذه اللغة من قبل العالم السويسري Niklaus Wirth ، وطرحت عام 1971م، وتمتاز لغة PASCAL بالسهولة، واختصار الكلمات فيها إلى حد كبير، وبنيتها التركيبية وقوة البرامج الفرعية، واستخدام المؤشرات Pointers ، وقد ظهرت نسخ جديدة من Pascal امتازت بتلافي العيوب في النسخ السابقة، ويعد TurboPascal من شركة Borland من البرامج المستخدمة بكثرة بين المبتدئين والتخصصين في البرامج، وتنافس هذه اللغة لغة Basic في كثرة المستخدمين لتوافر كثير من المميزات فيها، وتستخدم هذه اللغة من قبل الطلاب والمهندسين، كما تستخدم في قطاع الأعمال التجارية .
لغة سي C :
طورت هذه اللغة في معامل Bell من قبل Dennis Ritchie وهي تطوير لنسخة قديمه تسمى B من لغة BCPL التي ظهرت عام 1969م . لذا سميت هذه النسخة اللاحقة بـ C .
وتشتهر لغة C باستخدامها كلغة برمجة نظم system software حيث تستخدم لكتابة برامج النظم التشغيلية . إذ إنها تعد لغة قريبة، وتشبه إلى حد كبير لغة التجميع As-sembly وتمتاز بسرعتها الكبيرة، كما تملك مجموعة جيدة من التعليمات، كما أنها لغة قابلة للنقل من جهاز إلى آخر لصغر الجزء الواجب نقله منها، وتعد لغة C من اللغات التركيبية Structured Language .
وازداد اهتمام محترفي البرمجة بلغة الـC ، والنسخ المحسنة منها C+ , C++ . إذ إن معظم التطبيقات تكتب بها .
لغات الجيل الرابع : Fourth-Generation language (4GL) :
سميت بهذا الاسم نسبة إلى الجيل التي ظهرت فيه، مثل هذه اللغات التي تتصف بقلة التعليمات التي يكتبها المبرمج لتحقيق هدف ما ، فما كان يتطلب مئات الأسطر من لغة بيسك أو الآلاف من لغة كوبول باستخدام عدد بسيط من الأسطر في هذه اللغات .
تمتاز هذه اللغات بعدة مزايا :
1ــ إنها لغة موجهة للنتائج أي إن المبرمج يهتم بطلب ما يريده من الكمبيوتر، دون أن يوجهه لكيفية القيام بذلك .
2ــ كتابة البرامج وصيانتها أكثر سهولة .
3ــ سهلة الاستخدام، وتتطلب قليلاً من التدريب على استخدامها، سواء كان للبرمجة أو غيرها .
4ــ لم يعد المستخدم بحاجة إلى التفكير في الأجهزة أو هيكلية البرنامج .
وقد بدأت لغات الجيل الرابع بالانتشار بين المبرمجين، وبشكل كبير جداً لما توفره لغات البرمجة هذه من سهولة في معاملة الملفات، وربط هذه الملفات بعضها مع بعض بغرض التحديث أو طباعة التقارير .
كما توفر هذه اللغات قوة في المشاركة في الموارد البرمجية وخصوصاً الملفات، ومن أمثال هذه اللغات لغة Dbase من Borland ، ولغة Foxpro من Microsoft ، و Oracle من Ingress، وتستخدم لغة الاستفسار المهيكلة SQL Structured Query Language في عمليات بناء قواعد المعلومات وتحديثها، وتوفير الحماية اللازمة لها .
ما هي SQL ؟
SQL هي اختصار للعبارة الإنجليزية Structured Query Language أي لغة الاستفسار المهيكلة، وهي عبارة عن مجموعة من التعليمات القريبة من اللغة الطبيعية التي توجه نظام إدارة قواعد البيانات DBMS للقيام بعمليات بناء قواعد البيانات، وتحديثها والبحث فيها، وعمل قواعد الحماية للبيانات .
وتمتاز لغة الاستفسار SQL بالآتي :
1ــ لغة قريبة من اللغة الطبيعية .
2ــ تستطيع الحصول على أية بيانات من قاعدة البيانات . إذ يمكن الحصول على بيانات ملف كامل أو بعض الحقول من ملف أو مجموعة ملفات .
3ــ يهتم المستخدم بتعريف احتياجه What you want، ولا يهتم بكيفية الحصول على أو من أين ؟ How or Where? .
اللغات الطبيعية Natural Language أو لغات الجيل الخامس :
ويقصد بها لغة الإنسان أي إيجاد لغة مبرمجة نستطيع بها توجيه الحاسب للقيام بما نريد من أعمال، وذلك باستخدام التعبيرات الشائعة ((اطبع تقريراً يحوي اسم الطالب والدرجة))،فالمستخدم ما عليه سوى طباعة الأمر أو إملائه للحاسب الذي يلبي الطلب .
فالمستخدم يستطيع إملاء النص وكتابته بعبارات متعدد تحمل المعنى نفسه، كأن يقول ((اطبع الاسم والدرجة لجميع الطلاب)) أو ((اطبع اسم الطالب ودرجة الاختبار للجميع))، فالطلبان لهما المعنى نفسه، وإن اختلفا في الصياغة، فلغات البرمجة هذه قادرة على فهم تراكيب الجمل المختلفة، وإن اختلفت اللهجات أو كان هناك أخطاء لغوية، وإذا لم يفهم الحاسب المقصود يقوم بتقديم أسئلة لمزيد من الوضوح والوصول إلى الهدف .
والأبحاث في مجال اللغات الطبيعية هو من المجالات التي يبحثها علم الذكاء الاصطناعي . A.I إذ إن فهم اللغة الطبيعية يحتاج إلى كثير من الخبرات والعلاقات في ربط الجمل وتحليل كل جملة لاستنتاج المعنى الصحيح، ومن ثم تقديم رد الفعل المناسب .
لغات الإنترنت :
لغة HTML : وهي إحدى اللغات المستخدمة لإنشاء صفحات الويب www .
إن (Hypertext Morkup Language) عبارة عن لغة تحوي مجموعة من الأوامر تؤدي إلى تكوين صفحات الويب، إن إنشاء صفحة بواسطة تركيبة Ascii على منسق الكلمات يمكن أن تحول إلى صفحة على الويب بإضافة بعض أوامر Html .
إن أوامر Html تمكن المستخدم من تنفيذ عدد من العمليات على صفحات الويب منها :
ـــ تحديد حجم النص وطريقة عرضه .
ـــ إنشاء الروابط مع الوثائق والمستندات الأخرى .
ـــ إنشاء نماذج تفاعلية مع الصفحة .
ـــ توفير الدعم للوسائط المتعددة كالفيديو والصوت والصورة .
لغة جافا Java : وهي من اللغات المستخدمة للانترنت ولصفحات الويب في www وتهدف لغة البرمجة هذه إلى إضافة الحيوية إلى صفحات الويب عبر النصوص المتحركة والرسوم التي تتحرك بشكل تفاعلي والوسائط المتعددة .
ولغة جافا طورت من قِبَل شركة Sun Microsystems على غرار لغة C++ وتقوم الوثائق المنشأة بلغة الترميز النصي Html باستدعاء برامج جافا كما يمكن تشغيلها بصورة منفردة .
المصدر كتاب تعلم البرمجه
رد: علم البرمجيات (الكيان المعنوي) Software
.ما هو الحاسب الالــى ( الكمبيوتر)؟
الحاسب الالـى هو جهاز متطور صمم ليساعد الأنسان فى أداء العمليات الحسابية والمنطقيــة المعقدة والتى تحتاج إلى وقت طويل ومجهود كبير لإنجازها. ليس معنى ذلك ان الإنسان لا يستطيع ان يؤدى المهام التى يؤديها الحاسب بل ان الصحيح ان الحاسب دون علم الانسان وخبرته ليس له قيمة.
ولكن الحاسب لديه سرعة جبارة فى اداء المهام التى يسندها اليه الانسان , حيث ان سرعة الحاسب تقدر بملايين أضعاف سرعة الانسان. لذلك كان استخدام الحاسب ضرورياً لتوفير الوقت والجهد والتكاليف.وتتلخص طبيعة عمل الحاسب فى انه يقوم بمعالجة البيانات التى يدخلها الإنسان إليـه من مصادر متعددة وفى صور مختلفة وهو ما يطلق عليه فى علم الحاسب (Data) إلى معلومات قيمة ومفيده وهو ما يطلق عليه فى علم الحاسب (Information) مع إمكانية حفظ وتخزين كم هائل من هذه البيانات او المعلومات.
فمثلاً لو اردنا ان نجعل الحاسب يقوم بعملية حسابية مثل الجمع أو الضرب او ما شابه من العمليات المعروفة , توجب علينا أولاً ان نعطيه أطراف العمليه الحسابيه ثم نبين له كيف سيقوم بحساب هذه العملية ثم نوجهه الى كيفية انتفاعنا بالناتج من هذه العملية (هل نريده ان يعرض لنا هذا الناتج على الشاشة ام نريده ان يطبعها لنا على ورقة ام نريده ان يحفظ النتيجة لحين إستغلالها فى وقت أخر). وهنا يجب ان نوضح بعض المصطلحات التى يستخدمها محترفى الحاسب الالى مثل :
1- البيانات (Data) هى كل ما يتم إدخاله الى الحاسب الألى ليقوم بتحويله الى شئ مفيد للمستخدم بعد معالجتها ببرامج الحاسب المختلفة. أو لغرض تخزينها فى صورة الكترونية يتم إستخدامها وتحويلها فيما بعد الى أشياء مهمة وذات قيمة . ويمكن تصورها كالمادة الخام التى دون معالجتها بالشكل الصحيح لا تمثل قيمة فى حد ذاتها. وللبيانات (Data) أشكال وصور مختلفة فممكن ان تكون البيانات نصوص أو ارقام وممكن ان تكون صوراً أو مقاطع فيديو وممكن ان تكون مادة صوتية وهكذا الى أخره من الصور المختلفة.
2- المعالجــة (Processing) وهو ما يتم على البيانات الخام المدخلة إلى الكمبيوتر من أجل تحويلها الى معلومات قيمة ومفيدة للمستخدم. وتتم معالجة البيانات بواسطة برامج الحاسب المختلفة والت صممت لتتعامل مع البيانات حسب طبيعتها و الصورة التى اُدخلت بها الى الحاسب.
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
3- المعلومات (Information) وهى الناتج المفيد القيم الذى تم انتاجه بعد معالجة البيانات الخام التى ادخلت الى الحاسب مسبقاً. وهذه المعلومات يمكن الاستفاده منها بالشكل الذى يرغبه المستخدم فمثلاً يمكن ان تكون معروضة على الشاشة وممكن ان تكون مطبوعة أو حتى من الممكن أن تكون مخزنة ومحفوظة لحين إستغلالها فى اى وقت.
مراحل معالجة البيانات
مما يتكون الحاسب الالـى
تُقســم أجزاء ومكونات الحاسب منطقيا أو حسب طبيعة عملها الى ستة وحدات رئيسية وهى كالأتــى:
1- وحدة إدخال البيانات (Input Unit)
وهى الوحدة المسئولة عن إستقبال البيانات مع إختلاف طبيعتها وصورها وتوصيلها إلى الوحدات الأخرى لتتم معالجتها. ويتم إستقبال البيانات من خلال أجهزة إدخال البيانات المناسبة لنوعية وصورة البيانات المدخلة الى الحاسب فمثلاً تستخدم لوحة المفاتيح (Key Board) إذا كانت البيانات المدخلة فى صورة نصوص أو أرقام, ويستخدم المايكروفون (MIC) إذا كانت البيانات فى صورة مادة صوتية . ويستخدم المصور الضوئى (Scanner) فى حالة إذا كانت البيانات فى صورة صور ضوئية أو صور ورقية. وهكذا كلما أختلفت نوعية البيانات يختلف الجهاز الذى يستخدم فى إدخالها إلى الحاسب. وكلما تطور الحاسب نجد ان هناك أجهزة إدخال جديدة ظهرت لتناسب الانواع المختلفة من البيانات.
2- وحدة الحساب والمنطق (Arithmetic and Logical Unit - ALU)
وهى الوحدة المسئولة عن إجراء العمليات الحسابية والمنطقية مثل عمليات الضرب ,القسمة,الجمع والطرح وغيرها من العمليات الحسابية المعروفة مع ذيادة تعقيدهـا. بالإضافة إلى مسئولية هذه الوحدة عن القرارات المنطقية مثل المقارنة بين عنصرين أو قيمتين وتحديد ما إذا كانو متساويين أم أن أحدهما أكبر من الأخر.
3- وحدة الذاكرة الرئيسية (Main Memory Unit)
وهى المكان الذى يتم فيه تخزين البيانات المدخلة عبر أجهزة إدخال البيانات بشكل مؤقت لحين معالجتها وإجراء العمليات الحسابية والمنطقية عليها. وايضاً تستخدم لتخزين المعلومات الناتجة من عملية المعالجة لحين إخراجها إلى المستخدم أو لحين تخزينها وحفظها بشكل دائم فى وحدات التخزين الدائمة (Secondary Storage). وتتميز هذه الذاكرة الرئيسية بأنها قليلة السعة إذا ما قورنت بوحدات التخزين الدائمة (Secondary Storage) ولكنها فى نفس الوقت سريعة جداً فى التخزين أو فى استرجاع البيانات والمعلومات المخزنة عليها.
4- وحدة التخزين الدائم للبيانات (Secondary Storage Unit)
وتستخدم هذه الوحدة لتخزين البيانات والمعلومات بشكل دائم يُمكن من إستخدامها والاستفادة منها فى أى وقت لاحق. وتتميز هذه الوحدة التخزينية بالسعــة الضخمة التى تمكن من حفظ بلايين المعلومات وتنظيمها بالشكل المرغوب فيه ولمدد طويلة. كما تتميز أيضاً بتنوع أشكالها فمثلاً هناك ما يعرف بالهارد ديسك(Hard Desk) والذى يعتبر الصورة البديهية لوحدات التخزين الدائمة وعادة لا يخلو اى جهاز حاسب اّلى من هذه الوحدة وتتميز بسعتها الكبيرة جداً والتى لا تكف الشركات العاملة فى مجال تصنيعها عن زيادة أحجامها بشكل مستمر وسريع جداً. وهناك ما يعرف بالإسطوانات (Compact Drive - CD) التى تعتمد على تكنولوجيا الليز فى التسجيل عليها والقراءة منها. وهناك العديد من الأشكال الأخرى التى تُستخدم لحفظ البيانات والمعلومات بشكل ثابت يُمكن من نقلها من مكان إلى أخر.
5- وحدة التحكم المركزية (Central processing Unit - CPU )
تعتبر هذه الوحدة هى المدير لجهاز الحاسب الالى وهى المنسق لعمل الوحدات الأخرى. يمكن ان تتخيل هذه الوحدة كما لوكانت مديراً لاوركسترا تعزف سيمفونية أو لحناً . فكلاً من العازفين يستطيع ان يعزف بمفرده ولكن لن يؤدى هذا الى لحن بديعاً او عملاً فنياً ذو قيمة, ولكن ستتزاحم الأصوات وتشُز النغمات. ولكن بوجود القائد ينتظم العمل وينتج إنتاجاً مفيداً ذو قيمة. وهكذا هو دور وحدة التحكم, فهى التى تأمر وحدة إدخال البيانات (Input Unit) بأن تأخذ مدخلات وان تحفظها فى الذاكرة الرئيسية (Main Memory) بل و تحدد لها فى أى مكان فى الذاكرة سيكون التخزين.وهى التى تأمر وحدة الحساب والمنطق(ALU) بأن تأخذ البيانات المخزنة فى الذاكرة الرئيسية فى أماكن محددة وأن تجرى عليها عمليات حسابية أو منطقية معينة. وهى التى تأمر وحدة إخراج البيانات(Output Unit) بإخراج النتائج والمعلومات الى المستخدم فى الصورة التى يرغبها المستخدم , وهى التى تقوم بحفظ الملفات والمعلومات بشكل دائم على وحدة التخزين الدائمة(Secondary Storage) وهى التى تستدعي هذه البيانات المخزنة مرة أخرى فى حالة الرغبة فى تعديلها أو إستغلالها فى غرض أخر. وهكذا فهى بالفعل العقل المدبر والمتحكم فى كل شئون الحاسب الالـى.
6- وحدة إخراج البيانات (Output Unit)
هذه الوحدة هى المسئولة عن إخراج المعلومات النهائية بعد ان تمت عليها عمليات المعالجة او مايسمى (Processing) . ويمكن ان تخرج هذه المعلومات فى صور مختلفة حسب رغبة المستخدم وحسب توفرأجهزة إخراج البيانات المناسبة (Output Devices). فمثلاً ممكن ان يكون إخراج البيانات فى صورة عرض على الشاشة او فى صورة طباعة على الطابعة او فى صورة رسومات على اجهزة الرسم الهندسى او غيرها من الاشكال المتعددة.
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
أمثلة لبعض أجهزة إدخال وإخراج البيانات (Input - Output Devices
كيف يعمل الحاسب الألى؟
يتكون الحاسب الألى من مجموعة كبيرة من الأجزاء والوحدات التى تؤدى كل منها وظيفة ودور محددين. و يطلق المتخصصين فى مجال الحاسب الألى على هذه الأجزاء مُجمعة مصطلح (Hardware). إذا فكلمة ال (Hardware) تعنى كل الاجزاء الاجهزة والمكونات الاساسية للحاسب الألى وتشمل على سبيل المثال لا الحصر (لوحة المفاتيح – المؤشر-جهاز قراءة الاسطوانات المدمجة- الشاشة – إلخ...) بالإضافة إلى الإجهزة الإضافية المكملة مثل (الطابعــة, السماعات, المايكروفون – إلخ ...) .
ولكن كل هذه الأجهزة تحتاج الى أوامر لتشغيلها وحسن إستغلالها للوصول إلى الفائدة منها, فهى وحدها لاتمثل قيمة فى حد ذاتها لذا كان من الضرورى وجود برامج تشغيل لكل هذه الأجهزة. ويطلق المتخصصين فى مجال الحاسب الالى على هذه البرامج مصطلح (Software). إذاً فكلمة (Software) تعنى كل البرامج والاوامر التى تستخدم لتشغيل أجزاء ومكونات الحاسب وايضاً تشمل البرامج التى تعمل على معالجة البيانات المدخلة للحصول على نتائج ومعلومات مفيدة للمستخدم.
أنظمـة تشغيل الحاسبات وكيف تتطور؟
كما اتضح لنا ان اجزاء ومكونات الحاسب الالى المختلفة الـ (Hardware) لاتعمل بمفردها ولكن تحتاج الى اوامر وبرامج لتديرها وتوظفها كما ينبغى. ولم تكن الحاسبات الالية بهذا التطور والقوة التى عليها الان فقد كانت متواضعة السرعة والسعة التخزينية وكانت تستطيع ان تؤدى وظيفة واحدة فى الوقت الواحد. بمعنى انك لو أردت ان تؤدى اكثر من عمليه حسابية مثلاً فإنه يستلزم عليك ان تأخذ دورك وتنتظر حتى يفرغ الحاسب من أداء المهمة التى شرع فيها وهكذا.
لذلك كان الناس يأتون بما يريدون تنفيذه من مهام ويسلمونها للشخص المسئول عن تشغيل الحاسب والذى عادة ما يطلق عليه الـ (Computer Operator) والذى بدوره يدخل البيانات الخاصة بكل عملية إلى الحاسب الالى فى دورها بعد انتهاء الحاسب من أداء المهمة الحالية. فتخيل كيف كانت صعوبة الامر إذا اردت ان تنفذ عشرات او مئات المهام. بمرورالوقت أتضح ان إعتمادنا على العنصر البشرى الـ (Computer Operator) فى الأنتقال بين المهام التى يقوم بأداءها الحاسب الالى قد يضيع الكثير من الوقت فبدأ إشتغال العلماء بأن يعتمدوا على برنامج يقوم هو بإدارة عملية تنفيذ المهام وأطلقوا عليه إسم نظام التشغيل (Operating System) . ويمكننا تعريف نظام التشغيل (Operating System) على انه نظام اّلى(Software) لإدارة كل شئون الحاسب الالى مثل تنفيذ البرامج والاوامـر والتنسيق بين المهام لضمان استمرار عمل الحاسب بشكل منتظم ومحكم.
تطوير برامج الحاسب الألــى
برامج الحاسب الالى هى عبارة عن مجموعة مسلسلة من الاوامر التى يقوم الحاسب بتنفيذها لأداء مهمة أو أكثر. عادة مايكون هناك بيانات مدخلة للبرنامج ليقوم بمعالجتها وإخراج معلومات ونتائج ذات قيمة لمستخدم هذا البرنامج.
كيف يتم كتابة برامج الحاسب الالى؟
يتم كتابة برامج الحاسب الالى بإستخدام لغات البرمجة (Programming languages) والتى هى عبارة عن مجموعة كبيرة من الاوامر والجمل التى يستخدمها المبرمج او مطور البرنامج للتعبيرعن الاشياء والمهام التى يطلب من الحاسب تنفيذها. فهى كأى لغة بها كلمات وجمل يستخدمها مجموعة من البشر للتواصل بينهم وللتعبير عن كل ما يحتاجه أحدهم من الاخر. وقد مرت لغات البرمجة بعدة مراحل حتى تصل إلى المستوى الراقى الذى هى عليه الأن. وسنسرد أهم هذه المراحل فيما يلى :
لغة الألــة (Machine Language)
وهى اللغة التى يفهما الحاسب الالى وينفذها مباشرة عن طريقة وحدة التحكم المركزية الخاصة به او ما يسمـى (Central Processing Unit ). وهى مرتبطة فى شكل ومعنى أوامرها بنوع الحاسب الذىستنفذ عليه هذه الاوامر بمعنى ان لكل نوع من انواع الحواسب لغة الة خاصة به لان هذه اللغات عادة ما يضع قواعدها واوامرها مصنعوا أجهزة الحاسب انفسهم.واوامر لغة الالة فى طبيعتها عبارة عن نصوص رقمية تتكون من رقمين 1 , 0 وهى الشكل الذى تفهمه اجزاء الحاسب وتخاطب بعضها بإستخدامه. وبما ان الحاسب لايفهم إلا لغة الالة المكونة من 1 , 0 توجب على مطور البرامج إستخدام نفس اللغة ليخبرالحاسب بما يريده وهو ما كان امراً فى غاية المشقة وهو ما جعل عدد المطورين للبرامج قليل جداً وبالتالى عدد البرامج الحاسوبية المطورة قليل جداً.
لغـة الرمـوز (Assembly Languages)
نتيجة لصعوبة التعامل بلغة الالـة (Machine Language) إتجه مطوروا البرامج الى تسهيل مهتهم فى التعامل مع الحاسب فبدلاً من إستخدام الأوامر الصعبة المكونة من 1 , 0 بدأو فى استخدام إختصارات إنجليزية سهلة للتعبير عن الاوامر الصعبة فى لغة الالـة وبعد كتابة البرنامج بإستخدام هذه الاختصارات والرموز يقوم برنامج أخر بعمل المترجم فيقوم بفك هذه الرموز وتحويل هذه الاختصارات الى لغـة الالة حتى يفهمهاالحاسب. ويطلق على هذا البرنامج المترجم (Assembler) . ونتيجة لهذا التقدم الكبير نسبياً فى هذا الوقت تطورت صناعة البرمجيات شيئاً فشيئاً لكنها ما زالت مهنة شاقة وبها الكثير من ضياع الوقت حيث انه كان يستلزم لتنفيذ مهمة واحدة كتابة الكثير من الأوامر فى صورة عدد كبير من الخطوات.
اللغات الراقيــة (High Level Languages)
بمرور الوقت اصبح طموح مطورى البرامج يتعدى كل ما انجزوه وبدأو فى تطوير لغات برمجة تشبه اللغة التى يتحاورون بها فى حياتهم العادية وهو ما أطلق عليه مصطلح(High Level Languages) وتتميز هذه اللغات بأنها سهلة الإتقان وتستطيع بإستخدام جملة واحدة تنفيذ الكثير من الأوامر مما ادى بإستخدامها إلى زيادة الإنتاج من البرامج والتطبيقات التى يحتاجها الناس فى حياتهم اليومية. ولكن كما اتفقنامسبقاً ان الحاسب لا يفهم إلا لغة الالــة, لذا لابد من وجود مترجم يحول الجمل والاوامر المكتوبة بهذه اللغات الراقية الى لغة الالــة. ويطلق على هذا الببرنام المترجم (Compiler). وسوف نتعامل فى هذه السلسلة من المقالات مع لغة ال (C) كمثال للغات الراقيـة.
ما هى المراحل التى يمر بها البرنامج قبل ان يكون جاهزاً للتنفيذ؟
1- مرحلة كتابة وتحرير البرنامج (Editing)
يمر البرنامج بعدة مراحل قبل ان يكون جاهزاً للتنفيذ بداية بمرحلـة كتابة البرنامج او ما يطلق عليها مرحلة التحرير للبرنامج (Editing) وعادة ما تتم هذه المرحلة بإستخدام برامج تحريرمخصصة لكتابة البرامج والتطبيقات بلغة برمجة معينة وتسمى (Editors) وعادة ما تكون هذه البرامج مجهزة بالعديد من الوسائل المساعدة التى تجعل مرحلة الكتابة سهلة وشبه نمطية وخالية من الاخطاء النصية فى اوامر لغة البرمجة المستخدمة وهو ما يُطلق عليه (Syntax Errors). وهذه المساعدات بدورها تجعل المبرمج يصرف اهتمامه الى التفكير فى وضع الحل المناسب للمشكلة التى من أجلها كتب البرنامج دون الانشغال بأعمال التنسيق.
2- مرحلة تحويل البرنامج إلى أوامر يفهمها الحاسب (Compilation)
بعد الانتهاء من كتابة البرنامج والتأكد من سلامته من الأخطاء النصية للاوامر والجمل, يتم تحويل البرنامج الى اللغة التى يفهما الحاسب الالى او ما يسمى بلغـة الالـة (Machine Language) لانه كما ذكرنا مسبقاً ان اللغات الراقية (High Level Languages) التى يُكتب بها البرامج هى لغات لا يفهما الحاسب الالى وإنما تُستخدم لتسهيل كتابة البرامج . ويقوم بدور الترجمة والتحويل الى لغة الالــة برنامج يسمى (Compiler).
3- مرحلة ربط البرنامج بما يحتاجه من أوامر و وظائف خارجية (Linking)
ربما يحتاج البرنامج إلى إستخدام اوامر ووظائف خارجية(Functions) كانت قدتم كتابتها وتنفيذها فى برامج أخرى وهذه ميزة واسلوب مفيد جداً لتوفير الوقت والجهد والتكلفة فبدلاً من إعادة كتابة بعض الاوامر والوظائف (Functions) مرة اخرى يمكننا استغلال ما قد تم كتابته مسبقاً. ولكن اذا تم ذللك لابد من ربط البرنامج بهذه الوظائف الخارجية والتأكد من انها تعمل بكفاءة حتى يتسنى للبرنامج العمل بطريقة صحيحة أثناء عملية التنفيذ. ويطلق على عملية الربط هذه اسم (Linking) .
4-مرحلة تحميل البرنامج إلى الذاكرة الرئيسية لتنفيذه (Loading)
بعد ترجمة البرنامج من لغات البرمجة الراقية (High Level Languages) الى لغة الالة التى يفهمها الحاسب وبعد تجهيزالبرنامج بكل ما يحتاج اليه من اوامر ووظائف خارجية, اصبح البرنامج جاهزاً للتنفيذ ولكن حتى يتسنى لوحدة التحكم المركزية او ما يطلق عليه ال (Centeral Processing Unit) لابد من تحميله من وحدة التخزين الدائمــة (Secondary Storage) إلـى وحدة الذاكرة الرئيسية القريبة من وحدة المعالجة حتى يتم التنفيذ بسرعة.
5-مرحلة تنفيذ أوامر البرنامج فعلياً (Execution)
وهى المرحلة النهائية وفيها يتم تنفيذ اوامر البرنامج بالترتيب واحداً تلو الاخر حتى الانتهاء منها جميعاً وخلال هذه المرحلة يقوم المعالج او ما يسمى بالـ (Processor) بتوجيه وحدات الادخال الى استقبال البيانات اللازمة من المستخدم من خلال أجهزة الإدخال, ويوجه وحدات الاخراج الى اخراج المعلومات الى المستخدم عبر اجهزة الإخراج المناسبة وهكذا حتى ينتهى البرنامج.
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
المراجِع:مراحل تطوير برامج الحاسب
C How To Program 5th Edition ISBN: 0132404168 © 2007, pp. 1112 by Deitel
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الحاسب الالـى هو جهاز متطور صمم ليساعد الأنسان فى أداء العمليات الحسابية والمنطقيــة المعقدة والتى تحتاج إلى وقت طويل ومجهود كبير لإنجازها. ليس معنى ذلك ان الإنسان لا يستطيع ان يؤدى المهام التى يؤديها الحاسب بل ان الصحيح ان الحاسب دون علم الانسان وخبرته ليس له قيمة.
ولكن الحاسب لديه سرعة جبارة فى اداء المهام التى يسندها اليه الانسان , حيث ان سرعة الحاسب تقدر بملايين أضعاف سرعة الانسان. لذلك كان استخدام الحاسب ضرورياً لتوفير الوقت والجهد والتكاليف.وتتلخص طبيعة عمل الحاسب فى انه يقوم بمعالجة البيانات التى يدخلها الإنسان إليـه من مصادر متعددة وفى صور مختلفة وهو ما يطلق عليه فى علم الحاسب (Data) إلى معلومات قيمة ومفيده وهو ما يطلق عليه فى علم الحاسب (Information) مع إمكانية حفظ وتخزين كم هائل من هذه البيانات او المعلومات.
فمثلاً لو اردنا ان نجعل الحاسب يقوم بعملية حسابية مثل الجمع أو الضرب او ما شابه من العمليات المعروفة , توجب علينا أولاً ان نعطيه أطراف العمليه الحسابيه ثم نبين له كيف سيقوم بحساب هذه العملية ثم نوجهه الى كيفية انتفاعنا بالناتج من هذه العملية (هل نريده ان يعرض لنا هذا الناتج على الشاشة ام نريده ان يطبعها لنا على ورقة ام نريده ان يحفظ النتيجة لحين إستغلالها فى وقت أخر). وهنا يجب ان نوضح بعض المصطلحات التى يستخدمها محترفى الحاسب الالى مثل :
1- البيانات (Data) هى كل ما يتم إدخاله الى الحاسب الألى ليقوم بتحويله الى شئ مفيد للمستخدم بعد معالجتها ببرامج الحاسب المختلفة. أو لغرض تخزينها فى صورة الكترونية يتم إستخدامها وتحويلها فيما بعد الى أشياء مهمة وذات قيمة . ويمكن تصورها كالمادة الخام التى دون معالجتها بالشكل الصحيح لا تمثل قيمة فى حد ذاتها. وللبيانات (Data) أشكال وصور مختلفة فممكن ان تكون البيانات نصوص أو ارقام وممكن ان تكون صوراً أو مقاطع فيديو وممكن ان تكون مادة صوتية وهكذا الى أخره من الصور المختلفة.
2- المعالجــة (Processing) وهو ما يتم على البيانات الخام المدخلة إلى الكمبيوتر من أجل تحويلها الى معلومات قيمة ومفيدة للمستخدم. وتتم معالجة البيانات بواسطة برامج الحاسب المختلفة والت صممت لتتعامل مع البيانات حسب طبيعتها و الصورة التى اُدخلت بها الى الحاسب.
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
3- المعلومات (Information) وهى الناتج المفيد القيم الذى تم انتاجه بعد معالجة البيانات الخام التى ادخلت الى الحاسب مسبقاً. وهذه المعلومات يمكن الاستفاده منها بالشكل الذى يرغبه المستخدم فمثلاً يمكن ان تكون معروضة على الشاشة وممكن ان تكون مطبوعة أو حتى من الممكن أن تكون مخزنة ومحفوظة لحين إستغلالها فى اى وقت.
مراحل معالجة البيانات
مما يتكون الحاسب الالـى
تُقســم أجزاء ومكونات الحاسب منطقيا أو حسب طبيعة عملها الى ستة وحدات رئيسية وهى كالأتــى:
1- وحدة إدخال البيانات (Input Unit)
وهى الوحدة المسئولة عن إستقبال البيانات مع إختلاف طبيعتها وصورها وتوصيلها إلى الوحدات الأخرى لتتم معالجتها. ويتم إستقبال البيانات من خلال أجهزة إدخال البيانات المناسبة لنوعية وصورة البيانات المدخلة الى الحاسب فمثلاً تستخدم لوحة المفاتيح (Key Board) إذا كانت البيانات المدخلة فى صورة نصوص أو أرقام, ويستخدم المايكروفون (MIC) إذا كانت البيانات فى صورة مادة صوتية . ويستخدم المصور الضوئى (Scanner) فى حالة إذا كانت البيانات فى صورة صور ضوئية أو صور ورقية. وهكذا كلما أختلفت نوعية البيانات يختلف الجهاز الذى يستخدم فى إدخالها إلى الحاسب. وكلما تطور الحاسب نجد ان هناك أجهزة إدخال جديدة ظهرت لتناسب الانواع المختلفة من البيانات.
2- وحدة الحساب والمنطق (Arithmetic and Logical Unit - ALU)
وهى الوحدة المسئولة عن إجراء العمليات الحسابية والمنطقية مثل عمليات الضرب ,القسمة,الجمع والطرح وغيرها من العمليات الحسابية المعروفة مع ذيادة تعقيدهـا. بالإضافة إلى مسئولية هذه الوحدة عن القرارات المنطقية مثل المقارنة بين عنصرين أو قيمتين وتحديد ما إذا كانو متساويين أم أن أحدهما أكبر من الأخر.
3- وحدة الذاكرة الرئيسية (Main Memory Unit)
وهى المكان الذى يتم فيه تخزين البيانات المدخلة عبر أجهزة إدخال البيانات بشكل مؤقت لحين معالجتها وإجراء العمليات الحسابية والمنطقية عليها. وايضاً تستخدم لتخزين المعلومات الناتجة من عملية المعالجة لحين إخراجها إلى المستخدم أو لحين تخزينها وحفظها بشكل دائم فى وحدات التخزين الدائمة (Secondary Storage). وتتميز هذه الذاكرة الرئيسية بأنها قليلة السعة إذا ما قورنت بوحدات التخزين الدائمة (Secondary Storage) ولكنها فى نفس الوقت سريعة جداً فى التخزين أو فى استرجاع البيانات والمعلومات المخزنة عليها.
4- وحدة التخزين الدائم للبيانات (Secondary Storage Unit)
وتستخدم هذه الوحدة لتخزين البيانات والمعلومات بشكل دائم يُمكن من إستخدامها والاستفادة منها فى أى وقت لاحق. وتتميز هذه الوحدة التخزينية بالسعــة الضخمة التى تمكن من حفظ بلايين المعلومات وتنظيمها بالشكل المرغوب فيه ولمدد طويلة. كما تتميز أيضاً بتنوع أشكالها فمثلاً هناك ما يعرف بالهارد ديسك(Hard Desk) والذى يعتبر الصورة البديهية لوحدات التخزين الدائمة وعادة لا يخلو اى جهاز حاسب اّلى من هذه الوحدة وتتميز بسعتها الكبيرة جداً والتى لا تكف الشركات العاملة فى مجال تصنيعها عن زيادة أحجامها بشكل مستمر وسريع جداً. وهناك ما يعرف بالإسطوانات (Compact Drive - CD) التى تعتمد على تكنولوجيا الليز فى التسجيل عليها والقراءة منها. وهناك العديد من الأشكال الأخرى التى تُستخدم لحفظ البيانات والمعلومات بشكل ثابت يُمكن من نقلها من مكان إلى أخر.
5- وحدة التحكم المركزية (Central processing Unit - CPU )
تعتبر هذه الوحدة هى المدير لجهاز الحاسب الالى وهى المنسق لعمل الوحدات الأخرى. يمكن ان تتخيل هذه الوحدة كما لوكانت مديراً لاوركسترا تعزف سيمفونية أو لحناً . فكلاً من العازفين يستطيع ان يعزف بمفرده ولكن لن يؤدى هذا الى لحن بديعاً او عملاً فنياً ذو قيمة, ولكن ستتزاحم الأصوات وتشُز النغمات. ولكن بوجود القائد ينتظم العمل وينتج إنتاجاً مفيداً ذو قيمة. وهكذا هو دور وحدة التحكم, فهى التى تأمر وحدة إدخال البيانات (Input Unit) بأن تأخذ مدخلات وان تحفظها فى الذاكرة الرئيسية (Main Memory) بل و تحدد لها فى أى مكان فى الذاكرة سيكون التخزين.وهى التى تأمر وحدة الحساب والمنطق(ALU) بأن تأخذ البيانات المخزنة فى الذاكرة الرئيسية فى أماكن محددة وأن تجرى عليها عمليات حسابية أو منطقية معينة. وهى التى تأمر وحدة إخراج البيانات(Output Unit) بإخراج النتائج والمعلومات الى المستخدم فى الصورة التى يرغبها المستخدم , وهى التى تقوم بحفظ الملفات والمعلومات بشكل دائم على وحدة التخزين الدائمة(Secondary Storage) وهى التى تستدعي هذه البيانات المخزنة مرة أخرى فى حالة الرغبة فى تعديلها أو إستغلالها فى غرض أخر. وهكذا فهى بالفعل العقل المدبر والمتحكم فى كل شئون الحاسب الالـى.
6- وحدة إخراج البيانات (Output Unit)
هذه الوحدة هى المسئولة عن إخراج المعلومات النهائية بعد ان تمت عليها عمليات المعالجة او مايسمى (Processing) . ويمكن ان تخرج هذه المعلومات فى صور مختلفة حسب رغبة المستخدم وحسب توفرأجهزة إخراج البيانات المناسبة (Output Devices). فمثلاً ممكن ان يكون إخراج البيانات فى صورة عرض على الشاشة او فى صورة طباعة على الطابعة او فى صورة رسومات على اجهزة الرسم الهندسى او غيرها من الاشكال المتعددة.
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
أمثلة لبعض أجهزة إدخال وإخراج البيانات (Input - Output Devices
كيف يعمل الحاسب الألى؟
يتكون الحاسب الألى من مجموعة كبيرة من الأجزاء والوحدات التى تؤدى كل منها وظيفة ودور محددين. و يطلق المتخصصين فى مجال الحاسب الألى على هذه الأجزاء مُجمعة مصطلح (Hardware). إذا فكلمة ال (Hardware) تعنى كل الاجزاء الاجهزة والمكونات الاساسية للحاسب الألى وتشمل على سبيل المثال لا الحصر (لوحة المفاتيح – المؤشر-جهاز قراءة الاسطوانات المدمجة- الشاشة – إلخ...) بالإضافة إلى الإجهزة الإضافية المكملة مثل (الطابعــة, السماعات, المايكروفون – إلخ ...) .
ولكن كل هذه الأجهزة تحتاج الى أوامر لتشغيلها وحسن إستغلالها للوصول إلى الفائدة منها, فهى وحدها لاتمثل قيمة فى حد ذاتها لذا كان من الضرورى وجود برامج تشغيل لكل هذه الأجهزة. ويطلق المتخصصين فى مجال الحاسب الالى على هذه البرامج مصطلح (Software). إذاً فكلمة (Software) تعنى كل البرامج والاوامر التى تستخدم لتشغيل أجزاء ومكونات الحاسب وايضاً تشمل البرامج التى تعمل على معالجة البيانات المدخلة للحصول على نتائج ومعلومات مفيدة للمستخدم.
أنظمـة تشغيل الحاسبات وكيف تتطور؟
كما اتضح لنا ان اجزاء ومكونات الحاسب الالى المختلفة الـ (Hardware) لاتعمل بمفردها ولكن تحتاج الى اوامر وبرامج لتديرها وتوظفها كما ينبغى. ولم تكن الحاسبات الالية بهذا التطور والقوة التى عليها الان فقد كانت متواضعة السرعة والسعة التخزينية وكانت تستطيع ان تؤدى وظيفة واحدة فى الوقت الواحد. بمعنى انك لو أردت ان تؤدى اكثر من عمليه حسابية مثلاً فإنه يستلزم عليك ان تأخذ دورك وتنتظر حتى يفرغ الحاسب من أداء المهمة التى شرع فيها وهكذا.
لذلك كان الناس يأتون بما يريدون تنفيذه من مهام ويسلمونها للشخص المسئول عن تشغيل الحاسب والذى عادة ما يطلق عليه الـ (Computer Operator) والذى بدوره يدخل البيانات الخاصة بكل عملية إلى الحاسب الالى فى دورها بعد انتهاء الحاسب من أداء المهمة الحالية. فتخيل كيف كانت صعوبة الامر إذا اردت ان تنفذ عشرات او مئات المهام. بمرورالوقت أتضح ان إعتمادنا على العنصر البشرى الـ (Computer Operator) فى الأنتقال بين المهام التى يقوم بأداءها الحاسب الالى قد يضيع الكثير من الوقت فبدأ إشتغال العلماء بأن يعتمدوا على برنامج يقوم هو بإدارة عملية تنفيذ المهام وأطلقوا عليه إسم نظام التشغيل (Operating System) . ويمكننا تعريف نظام التشغيل (Operating System) على انه نظام اّلى(Software) لإدارة كل شئون الحاسب الالى مثل تنفيذ البرامج والاوامـر والتنسيق بين المهام لضمان استمرار عمل الحاسب بشكل منتظم ومحكم.
تطوير برامج الحاسب الألــى
برامج الحاسب الالى هى عبارة عن مجموعة مسلسلة من الاوامر التى يقوم الحاسب بتنفيذها لأداء مهمة أو أكثر. عادة مايكون هناك بيانات مدخلة للبرنامج ليقوم بمعالجتها وإخراج معلومات ونتائج ذات قيمة لمستخدم هذا البرنامج.
كيف يتم كتابة برامج الحاسب الالى؟
يتم كتابة برامج الحاسب الالى بإستخدام لغات البرمجة (Programming languages) والتى هى عبارة عن مجموعة كبيرة من الاوامر والجمل التى يستخدمها المبرمج او مطور البرنامج للتعبيرعن الاشياء والمهام التى يطلب من الحاسب تنفيذها. فهى كأى لغة بها كلمات وجمل يستخدمها مجموعة من البشر للتواصل بينهم وللتعبير عن كل ما يحتاجه أحدهم من الاخر. وقد مرت لغات البرمجة بعدة مراحل حتى تصل إلى المستوى الراقى الذى هى عليه الأن. وسنسرد أهم هذه المراحل فيما يلى :
لغة الألــة (Machine Language)
وهى اللغة التى يفهما الحاسب الالى وينفذها مباشرة عن طريقة وحدة التحكم المركزية الخاصة به او ما يسمـى (Central Processing Unit ). وهى مرتبطة فى شكل ومعنى أوامرها بنوع الحاسب الذىستنفذ عليه هذه الاوامر بمعنى ان لكل نوع من انواع الحواسب لغة الة خاصة به لان هذه اللغات عادة ما يضع قواعدها واوامرها مصنعوا أجهزة الحاسب انفسهم.واوامر لغة الالة فى طبيعتها عبارة عن نصوص رقمية تتكون من رقمين 1 , 0 وهى الشكل الذى تفهمه اجزاء الحاسب وتخاطب بعضها بإستخدامه. وبما ان الحاسب لايفهم إلا لغة الالة المكونة من 1 , 0 توجب على مطور البرامج إستخدام نفس اللغة ليخبرالحاسب بما يريده وهو ما كان امراً فى غاية المشقة وهو ما جعل عدد المطورين للبرامج قليل جداً وبالتالى عدد البرامج الحاسوبية المطورة قليل جداً.
لغـة الرمـوز (Assembly Languages)
نتيجة لصعوبة التعامل بلغة الالـة (Machine Language) إتجه مطوروا البرامج الى تسهيل مهتهم فى التعامل مع الحاسب فبدلاً من إستخدام الأوامر الصعبة المكونة من 1 , 0 بدأو فى استخدام إختصارات إنجليزية سهلة للتعبير عن الاوامر الصعبة فى لغة الالـة وبعد كتابة البرنامج بإستخدام هذه الاختصارات والرموز يقوم برنامج أخر بعمل المترجم فيقوم بفك هذه الرموز وتحويل هذه الاختصارات الى لغـة الالة حتى يفهمهاالحاسب. ويطلق على هذا البرنامج المترجم (Assembler) . ونتيجة لهذا التقدم الكبير نسبياً فى هذا الوقت تطورت صناعة البرمجيات شيئاً فشيئاً لكنها ما زالت مهنة شاقة وبها الكثير من ضياع الوقت حيث انه كان يستلزم لتنفيذ مهمة واحدة كتابة الكثير من الأوامر فى صورة عدد كبير من الخطوات.
اللغات الراقيــة (High Level Languages)
بمرور الوقت اصبح طموح مطورى البرامج يتعدى كل ما انجزوه وبدأو فى تطوير لغات برمجة تشبه اللغة التى يتحاورون بها فى حياتهم العادية وهو ما أطلق عليه مصطلح(High Level Languages) وتتميز هذه اللغات بأنها سهلة الإتقان وتستطيع بإستخدام جملة واحدة تنفيذ الكثير من الأوامر مما ادى بإستخدامها إلى زيادة الإنتاج من البرامج والتطبيقات التى يحتاجها الناس فى حياتهم اليومية. ولكن كما اتفقنامسبقاً ان الحاسب لا يفهم إلا لغة الالــة, لذا لابد من وجود مترجم يحول الجمل والاوامر المكتوبة بهذه اللغات الراقية الى لغة الالــة. ويطلق على هذا الببرنام المترجم (Compiler). وسوف نتعامل فى هذه السلسلة من المقالات مع لغة ال (C) كمثال للغات الراقيـة.
ما هى المراحل التى يمر بها البرنامج قبل ان يكون جاهزاً للتنفيذ؟
1- مرحلة كتابة وتحرير البرنامج (Editing)
يمر البرنامج بعدة مراحل قبل ان يكون جاهزاً للتنفيذ بداية بمرحلـة كتابة البرنامج او ما يطلق عليها مرحلة التحرير للبرنامج (Editing) وعادة ما تتم هذه المرحلة بإستخدام برامج تحريرمخصصة لكتابة البرامج والتطبيقات بلغة برمجة معينة وتسمى (Editors) وعادة ما تكون هذه البرامج مجهزة بالعديد من الوسائل المساعدة التى تجعل مرحلة الكتابة سهلة وشبه نمطية وخالية من الاخطاء النصية فى اوامر لغة البرمجة المستخدمة وهو ما يُطلق عليه (Syntax Errors). وهذه المساعدات بدورها تجعل المبرمج يصرف اهتمامه الى التفكير فى وضع الحل المناسب للمشكلة التى من أجلها كتب البرنامج دون الانشغال بأعمال التنسيق.
2- مرحلة تحويل البرنامج إلى أوامر يفهمها الحاسب (Compilation)
بعد الانتهاء من كتابة البرنامج والتأكد من سلامته من الأخطاء النصية للاوامر والجمل, يتم تحويل البرنامج الى اللغة التى يفهما الحاسب الالى او ما يسمى بلغـة الالـة (Machine Language) لانه كما ذكرنا مسبقاً ان اللغات الراقية (High Level Languages) التى يُكتب بها البرامج هى لغات لا يفهما الحاسب الالى وإنما تُستخدم لتسهيل كتابة البرامج . ويقوم بدور الترجمة والتحويل الى لغة الالــة برنامج يسمى (Compiler).
3- مرحلة ربط البرنامج بما يحتاجه من أوامر و وظائف خارجية (Linking)
ربما يحتاج البرنامج إلى إستخدام اوامر ووظائف خارجية(Functions) كانت قدتم كتابتها وتنفيذها فى برامج أخرى وهذه ميزة واسلوب مفيد جداً لتوفير الوقت والجهد والتكلفة فبدلاً من إعادة كتابة بعض الاوامر والوظائف (Functions) مرة اخرى يمكننا استغلال ما قد تم كتابته مسبقاً. ولكن اذا تم ذللك لابد من ربط البرنامج بهذه الوظائف الخارجية والتأكد من انها تعمل بكفاءة حتى يتسنى للبرنامج العمل بطريقة صحيحة أثناء عملية التنفيذ. ويطلق على عملية الربط هذه اسم (Linking) .
4-مرحلة تحميل البرنامج إلى الذاكرة الرئيسية لتنفيذه (Loading)
بعد ترجمة البرنامج من لغات البرمجة الراقية (High Level Languages) الى لغة الالة التى يفهمها الحاسب وبعد تجهيزالبرنامج بكل ما يحتاج اليه من اوامر ووظائف خارجية, اصبح البرنامج جاهزاً للتنفيذ ولكن حتى يتسنى لوحدة التحكم المركزية او ما يطلق عليه ال (Centeral Processing Unit) لابد من تحميله من وحدة التخزين الدائمــة (Secondary Storage) إلـى وحدة الذاكرة الرئيسية القريبة من وحدة المعالجة حتى يتم التنفيذ بسرعة.
5-مرحلة تنفيذ أوامر البرنامج فعلياً (Execution)
وهى المرحلة النهائية وفيها يتم تنفيذ اوامر البرنامج بالترتيب واحداً تلو الاخر حتى الانتهاء منها جميعاً وخلال هذه المرحلة يقوم المعالج او ما يسمى بالـ (Processor) بتوجيه وحدات الادخال الى استقبال البيانات اللازمة من المستخدم من خلال أجهزة الإدخال, ويوجه وحدات الاخراج الى اخراج المعلومات الى المستخدم عبر اجهزة الإخراج المناسبة وهكذا حتى ينتهى البرنامج.
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
المراجِع:مراحل تطوير برامج الحاسب
C How To Program 5th Edition ISBN: 0132404168 © 2007, pp. 1112 by Deitel
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
مواضيع مماثلة
» مفهوم الكيان المعنوى software ,تاد
» Software
» مجلة Better Software
» Software Informer
» Software Engineering
» Software
» مجلة Better Software
» Software Informer
» Software Engineering
صفحة 2 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى