05 - سلسلة تبسيط البرمجة - لغات البرمجة واللغات الحية

السلام عليكم ورحمة الله وبركاته

بسم الله الرحمن الرحيم

كما سبق وذكرنا في الحلقة السابقة أن البشر يُستثنَوا من مسألة البرمجة لأنهم مميزون بالعقل عن بقية الكائنات

ومن جهة أخرى اللغة المستخدمة بينهم هي لغة حية والتي تحوي احتمالات كثيرة ومتشعبة

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

ابتداء لا ألوم الكثير عندما ينحصر فكرهم عند سماع مصطلح البرمجة عن المبرمج والكمبيوتر لأن هذا هو الأكثر انتشارا وهو الذي يطفو على سطح التفكير عند ذكر المجال.

ولكن هذا لا يلغي أن هناك أمثلة من مجالات مختلفة

فهذا مثال على برمجة آلة ميكانيكيا وليس إلكترونيا

فالأكثرية يعرفون مكنة حياكة الصوف أو السجاد أو بعض الأقمشة الخاصة

والتي تعمل بالبطاقة المثقبة

http://cdn-static.zdnet.com... http://4.bp.blogspot.com/_a...

فعند وضع بطاقة تحوي على أسطر وكل سطر يحوي على ترتيب مختلف من تسلسل ثقوب

هذا يعتبر برمجة !

حيث يمكن اعتبار كل سطر من الثقوب هو تعليمة برمجية مكونة من مفردات اللغة وهي حالتان وجود ثقب أو لا

وبمجموع الأسطر الذي يشكل البطاقة كاملة يمكن اعتباره أنه هو البرنامج كاملا لأنه مجموعة من الأسطر وبالتالي مجموعة من التعليمات

فعند وضع بطاقة مثقبة في مكنة الحياكة يتم تحرك البطاقة سطرا سطرا مع كل سحب لذراع الحياكة

وهذا يجعل سطر جديدا يتموضع في مكان التنفيذ والذي يؤدي إلى تحريك الأذرع الحاملة للخيوط بوضعيات مختلفة تقابل تسلسل الثقوب في السطر الحالي

وهكذا ليتم في النهاية الحصول على نسيج من لونين يشكلون رسما محاكيا لشكل البطاقة

بهذا يمكن اعتبار الفنان الذي قام بتصميم شكل الثقوب في البطاقة هو المبرمج

والبطاقة نفسها هي البرنامج

والثقوب هي مفردات اللغة

والأسطر هي التعليمات

ومكنة الحياكة هي الشيء المُبرمَج

و تموضع حاملات الخيوط هو ترجمة البرنامج إلى لغة الآلة

والنسيج الذي نحصل عليه هو النتيجة المطلوبة من البرنامج

وترجمة كل سطر يجب ان يكون نتيجته واحدة وإلا لحصلنا في كل مرة على رسمة مختلفة وهذا مرفوض لأن البرنامج أو البطاقة وضعت للحصول على شكل مطابق

هذا يعتبر مثالا عن برمجة ميكانيكية

ويوجد أيضا مثال عن برمجة كهربائية

من يذكر منكم الغسالات الأتوماتيكية القديمة وليست الحديثة

فالحديثة كلها إلكترونية

بينما القديمة فهي كهربائية

بمعنى أن برنامج دورة الغسيل يتم من خلال قطعة تحوي على خطوط بتماسات مختلفة

http://www.bizrice.com/uplo... http://image.made-in-china....

عند تدوير المفتاح إلى البرنامج المطلوب هناك نابض حلزوني يتم شده ليقوم بإعادة تدوير المفتاح إلى وضعه الطبيعي

تماما مثل ساعات الربط أو ألعاب الأطفال التي يتم ربطه ليتحرك بفعل قوة ارتجاع النابض

وأثناء عملية دوران مفتاح الغسالة والي يكون إيقاعيا بواسطة منظم للحركة (مثل عمل بندول أو رقاص الساعة الذي يضبط إيقاع الدوران ليكون كل ثانية مثلا)

وبالتالي يكون ارتجاع المفتاح على شكل طقات بحيث نسمع الطقة كل عدة دقائق

ومع كل حركة (طقة) يصل فيها أحد خطوط التماسات إلى مكان فيه تماسات مقابلة متصلة بالأجزاء المختلفة للغسالة

مثلا تماس واصل للمحرك وآخر للمضخة وآخر لسخان الماء وآخر لدرج مادة الغسيل وهكذا

ولكون خطوط المفتاح تم تشكيلها كل خط وفق تسلسل معين بحيث كل خط يقوم بوصل أجزاء وفصل آخرى

وبالتالي نرى أن الغسالة تقوم بتسلس معين لتشغيل وإيقاف الأجزاء المختلفة بحيث تكون وفق ترتيب معين لأداء الغرض المطلوب منها وهو عملية الغسيل

من هنا فالذي صنع المفتاح بخطوطه وفق ترتيب معين هو المبرمج

و المفتاح نفسه أي مجموع الخطوط هي البرنامج

كل خط يعتبر تعليمة

مكونة من مفردات اللغة وهي حالتان توصيل أو قطع الكهرباء عن الجزء المتصل به

الغسالة هي الآلة القابلة للبرمجة

عمليات تشغيل أجزاء وإيقاف أجزاء أخرى هي ترجمة البرنامج إلى لغة الآلة

الحصول على غسيل مغسول ومنشف هو النتيجة المطلوبة من البرنامج

أنوه أن المفتاح يكون فيه أكثر من مجموعة للخطوط والتي تمثل كل واحدة منها برنامجا مستقلا

ولهذا نجد على واجهة الغسالة رموز لضبط وضعية المفتاح عليها كنوع من اختيار البرنامج المناسب بحسب نوعية الغسيل

أبيض أو ملون أو قطني أو غيره

http://www.washerhelp.co.uk...

هذا هو موضوع درسنا لهذه الحلقة وكيف أن كل تعليمة يجب أن تترجم إلى مقابل وحيد بلغة الآلة حتى لا تختلف النتيجة المرجوة

دمتم بأمان الله