هذا الموضوع هو عبارة عن مقدمة للغات البرمجة و به نبذة مختصرة عن لغات البرمجة و أنواعها المختلفة و التي لا يجب تجاهلها فلا يمكن أن تبدأ في تعلم البرمجة بدون مقدمة تعرفك إلى هذا العالم الواسع و قد راعيت فيها الإختصار و الإهتمام بالمعلومات المهمة فقط بدون تطويل أو تسويف و حاولت بقدر الإمكان الإلمام بما يفيد المبتدئين في عالم البرمجة و هي مرجع لا بأس به للمحترفين أيضاً...
و قبل أن أبدأ الدروس أريد التوجه بالشكر الجزيل إلى الأخ mo7amed لمساعدته لي في عمل هذه الدروس و للعلم الدروس مجمعة من مصادر كثيرة و ليست من تأليفي و لكني قمت بتجميع المعلومات من المصادر مع مراعاة حاجات المبتدئين و ستكون الدروس على مراحل بإذن الله....
الدرس الأول
تعريف البرمجة
من الممكن تعريف البرمجة بأنها عملية كتابة تعليمات وأوامر لجهاز الحاسوب أو أي جهاز آخر، لتوجيهه وإعلامه بكيفية التعامل مع البيانات أو كيفية تنفيذ سلسلة من الأعمال المطلوبة.و تتبع عملية البرمجة قواعد خاصة باللغة التي اختارها المبرمج.
و كل لغة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج والمهمة المطلوبة من هذا البرنامج.
كما أن للغات البرمجة أيضاً خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات صممت للتعامل مع الحاسوب.
وتتطور لغات البرمجة (السوفتوير Software) بتطور الحاسوب (الهاردوير Hardware). فعندما ابتكر الحاسوب الإلكتروني في الأربعينيات والخمسينيات من القرن الماضي (بعد أجهزة الحساب الكهربائية في العشرينات)- وكان الكمبيوتر يعمل بأعداد كبيرة من الصمامات الإلكترونية - كانت لغة البرمجة معقدة هي الأخرى، حتي أنها كانت عبارة عن سلسلة من الأعداد لا يدخلها إلا الصفر 0 والواحد 1، وكان ذلك صعبا على المبرمجين. ولكن بابتكار الترانزيستور صغر حجم الحاسوب كثيرا وزادت إمكانياته، واستطاع المختصون في نفس الوقت أن يبتكروا لغات أسهل للاستخدام، وأصبحت لغات البرمجة مفهومة إلى حد بعيد للمختصين. ولا يزال التطوير والتسهيل دائرا.
تعريف لغات البرمجة
لغة البرمجة هي عبارة عن مجموعة من الأوامر، تكتب وفق مجموعة من القواعد تحدد بواسطة لغة البرمجة، ومن ثم تمر هذه الأوامر بعدة مراحل إلى ان تنفذ على جهاز الحاسوب.
تقسم لغات البرمجة بناء على قربها من اللغات الإنسانية إلى لغة عالية المستوى (قريبة من اللغة التي يفهمها البشر) مثل سي C، جافا Java، ولغة منخفضة المستوى (كلغة الأسيمبلي Assembly وهي قريبة من لغة الآلة).
وتقسم أحيانا بناء على الأغراض المرغوبة من اللغة المستخدمة. هناك لغات صُممت لكي تعمل على أجهزة معينة، مثل ان تقوم شركة ما بإنتاج جهاز حاسوب أو معالج مركزي (CPU)، وتوفر له دليل استعمال يحتوي على الأوامر التي تنفذ عليه، وهناك لغات أخرى أكثر عمومية تعمل بشكل مستقل عن نوع الآلة، أي انها تعمل ضمن آلة افتراضية Virtual Machine، مثل لغة الجافا Java.
خصائص لغات البرمجة
لغة البرمجة هي بالأساس طريقة تسهل للمبرمج كتابة برنامجه في هيئة تعليمات وأوامر يفهما الحاسوب بغرض تنفيذ العمل المطلوب. ومن المعروف ان الحاسوب يحول اللغة المكتوبة بها البرمجة إلى سلسلة من 0 و 1، ويبدأ على أساسها عمله. ولكتابة الأوامر توفر لغة البرمجة المختارة مجموعة من اللبنات الأساسية للاستناد عليها خلال عملية تكوين البرنامج ومجموعة من القواعد التي تمكن من التعامل مع معلومات وتنظيمها بغرض أداء العمل المطلوب.
تتمثل هذه الأسس والقواعد بصفة عامة في:
1-المعلومات وتخزينها
تم تخزين المعلومات في الأجهزة الرقمية الحالية في هيئة أرقام طبقا لنظام العد الثنائي (أي المعتمد على 0 و 1). و بصفة عامة فان المعالجات الحديثة لا تقوم بالتعامل مع البت الواحد بل مع مجموعات من البتات يمكن أن تضم :
-8 بت = 1 بايت وهي أصغر وحدة تخزين معلومات في الحواسيب الحديثة.
-16, 32, 64, 128، 256 ,أو 512 بت.
و باستعمال 8 بت مثلا, يمكن تشكيل 256 قيمة مختلفة, ويمكن أن تكون هذه القيمة بين 0 و 255 و تمثل وظيفة لغة البرمجة استغلال وحدة أو مجموعة من الوحدات (رموزا) لتخزين معلومات من الحياة الواقعية مثل الأسماء أو القياسات أو أرقام الحسابات البنكية.
2-الأوامر وتنظيم سيرها
يقوم المبرمج باجراء عمليات على وحدات المعلومات مثل تخزينها وقراءتها ومقارنتها، كما يمكن إجراء عمليات حسابية عليها أيضا, وتتبع العمليات القواعد المحددة للغة. و للغة البرمجة دور آخر وهو التحكم في تنظيم إجراء العمليات، حيث توجه تنفيذ خطواتها بنفس تتابع كتابتها من طرف المبرمج،
و تمكن اللغة أيضاً من إجراء عملية اختيار وتفرع، وذلك بإدخال شرط منطقي يقوم الحاسوب على أساسه باختيار اتجاه الاستمرار في أداء العمل : فلنفترض أن البرنامج الذي يريد المبرمج صنعه يقوم بقسمة عددين يختارهما المستخدم، وإظهار النتيجة على الشاشة, ومن المعروف أن القسمة على صفر لا تجوز، وبناء علي ذلك فلا بد أن يحدد المبرمج في برنامجه هذا الاختيار : فاذا كان القاسم مخالفا للصفر، فإن البرنامج يسيـّر الحاسوب فيقوم بإجراء العملية ويعطي النتيجة. أما إذا كان القاسم صفراً فان البرنامج لا يقوم باجراء العملية وإنما ينبه إلى أن المستخدم حاول القسمة على صفر. و يمكن تنظيم الأوامر بصفة أخرى، حيث يقع تنفيذ أمر أو مجموعة من الأوامر بصفة متكررة حلقية (Loop)، و يمكن تقسيم الأوامر أيضاً إلى وحدات فرعية تقوم كل وحدة بانجاز عمل محدد, والهدف هو تقسيم العمل إلى أجزاء يسهل العمل عليها كل على حدة في هيئة دورات حلقية (Loops).
3-التصميم الخاص
تتمتع كل لغة بتصميم خاص من حيث التعامل مع المعطيات، ومن حيث الطرق والتسهيلات التي توفرها اللغة للتعامل مع مشكلة معينة.
يمكن تصنيف لغات البرمجة من حيث طريقة بناء البرامج إلى لغات إجرائية (Basic, Fortran) وهي لغات تسلسلية، أساس بناؤها هو الإجراءات المطلوب تطبيقها على المعطيات والمتحولات. ولغات شيئية (C, Java, Delphi) وهي لاتسلسلية، وتقوم على أساس العناصر والمتحولات المستخدمة ضمن البرنامج المطلوب تحويلها، من خلال تطبيق مجموعة معينة من الإجراءات عليها.
إنتهي الدرس الأول بحمد الله
الدرس الثاني
لغات البرمجة
لغات متدنية المستوى(قريبة من الحاسوب)
1-لغة الآلةMachine Language
لغة الآلة (بالإنجليزية: Machine Language) هي اللغة البرمجية الوحيدة التي يفهمها وينفدها الحاسوب مباشرة.وهي من لغات البرمجة المتدنية المستوى.
وجميع لغات البرمجة عالية المستوى مثل ++ Cأو فيجول بيسك الخ عند تنفيد البرنامج المكتوب بها تحول إلى لغة الآلة حتى يتم تنفيدها.
تعليمات اللغة:
لكل نوع من أنواع المعالجات لغة آلة أو طاقم تعليمات خاصة به . ويتم كتابة تعليمات وإيعارات لغة الآلة على هيئة أرقام بنظام العدد الثننائي ليتم تنفيدها مباشرة ..أو بنظام العدد الثماني ثم تحول إلى النظام الثنائي لتنفذ.
توجد لكل عملية حسابية أو منطقية تكتب بلغة الآلة شفرة (code) خاص بها ..ويتم كتابة عناوين الذاكرة الحقيقية في البرامج المكتوبة بلغة الآلة .
2-أسمبلي Assembly
في علوم الحاسوب، لغة التجميع (بالإنكليزية: Assembly language) هي الصيغة السهلة القراءة للبشر المقابلة للغة الآلة التي تشكل الأوامر التي ينفذها حاسوب بتصميم ما. فلغة الآلة عبارة عن تتابع من البتات (bits) تمثل عملية حاسوبية أو أمر للحاسوب، تصبح أسهل للقراءة عندما تستبدل برموز تعبر عنها.
ولكل معالج لغة تجميع خاصة به كما أن له "لغة آلة Machine Language" خاصة به. وتحتاج لغة التجميع ما يسمى "المجمـِّع" (بالإنكليزية: Assembler) وهو الذي يقوم بتحويل لغة التجميع التي يستطيع البشر قراءتها والتعديل فيها إلى لغة الآلة التي يستطيع المعالج تنفيذها. وتستخدم هذه اللغة الآن من قبل البشر وذلك لبرمجة أجزاء من نظم التشغيل أو للتاكد من سرعة وكفاءة تنفيذ بعض البرامج التي يحتاج فيها الكفاءة كبرامج المحاكاة والألعاب.
و تتكون اسطر برامج التجميع من ثلاثة أجزاء:
-العلامة (Label) وهو ما يتم به الإشارة لسطر ما في سطور أخرى.
-الأمر (Instruction) وهو يكون مناظر في الغالب لأمر في المعالج وهو ما سيقوم المعالج بتنفيذه عند الوصول لهذا السطر أثناء تنفيذ البرنامج.
-المعامل (Operand) وهو المتغير الذي سيتم تطبيق الأمر عليه.
تنقسم الأوامر إلى أربعة حقول :
-الاسم
-المعامل
-العملية
-التعليق
أمثلة الأوامر:
كود PHP:
START: MOV CX,5 ;initialize counter
-في المثال حقل الاسم هو START:
-العملية والمعامل MOV CX,5
-التعليق ;initialize counter
تم الدرس الثاني بحمد الله