مقدمة ف البمة الطبعة الول رامي عبد ا
الفهرست لة عن الكاتب 3--------------------------------- القدمة 4-------------------------------------- الفصل الول : فروع البمة 5---------------------------- برامج الاسوب 6------------------------------------------------ تطبيقات الاتف 7------------------------------------------------ الويب 7----------------------------------------------------- التحكمات الدقيقة 9---------------------------------------------- النظمة الضمنة 9------------------------------------------------ الذكاء الصطناعي 10--------------------------------------------- الفصل الثان : التجات 12----------------------------- تريخ لغات البمة 13--------------------------------------------- طريقة عمل التجم 13--------------------------------------------- أنواع الخطاء 13------------------------------------------------ الفصل الثالث : بعض الساسيات ف البمة 16------------------ التغيات 17--------------------------------------------------- الفاصلة النقوطة 18----------------------------------------------- التعليقات 18-------------------------------------------------- العمليات الريضية 18---------------------------------------------- تعريف بشهر لغات البمة 19----------------------------------------- بعض الصطلحات البمية 22----------------------------------------- الراجع 22----------------------------------------------------
لة عن الكاتب : السم : رامي مناف أحد عبد ا النيسية : سوري لغات البمة php,java,javascript,html,css: وقاعدة البيا s ت mysqli الشاريع : بر s مج أذكار موقع شركة صفر Sefr بر s مج تنزيل ألعاب من قرص DVD للتواصل معي ramimanaf20001@gmail.com
مقدمة ف لغات البمة البمة : هي كتابة تعليمات وأوامر دقيقة جدا ليتم تنفيذها من للة مطيعة جدا. تعت nn ب البم nn ة عص nn ب التق nn دم وأكس nn جي الق nn رن الواح nn د والعش n رين فأص nn بح ك nn ل م nn ا حولن nn ا ي nn وي عل nn ى العال nn ات وال nn ذواكر ال nn ت تزي nn د م nn ن نس nn بة ذك nn اء الل nn ة وتس nn ن م n ن ترب nn ة الزب nn ون وت nn وجيه تل nn ك الجه nn زة وتدي nn د مهامه nn ا ه nn ي مهم n ة ال n بمي ال n ت تقتض n ي بش n كل أساس n ي عل n ى تلي n ل الش n كلت وحله n ا وتش n به إل ح n د م n ا ح n ل الع n ادلت الريضية. بع n د أك n ثر م n ن 60 س n نة م n ن التط n ويرات والتح n ديثات والفك n ار تط n ور مفه n وم البم n ة ك n ثيا م n ن ص n فر وواح n د إل آلف لغات البمة!!!!! ما يص n عب عل n ى البت n دئي والط n امي لتعل n م البم n ة الب n دء ب n ا وق n د ألف n ت ه n ذا الكت n اب كي أرشدهم للطريق الصحيح. رامي مناف 2017/6/4 مالذي سأستفيده من قراءة هذا كتاب ستستطيع أن تفهم المصطلحات البرمجية وتجد طريقك الصحيح في البرمجة. هل أستطيع قراءة جزء من الكتاب نعم تستطيع إذا كانت لديك خبرة بلغة برمجة أو تبحث عن موضوع معين. هل يب علي إتقان النليزية ل يشترط إتقانك للنجليزية كي تتعلم أساسيات لغ 55 ة البرمج 55 ة ف 55 المحتوى العرب 55 ي يزخ 55 ر ب 55 الكثير م 55 ن الكتب والدورات لكن لتصل لمرحلة متوسطة أو متقدمة ستض 55 طر لق 55 راءة العدي 55 د م 55 ن الكت 55 ب وص 55 فحات الويب النجليزية. أ s لست جيدا ف الريضيات هل سيتأثر تعلمي للبمة بذلك البرمجة مبنية على الرقام والرياضيات ورغم ذلك ل داعي لن تكون جيدا في الرياضيات لك 55 ن إذا أردت التميي 55 ز والتق 55 دم س 55 تحتاج للرياض 55 يات بش 55 كل ك 55 بير فمثل ف 55 ي برمج 55 ة اللع 55 اب س 55 تحتاج لس 55 تخدام الرياضيات والفيزياء. على أي حال ل داعي للخوف فالرياضيات ليست صعبة ويتم شرحها أثناء تعلمك البرمج 55 ة ف 55 ي جمي 55 ع الكتب والدورات. أ s ل أملك حاسوب هل لن أتكن من تعلم البمة إن دراسة البرمجة ل تتطلب سوى مورد التعلم والص 55 رار لك 55 ن ب 55 الطبع س 55 تحتاج للبرمج 55 ة لتط 55 بيق م 55 ا تعلمته ويمكنك الستعانة هاتفك النقال في ذلك فهناك العديد م 55 ن التطبيق 55 ات والبرام 55 ج ال 55 تي تمكن 55 ك من البرمجة عليها وريثما تتعلم وتطبق على هاتفك يجب أن تحاول الحصول على حاسوب. قد يظن البعض بأن هذه الطريقة غير مفيدة ويستحيل تعلم البرمجة دون حاسوب إل أنن 55 ي أك 55 بر مث 55 ال على ذلك فقد تعلمت من الكتب المحوسبة PDF وبرمجت على هاتفي.
الفصل الول : فروع البمة ف ه nn ذا الفص nn ل س nn نتناول ف nn روع البم nn ة وتقس nn يماتا فق nn د ظه nn رت مف nn اهيم وتقني nn ات وأفك nn ار جدي nn دة دخل nn ت ع nn ال البم nn ة مث nn ل برم nn ة القط nn ع اللكتوني nn ة وبرم nn ة برام nn ج للجه nn زة الكهربئي nn ة وال nn ذكاء الص nn طناعي وأيض nn ا الوس nn بة الس nn حابية ال nn ت احتل nn ت النتنت. يوج nn د ع nn دة ف nn روع للبم nn ة وق nn د قس nn متها ع nn دة أقس nn ام بفض nn ل خ nn بت بغلبه nn ا وس nn يتم ش nn رح ك nn ل ف nn رع بش nn يء م nn ن التفص nn يل ف الصفحات القادمة.
البرمجة تقسم إلى عدة فروع تختلف فيما بينها ول تترابط مع بعضها إل في بعض الحالت وسأشرح جميع الفروع على أن تختار الذي تفضله وتريد تعلم برمجته ومبدأيا حاول تعلم فرع واحد ريثما تتقنه وبعدها يمكنك التوسع لفرعين أو حتى ثلثة. برامج الاسوب)الديسكتوب( وهي أي برنامج يفهمه نظام الحاسوب ويستطيع تنفيذه مثل محرر النصوص. microsoft word هناك العديد من أنظمة التشغيل مثل Linux,Windows,Mac OS التي تختلف البرامج التي تفهمها فالنظام هو من يفهم ويحلل البرنامج ويستخدم ال Hardware كي يساعده في تنفيذ العمليات مثل العمليات الرياضية والمقارنة التي تتم في وحدة الحساب والمنطق داخل المعالج. قد تقدمت وتنوعت وتطورت البرامج في هذا المجال وتعددت اللغات التي يتم برمجة برامج الحاسوب من خللها وسبب ذلك يعود لقدم هذا المجال وتأصله في أعماق كلمة برمجة فمنذ لغة اللة حتى لغة Java و C اللتان طورتا مفهوم كلمة برمجة من كتابة أوامر إلى تفكير عميق يقسم العالم إلى ذرات ويزخر هذا المجال ببرامج وألعاب من مختلف النواع مثل برامج التصميم ثلثي البعاد وتحرير النصوص ونطق النصوص ومتصفحات النترنت و برامج تعديل الصور وبرامج محاكاة الهاتف مما يصعب المنافسة بين الشركات فأصبحت الفكار المميزة والفريدة هي من تتحكم في نسبة نجاح البرنامج. اللعاب يمكننا اعتبار اللعاب برامج تعتمد على الرسم بشكل أساسي ويساعدها على ذلك بطاقة الشاشة. تخيل عزيزي القارئ كيف يمكن للحاسوب تشغيل لعبة ثلثية البعاد وعالية الدقة مثل GTA 5 أو Half Life 2 ورسم تلك المجسمات بدقة عالية على شاشة تعتمد على ال )pixels البكسل هو نقطة ضوئية على الشاشة يمكن أن تضيء بثلثة ألوان وهم الخضر والحمر والزرق ويمكن جمع أكثر من بكسل لظهار باقي اللوان( حقيقة ما يحدث أنه عند تحركك أي حركة في اللعاب ثلثية البعاد تتم معالجة كمية كبيرة من البيانات التي تساعد على رسم الصورة التي أمامك وبسبب عدم قدرة المعالج على معالجة تلك الكمية من البيانات في نفس الوقت ظهرت بطاقات الشاشة وداخل بطاقة الشاشة معالج ذو عدد كبير من النوية وذلك يساعده على القيام بأكثر من عملية في نفس الوقت. بسبب صعوبة برمجة اللعاب في كل مرة من الصفر ظهرت برامج تدعى محركات اللعاب تختصر الكواد على المبرمج وتسهل عمله بشكل كبير في برمجة اللعاب وهناك العديد من المثلة على محركات اللعاب مثل unity و jmonkey و.unreal
تطبيقات الاتف بالطبع جميعنا يستخدم الهواتف وتطبيقاتها المميزة والمفيدة والمسلية أيضا فأصبح سوق الهواتف الذكية ميدان الشركات العملقة التي تحاول إرضاء المستخدم فزاد اهتمام المستخدمين بها مما مكن الشركات من تطوير أنظمة تختلف باختلف اهتمامات المستخدم ومن أهم أنظمة الهاتف : Android: نظام أندرويد مبني على نواة نظام لينوكس وهو مفتوح المصدر)أي أن كوده معروض للجميع(وقد اشترته Google وبدأت بتطويره وله العديد من الصدارات تبدأ أسماؤها بترتيب الحروف النجليزية وأولها الصدار Android ثم Cupcake ثم...Donut إل.. وحتى تاري. كتابة هذا الكتاب كان آخر إصدار هو نوغا ويتميز هذا النظام بقوته وإمكانية تطويره وانتشاره وسهولة التعامل معه. IOS: وهذا النظام من إنتاج شركة Apple وهو أقوى النظمة من حيث الحماية والخدمات وسهولة الستخدام وقد صدر عام 2007 إل أنه مكلف جدا ويعد أفضل النظمة لرجال العمال وأصحاب الشركات. Windows phone: بعد تأخر شركة مايكروسوفت عن النخراط في سوق الهواتف الذكية أطلقت هذا النظام الذي يدعم تقنياتها بشكل كبير مثل silverlight وهي إحدى تقنيات الويب ويأتي هذا النظام مضمنا في أنظمة windows 8 1 فما فوق. الويب يزخر النترنت بآلف إن لم تكن مليين المواقع اللكترونية فالموقع يعتبر طريقة سهلة للوصول للمعلومات من قبل المستخدم وطريقة ممتازة للنشر والترويج من قبل أصحاب الشركات والمنظمات ويمكن للمسخدم المشاركة في لعب اللعاب اللكترونية مع أي شخص في العالم مما ساعد على انتشارها بشكل كبير جدا. قد تظن أن الخادم حاسوب عملق يقوم بعمليات معقدة جدا لكن بعض الخوادم ل تتعدى كونها حاسوب بسيط. mini computer الخادم هو بالفعل خادم يخدم موقع أو برنامج أو حتى تطبيق للهاتف ويقوم بتنفيذ أوامره لكن لنفصل الموضوع أكثر عندما تكتب www.facebook.com ماذا يحدث بالضبط IP Internet Protocol: ال IP هو بروتوكول)البروتوكول هو نظام للتواصل بين حاسوبين( يساعد المستخدم على التصال بالنترنت ولديه عنوان يتكون من الرقام لكن دعونا من التعريفات المملة هل صادفت في العدادات في هاتفك رقم ال IP أو حتى عند التصال بشبكة Wi-Fi رأيت "جار الحصول على رقم ال "IP أو رأيت رقما يشبه 133.224.22.212 كما رأيت الرقم مقسم أربعة أقسام وهذا ال IP من الصدار) (4 وأقصى رقم يمكن لل IP الوصول إليه هو 255.255.255.255 لن ال IP يتكون من أربعة بايتات بايت لكل قسم. ما هي فائدة ال IP تخيل أنك في الصين وكل الشخاص يشبهون بعضهم وتريد العثور على شخص محدد بينهم فكيف ستعثر عليه إن مهمة ال IP تمييزك بين مليين الشخاص المتصلين بالنترنت ول يمكن أن يتشابه رقمك مع أي رقم آخر ورقم ال IP يتغير في كل مرة تنفصل عن شبكة النترنت ثم تعيد التصال بها وهي ليست أرقاما عشوائية بل تحدد بأي شبكة وأي فرع من الشبكات قد اتصلت به.
لكن ما علقة ال IP بالخادم عندما تكتب في المتصفح www.facebook.com سيتصل جهازك بخادم DNS وهو خادم يحوي جميع عناوين المواقع Domains ورقم ال IP المقابل للعنوان وهو رقم ال IP الخاص بخادم الموقع وقد صممت خوادم ال DNS لصعوبة حفظ أرقام ال IP وبعد الحصول على رقم ال IP يتصل جهازك بالخادم وبعد التصال يتعامل الخادم مع جهازك ببروتوكول HTTP: Hyper Text Transfer Protocol لرسال صفحة ال HTML إلى عنوان ال IP الخاص بك. من نظر المبرمجين ينقسم الويب لقسمين رئيسيين : :Frontend(1 وهو بشكل أدق وأشمل كل ما يتم تنفيذه على متصفح العميل من الملفات التي يرسلها الخادم والفائدة الرئيسية منها بناء واجهة الموقع ومن اللغات التي يبرمج بها ال :frontend HTML: Hypertext Markup Language لغة وصف النصوص الفائقة وهي لغة)والبعض ل يعتبرها لغة برمجة إنما لغة وصف وهو الصح( هيكلة لصفحات الويب وبنائها ول يمكن الستغناء عنها في برمجة مواقع الويب ويمكنك وصف وبناء الصفحة بها مثل إظهار مربعات إدخال النصوص وعرض الفقرات والقوائم والجداول وعرض الصور وتضمين السيكريبتات الخاصة بلغات أخرى. CSS: Cascading Style Sheet الهدف الرئيسي من اللغة هو تنسيق صفحات ال HTML وترتيبها وتلوينها فهي تتحكم في مظهر صفحة الويب وتحوي أوامر تفهمها جميع المتصفحات إل أن بعض الوامر تكون خاصة بمتصفح معين أو بجهاز معين. Javascript لغة برمجة استحدثتها Netscape وانتشرت بشكل كبير جدا حتى أصبحت مدعومة من جميع المتصفحات وقد تطورت بشكل كبير فأصبحت تدعم العديد من التقنيات مثل.Websocket,AJAX إن الهدف الرئيسي من اللغة هو التعامل مع العميل والمتصفح مثل تزنيد)تزنيد : تنفيذ أوامر عند حدوث حدث معين( الزرار وتعديل صفحة HTML بطريقة ديناميكية ويمكنها حتى أخذ موقع العميل ونوع المتصفح وفتح الكاميرا وغيرهم الكثير ويتم كل ذلك في متصفح فعندما يطلب العميل صفحة إلكترونية معينة يتم إرسال الصفحة مع جميع الملفات المتعلقة بها مثل ملفات css و js وحتى الفلش swf ويتم ترجمة كود ال javascript ثم تنفيذه. Applets برامج مثل برامج الديسكتوب يتم تضمينها بصفحة HTML وتبرمج بلغة Java ويتم برمجتها مثل ما تتم برمجة برامج الديسكتوب مما يمكن مبرمجيها من عمل برامج تطابق برامج الديسكتوب إل أنها تكون مضمنة داخل صفحة الويب ويراعى في برمجتها تقليل الحجم وتتميز بميزة برامج جافا بأنها قادرة على العمل على جميع النظمة التي تم تنزيل ال VM عليها. 2)Backend: وهو كل ما يجري داخل الخادم من عمليات يتم برمجتها بلغات من ناحية الخادم.Server
صفحة ال HTML بسيطة جدا حتى مع إضافة القليل من ال CSS ورشة JavaScript فكيف يمكنك تسجيل الدخول ونشر النصوص ورفع الملفات والكثير من المور هل لحظت في مرة من مرات أثناء تصفحك النترنت أن امتداد الملف ينتهي ب php بماذا تختلف صفحة ال php عن الصفحات العادية ال php هي لغة برمجة من ناحية الخادم )ومعنى ناحية الخادم أي أن الخادم هو من ينفذها( وعندما يطلب العميل صفحة ال php يقوم الخادم بمعالجتها وتنفيذ أوامرها وتخرج بالنهاية صفحة HTML يرسلها الخادم إلى العميل client ليعرضها المتصفح. إن لغات البرمجة من ناحية الخادم تهتم بشكل أساسي بمعالجة ما يرسله العميل من البيانات وترسل له النتائج وتحفظ البيانات بقاعدة بيانات موجودة على الخادم وهي غالبا mysqli أو.oracle التحكمات الدقيقة هل فككت قبل جهازا إلكترونيا من قبل ما هي الشريحة الخضراء الموجودة بداخل الجهاز هي ببساطة قطعة خشب مثبت عليها قطع إلكترونية ملحومة بالسيليكون تتصل مع بعض 55 ها بأس 55 لك رقيقة مسطحة لكن بسبب صعوبة تصميم الشرائح اللكترونية في كل مرة تريد فيها صنع جهاز جدي 55 د تم تصميم شريحة تحوي معالجا بسيطا وذواكر إل. كي تستطيع معالجة وتنفيذ أي برنامج ينزل عليها وأدى ذلك لتطور هائل في مجال الجهزة والروبوتات. ت ساعد المتحكمات بشكل كبير في صناعة الروبوت 55 ات والجه 55 زة ال 55 تي يمك 55 ن قيادتها عن بعد لكن للتبسيط يمكن عمل إشارة مرور أو أي آل 55 ة أخ 55 رى مث 55 ل باب كهربائي أو فرن ذكي وهي مرن 55 ة بش 55 كل ك 55 بير إذ يمكن 55 ك توص 55 يلها ب 55 أي جهاز آخر من مصباح LED إلى شريحة بلوتوث أو كاميرا أو حتى متحكم آخ 55 ر ومن هذه المتحكمات أردينو Arduino والذي يبرمج بلغ 55 ة Arduino c ويوج 55 د العديد من المتحكمات المختلفة. النظمة الضمنة قد انتشرت الغسالت الوتوماتيكية بشكل كبير وتحوي عدة برامج لمختلف أنواع الثياب وبتوقيتات مختلفة إل. من المميزات إذا هل لكل برنامج مسار على الشريحة اللكترونية أم ماذا بالطبع سيكون إهدارا للوقت والمال والمساحة إذا ما الحل الحل بإضافة قطعة إلكترونية تستقبل وترسل الوامر ما رأيكم بأن نضع شريحة أردينو داخل الغسالة ل ل ستأخذ مساحة كبيرة فهي بطول الكف ونحن نريد استغلل أكبر مساحة ل تضييعها. لكن أردينو يمكنها معالجة عمليات معقدة. وهنا المشكلة. كيف نحن نحتاج نظاما صغيرا نكتب له برنامجا بسيطا ل يتعدى الكيلو بايتات ل شريحة إطلق صاروخ. إذا فهناك نظام مضمن داخل الغسالة يعالج أوامرنا وتختلف عن المتحكمات الدقيقة بأن مواردها محدودة جدا جدا.
الذكاء الصطناعي الذكاء الصطناعي كما عرفه العالم أدوار فيجنبوك "هو بناء برمجيات قادرة على أداء سلوكيات توصف بالذكاء عند قيام النسان بها. منذ اختراع أول آلة تواردت الكثير من الفكار والتي ترجمت فيما بعد على شكل أفلم عن روبوت يفكر ويتصرف كالبشر. تخيل عزيزي القارئ من آلة تنفذ ما طلب منها فقط إلى آلة تقرر حسب الظروف وتكتسب الخبرة من نجاحها وفشلها هذا ما يسمى بالنظمة الخبيرة ولدى هذه النظمة قاعدة بيانات كبيرة تحوي على نظام تخزين للبيانات والمعلومات وتقوم هذه النظمة بمعالجة وفهم البيانات لستخراج المعلومات وأيضا يمكنها تحويل المعلومات إلى شكل أكثر تقدما وشمول يسمى المعرفة وهي عبارة عن معلومات تم تنظيمها ومعالجتها لتحويلها إلى خبرة ويمكن بالمعرفة أن تصبح اللة قادرة على إبداع طرق أو منتجات تتناسب مع الخبرة المكتسبة وحتى الن ل يوجد أي آلة تستطيع استخلص المعرفة وبقيت نظريات وأفكار ومن المثلة على القدرة على استخراج المعلومات من البيانات وفهم اللغات الطبيعية مثل اللغة العربية وتحليلها والستفادة من المعلومات المكتوبة بتلك اللغة وأيضا فهم الصور واستخراج المعلومات منها فقد طور مبرمجين شركة جوجل API Application Programming ) Interface وال API ببساطة أوامر تقوم بإنجاز عمل معين وما على المبرمج سوى استدعاءها واستخدامها( لكتشاف الوجوه في صورة معينة وتحديد نقاط مهمة عليه مثل النف والعينين والفم والذنين ويعتبر ذلك ال API مثال بسيطا على محاولة تحليل الصور. استخدم الذكاء الصطناعي في العديد من المجالت أكثرها انتشارا اللعاب بتنفيذ الستراتيجيات مثل لعبة الشطرنج فاللعبة تتجاوب مع تحركاتك وتتفادى الوقوع في منطقة الخطر وتحاول إخراج أكبر عدد ممكن من قطعك وبعد عدة دقائق "... كش ملك"!!! إذا كيف هزم الحاسوب النسان ببساطة اللعبة تحتفظ باستراتيجيات مثل البقاء حول المنطقة الوسطى والكثير غيرها وتستبعد
الحجار التي يمكن أن تخرجها وترتب خطواتها حسب أولوية استراتيجياتها ومن ثم تحرك الحجر الولى. يتم برمجة الذكاء الصطناعي بأي لغة مثل Java و C# لكن هناك لغات أكثر تخصصا في هذا المجال مثل python و PROLOG وبشكل عام يمكن برمجتها بأي لغة فالمر يعتمد على الخوارزمية بشكل أساسي. حاول العلماء تطوير الذكاء الصطناعي بحيث يتشابه طريقة عمله مع طريقة عمل النسان ومحاكاة عمل العصبونات في الدماغ لكن صعوبة فهم الدماغ البشري أبطأ من تقدم وتطور الذكاء الصطناعي فحاول علماء الذكاء الصطناعي وضع نظريات وأفكار عن كيف يحل العقل البشري مشكلة ما ومن هذه النظريات نظرية تقول أن العقل البشري يجمع البيانات عبر الحواس الخمسة ويستنتج المعلومات ومن ثم يحفظ المعلومات ويستفيد منها في حل المشاكل وتتكون لديه الخبرة نتيجة محاولة حل المشاكل.
الفصل الثان : التجات ف هذا الفصل سأشرح متجات لغات البمة بشكل عام وتقسيماتا وتطورها وتطور لغات البمة وقواعدها والفاهيم الديدة الت قدمتها لغات البمة الديثة.
المترجمات هي الوسيط بين لغة البرمجة ونظام التشغيل فهي تحول لغة البرمجة إلى صيغة يفهمها النظام. تاري. لغات البرمجة : منذ اختراع أول حاسوب كانت تخزن البيانات على بطاقات مثقبة وكانت كتابة البرامج تتم بلغة اللة لعمل البرامج البسيطة بالطبع للصعوبة الشديدة جدا في التعامل مع لغة اللة قراءة وكتابة كان من الضروري إيجاد طريقة أسهل للتواصل مع الحاسوب فظهرت أولى لغات البرمجة في بدايات عام 1950 وهي لغات التجميع Assembly وفي النصف الثاني من عام 1950 انتقلت البرمجة لمرحلة جديدة ورئيسية مع تطوير لغات مثل Fortran و Cobol و Lisp وأحدثت هذه اللغات ثورة كبيرة في مجال البرمجة لنها سهلت كتابة المسائل الحسابية بشكل كبير وبقيت قيد الستخدام حتى عام 2007 أي ما يقارب 50 سنة!!!. لكل نظام تشغيل لغة آلة يفهمها وللتوضيح أكثر قم بتحويل صيغة أي برنامج exe إلى text ستلحظ وجود أحرف ورموز غريبة وتسمى ال Binary وهي اللغة التي يفهمها نظام التشغيل ويستطيع تنفيذها وتختلف من نظام لخر مما ل يسمح لبرنامج exe الخاص ب Windows بالعمل على نظام ماكنتوش Mac os وقد تفردت كل مجموعة من اللغات بنظام تشغيل خاص بها. طريقة عمل المترجم : إذا حاولنا تحليل عمل المترجم سنجد أن هناك مرحلتان يقوم بهما والمرحلة الولى هي التحليل ويتم فيها كسر البرنامج المصدري)أي في حالة الوامر البرمجية( إلى أجزاء ويفرض عليهم القواعد النحوية ويتأكد من معاني الوامر البرمجية ويتأكد إن كان هناك أخطاء فيعرض رسالة الخطأ ويشرح فيها الخطأ للمبرمج أما في حالة عدم وجود أي خطأ يتم حفظ معلومات عن البرنامج في تركيب للبيانات يسمى جدول الرموز وينقل للمرحلة الثانية وهي التأليف وفي هذه المرحلة يتم جمع جميع المعلومات المرسلة من المرحلة السابقة ويركب البرنامج الهدف)البرنامج الهدف هو البرنامج النهائي الذي يمكن تنفيذه(. أنواع الخطاء :Errors types يمكن للمترجمات كشف الخطاء التي ستؤدي إلى مشاكل في تنفيذ البرنامج الهدف وهي : أخطاء نموذج الكتابة Syntax errors تعني خطأ في كتابة أمر معين مثل إنقاص أحرف من المر أو كتابته بشكل مغاير لنموذج كتابة المر مثل حذف أقواس أو أية رموز أخرى أو كتابة أمر في غير مكانه أو عدم التعرف على المر وعند محاولة ترجمة البرنامج للغة اللة سيوقف المترجم العملية ويرسل له رسالة تحوي على الخطأ. أخطاء نحوية Semantic errors هي أخطاء تنتج من الكتابة غير المنطقية للكود ول يمكن للمترجم الكشف عن هذه الخطاء وتتضح عندما يتم تشغيل البرنامج. أخطاء في وقت التشغيل Run-time errors أخطاء تحدث أثناء تشغيل البرنامج وهي في أغلب الحوال محاولة إدخال قيم غير صالحة أو استخدام مصادر غير موجودة أو حتى محاولة القسمة على صفر. تقسم لغات البرمجة حسب تطورها وسهولة استخدامها إلى قسمين هما : (1 لغات منخفضة المستوى
وهي لغات أقرب إلى لغة اللة تتعامل بشكل مباشر مع ال Hardware وهي صعبة الفهم والقراءة من قبل المبرمج وأكوادها طويلة لتنفيذ أبسط المهمات. (2 لغات عالية المستوى هي لغات أقرب للغة البشر )النجليزية بالطبع( تتبع قواعد برمجية معقدة مثل البرمجة غرضية التوجه OOP Object Oriented Programming التي تستخدم أفكار متقدمة مثل الكائنات والوراثة. بعد تطور لغات البرمجة وبالطبع تطور المترجمات تفاوتت لغات البرمجة من حيث التقدم وسهولة التعامل فقسمت إلى خمسة أجيال الجيل الول وهو ال Binary أو لغة اللة ويتكون من الصفر والواحد والجيل الثاني وهو لغات التجميع Assembly والجيل الثالث وهو من اللغات عالية المستوى مثل Fortran,Cobol,Lisp,C,C++,C#,Java والجيل الرابع عبارة عن لغات مصممة لتخصصات معينة غير البرمجة مثل SQL لستعلمات قواعد البيانات أي أنها كود يأمر قاعدة البيانات بإخراج معلومات معينة منها و postscript لتنسيق النصوص أما الجيل الخامس فيعبر عن اللغات التي تستخدم المنطق مثل.Prolog تختلف بعض اللغات عن بعضها بعدد مرات الترجمة وتقسم لغات البرمجة من حيث عدد مرات الترجمة إلى ثلثة أقسام : (1 لغات مترجمة ويتم تحويلها من أوامر بلغة برمجة إلى Binary مرة واحدة فقط وتصبح ملفات تنفيذية executable وليس من الضروري وجود مترجم عند مستخدم البرنامج وتتميز بأنها غير قابلة للتعديل وسريعة التنفيذ لكن البرامج الناتجة ستكون قابلة للتشغيل على نظام معين ول يمكن تشغيلها على جميع النظمة. (2 لغات مفسرة وتحفظ هذه اللغات على هيئتها كأوامر ويتم ترجمتها ثم تنفيذها في كل مرة يتم طلب البرنامج ويشترط وجود المترجم عند مستخدم البرنامج كي يستطيع ترجمتها وتتميز بسهولة تعديلها والوصول إلى أوامرها وعملية استخدامها تكون أبطأ لنها تحتاج للترجمة في كل مرة وأيضا تتميز بأن برامجها تعمل على أي نظام تشغيل تم تنزيل مترجمها عليه. (3 لغات تترجم إلى )Bytecode مشتركة( بسبب القدرة على رؤية الكود عند استخدام اللغات المفسرة وأيضا بسبب اختلف لغات اللة التي تفهمها أنظمة التشغيل المختلفة طور المبرمجون لغة وسيطة bytecode يتم ترجمة البرنامج المصدري إليها وطوروا أيضا برنامج يسمى اللة التخيلية ) (Virtual Machine يفهم اللغة الوسيطة ومهمته تحويلها إلى لغة اللة الخاصة بنظام التشغيل الذي تم تنزيله عليه وبذلك يمكن لي نظام تم تنزيل اللة التخيلية عليه فهم هذه البرامج. Bytecode اللة التخيلية مدخلت ال binary مخرجات نظام التشغيل
OOP: Object Oriented Programming تدعم لغات البرمجة الحديثة ال OOP وهو نظام لكتابة الكود يربط العمليات المختلفة بروابط معقدة تسهل على المبرمج عمله ويعتمد عمل هذا النظام على تقسيمه لصفوف classes ولكل class اسم خاص به يصف محتواه ويعتبر كل class كائن وله خواص تصفه وطرق methodes تمثل فعل يفعله ذلك الكائن فمثل فلنأخذ قطة على أنها كائن فمن خواص القطة أن لها أربعة أقدام ومن طرقها أي أفعالها إصدار صوت وهو المواء وقس على ذلك. ولدى البرمجة الغرضية عدة أفكار منها الوراثة. الوراثة بشكل عام مثل وراثة الكائنات الحية فالبن يرث صفات أبيه فمثل إذا كان الب طويل القامة أسود الشعر فالبن سيمتلك نفس الصفات إضافة صفاته الخاصة. تدعم أغلب اللغات المتطورة نظام ال OOP ويعتمد هذا النظام على المترجم بصورة كبيرة فالمترجم هو من ينشئ الروابط بين الصفوف.
الفصل الثالث : بعض الساسيات ف البمة ف هذا الفصل سأشرح بعض الفاهيم ف البمة لتسهيل بداية تعلمك للبمة.
التغيات المتغير هو أشبه بصندوق يمكنك وضع أي قيمة بداخله وتحفظ تلك القيمة طيلة فترة تشغيل البرنامج والشكل العام لطريقة عمل البرنامج هو استقبال المدخلت التي يدخلها المستخدم ثم يقوم البرنامج بمعالجتها ثم يعطي المخرجات فعندما يدخل المستخدم مثل عنوان بريده اللكتروني يحتفظ به البرنامج داخل متغير في قسم من ذاكرة ال RAM Random Access Memory ثم يطبق عليه بعض العمليات مثل عملية التأكد من وجود رمز @ أو إرساله لخادم أو حتى حفظه في ملف ثم يطبع مثل "تم حفظ البريدي للتوضيح سأعطيك مثال عن متغير في لغة ال :PHP ;" $country="syria في هذا المثال يعتبر السم country اسم المتغير الذي أطلقناه على القيمة Syria وإشارتي القتباس تدل على أن ما بداخلهما نص والفاصلة المنقوطة تدل على نهاية المر البرمجي ويمكننا الن استخدام السم country للقيام بالعمليات على القيمة Syria ويمكننا بالطبع استقبال مدخلت المستخدم ووضعها داخل متغيرات. يعتبر المتغير أمرا أساسيا في لغات البرمجة إذ ل توجد لغة برمجة ل تدعمه وسمي بالمتغير لن قيمته قابلة للتغير. عند كتابة متغير معين في البرنامج يأخذ المتغير مساحة محددة في ال RAM مهما كانت قيمته صغيرة لذلك عمد مطوروا لغات البرمجة إلى تطوير نظام معين لتوفير المساحة في ذاكرة ال RAM ويحدد هذا النظام حجم ونوع البيانات المخزنة ويوجد عدة أنواع مختلفة للبيانات تختلف مساحات تخزينها من لغة لخرى وهي : Integer: وهو أبسط أنواع المتغيرات ويخزن العداد الصحيحة فقط ويكتب اختصارا int ومثال عليه ; int Score = 6 ويشتق من هذا النوع long الذي يخزن العداد الكبيرة التي تصل للمليارات و short الذي يخزن العداد الصغيرة التي تصل تقريبا لل 32000 Floating point: يخزن العداد العشرية وتوضع نقطة بدل الفاصلة ويكتب اختصارا float ويشتق منه double الذي يختص بالعداد العشرية الكبيرة ومثال عليه : ; float price= 3.4 Char: يخزن الرموز والحرف ويشترط إحاطة الرمز أو الحرف بإشارتي اقتباس ومثال عليه : ; char grade= a String: يخزن النصوص ويعتبر مجموعة من ال Char ويشرط وضع إشارتي إقتباس مزدوجتين تحيط بالنص ومثال عليه : ;"مرحبا"= String email Boolean: يخزن القيم المنطقية وهي قيمتان صحيح وغير صحيح true and false ومثال عليها : ; boolean win=true Byte:
ويحمل قيم من 0 حتى 127 ويمثل بايت واحد في الذاكرة ويستخدم في العادة للتعامل مع ال Binary ومثال عليه : ; Byte byte=10 ويوجد بعض اللغات مثل javascript و PHP عند تعريف المتغير ل يتم تحديد نوع البيانات الممكن إدخالها فيه وفي الغالب تستخدم هذه اللغات في مجالت ل تستخدم قدرا كبيرا من الذاكرة. الفاصلة النقوطة عند نهاية أي أمر برمجي يجب على المبرمج كتابة فاصلة إنجليزية منقوطة كي يعرف المترجم أن المر قد انتهى ويمكن كتابة أكثر من أمر على نفس السطر شرط أن ينتهي كل أمر بفاصلة منقوطة. ; int c=3 ; String hello= hello ;int num=20 التعليقات في فرق البرمجة يتم مشاركة في برمجة المشروع من قبل أكثر من مبرمج وبسبب صعوبة قراءة أكواد أشخاص آخرين نشأت فكرة التعليقات التي تساعد في شرح الكود وتسهل فهمه للمبرمجين الخرين وفي حال ترجمة برنامج يحوي على تعليقات يقوم المترجم بتجاهلها وللبدء بكتابة تعليق يتكون من سطر واحد ابدأ ب // وللبدء بكتابة تعليق يتكون من عدة أسطر ابدأ بشرطة ثم نجمة وانتهي بنجمة ثم شرطة وهذا مثال للتوضيح : * / author rami this is a simple variable its name is win and its value false and its type is integer */ int win=false;//this is a comment //and this is another one العمليات الريضية تكتب رموز العمليات الرياضية بصورة تختلف عن التي نستخدمها في حياتنا اليومية والرموز كالتالي الوظيفة المقابل الرمز + + الجمع - - الطرح / القسمة % ل يوجد إيجاد باقي القسمة مثال ; int x=4+3 //x=7 ; int z=x-5 //z=2 ; int y=8/z //y=4 ; int a=26%6 //a=2 باقي القسمة : عندما نقسم عددين على بعضهما من الممكن أن يكون ناتج القسمة عددا غير صحيحا وفي بعض الحالت نحتاج ذلك لمعرفة الباقي لتحديد نوع العدد زوجي أم فردي وفي المثال السابق أوجدنا باقي قسمة 26 على 6 وللحل فلنأخذ أبسط طريقة ما هو العدد القل من 26 ويقسم على 6 دون باقي إنه 24 والفرق بين 24 و 26 هو 2 وهو الباقي.
تعريف بشهر لغات البمة : Basic لغة برمجة قديمة ظهرت في الستينيات صممت أساسا لتعليم المبتدئين أساسيات البرمجة وتعتبر من أسهل اللغات. C في عام 1972 ظهرت لغة C لول مرة وهي لغة مشتقة أساسا من لغة B وهي لغة قديمة منخفضة المستوى وتتعامل على مستوى ال Bit وهو أصغر وحدة مساحة تحتمل قيمتين 0 و 1 وتستخدم لتطوير نظم التشغيل ولبرمجة برامج الروبوتات. C++ هي تطوير للغة C أنشأت عام 1979 وكانت تسمى حينها C وتصنف مع فئات ال C وتم تغيير اسمها إلى C++ عام 1983 وتستخدم لبرمجة أنظمة التشغيل واللعاب والبرامج ويمكن استخدام البرمجة كائنية التوجه فيها. Python لغة برمجة مفسرة مفتوحة المصدر أساسية في نظام linux ويمكنها العمل على باقي النظمة عند تنزيل المفسر وتشتهر بالسهولة وتستخدم في الشبكات بشكل خاص والديسكتوب والويب بشكل عام. Java أول ظهور لل Java كان عام 1995 وقد أنشأتها شركة Sun Microsystems وطورت باللغة العملقة C++ وكانت تتبع مبدأ شركة sun Write once,run Everywhere اكتب مرة وشغل في أي مكان وكانت وما زالت أكبر ميزة في جافا أنها تعمل على جميع النظمة التي يوجد فيها VM ومن مميزات جافا أنها لغة شاملة لجميع فروع البرمجة ويمكن برمجة أي شيء بها وهي مبنية على البرمجة الكائنية. C# لغة مبنية على البرمجة كائنية التوجه طورت من قبل Microsoft وهي مقتبسة من Java ويمكن تشغيل برامجها على windows فقط ويمكن استخدام Net Framework. لترجمة برامجها لتعمل على linux أو Mac os ويمكن برمجة الديسكتوب والويب بها. JavaScript لغة برمجة بسيطة نوعا ما طورت من قبل شركة Netscape صممت خصيصا لبرمجة صفحات الويب فبعد أن يرسل الخادم الملفات المطلوبة يعالج المتصفح الملفات ويترجم ملفات الجافا سكريبت وينفذها ويمكنها التعديل على صفحة ال HTML والحصول على البيانات من العميل مثل نوع المتصفح وبسبب النتشار الواسع لهذه اللغة أصبحت تستخدم لبرمجة خوادم الويب وتطبيقات الهاتف من خلل بيئات عمل معينة. PHP هي لغة برمجة مفسرة مفتوحة المصدر تبرمج تطبيقات الخادم فبعد أن يرسل متصفح العميل طلبا بصفحة ويب تنتهي بالمتداد php يترجم الخادم صفحة ال php ثم ينفذها ويمكن للغة استقبال البيانات المرسلة من صفحات ال HTML مثل نموذج تسجيل دخول و رفع الملفات للخادم و تعديل الصور و حفظ البيانات في قاعدة بيانات.
المفاتيح : * يستخدم بشكل كبير في هذا المجال. ل يستخدم بشكل كبير في هذا المجال. عدد مرات الترجمة ديسكتوب ويب تطبيقات الهاتف متحكمات دقيقة أنظمة مضمنة C مترجمة نعم - نعم - ل C++ مترجمة نعم - نعم - Java مشتركة نعم نعم C# مترجمة ل نعم - Python مفسرة نعم نعم نعم نعم PHP مفسرة نعم - نعم - ل ل JavaScript مفسرة نعم - نعم نعم - ل ل مدى انتشار وشهرة بعض اللغات لعام :2017
وبعد أن رأيت ميزات كل لغة وخصائصها يمكنك تحديد لغة البرمجة التي تريد أن تبرمج بها في الفرع الذي اخترته في بداية الكتاب لكن يفضل إذا كنت مبتدئا أن تتعلم أساسيات لغة غغ C لنها أساس كل اللغات وستسهل عليك تعلم باقي لغات البرمجة.
بعض الصطلحات البمية مفتوح المصدر) :(Open Source هي صفة تطلق على أي برنامج كوده المصدري متاح للرؤية للجميع. البرنامج المصدري : هو برنامج في حالة الوامر البرمجية)الكواد(. البرنامج الهدف : هو البرنامج المصدري بعد ترجمته فيصبح قابل للتنفيذ. :Front-End مصطلح يطلق على مبرمج الواجهات أو برمجة الواجهات بشكل عام. :Back-End مصطلح يطلق على مبرمج صلب البرنامج دون الواجهات أو على برمجة صلب البرنامج بشكل عام. :API أوامر تهتم بمجال محدد يمكن للمبرمج استخدامها للقيام بمهمة معينة مثل إرسال الرسائل اللكترونية. مكتبة) :(Library مجموعة أكواد كتبها مبرمجون يمكن استدعائها للقيام بعمل معين تساعد وتسهل عمل المبرمجين. مترجم) :(Compiler برنامج يقوم بتحويل البرنامج المصدري إلى البرنامج الهدف. بيئة عمل) :(IDE برنامج مصمم خصيصا لكتابة البرامج عليه باستخدام لغات برمجة محددة يسهل كتابة البرامج. إطار عمل) :(Framework هو مجموعة من الخدمات المتكاملة التي تسهل وتسرع عمل المبرمج وتستخدم عادة أنماط معينة للبرمجة. :SDK مجموعة مكتبات أو أدوات تمكنك من تطوير البرامج لنظام أو بيئة معينة. لغة برمجة عامة الغرض) :( general-purpose programming language لغة برمجة يمكن استخدامها في مجالت واسعة وعديدة. الخوارزميات) :( Algorithms هي طريقة منطقية في التفكير نستخدمها من أجل الوصول إلى حل وضعية معينة عبر عدد من الخطوات المنطقية المترابطة فيما بينها. الراجع -1 كتاب /IP فهد - 2 البحر الشاسع لدخول الخوارزميات من بابها الواسع / خالد السعداني 3-Compilers Principles, Techniques, & Tools/Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman/PEARSON