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


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

أصبح العالم شبكة معلوماتية واحدة في اتساع دائم وأصبع علم الاتصالات جزء لا يتجزأ من أساسيات الحياة الحديثة (الاتصالات البشرية والإلكترونية بجميع أنواعها (حثية… سمعية… مرئية) وأصبحت البرمجة الهيكلية أساس لا يمكن تجاهله في الصناعة عمومًا والصناعات الحربية والصناعات الثقيلة خصوصًا وتمكن الإنسان العادي من إجراء الاتصالات الصوتية بالانترنت VOICE OVER IP وتمكن أيضًا من التجوال عبر الانترنت في جميع أرجاء العالم بواسطة شبكات الكمبيوتر NETWORK, NET, NAT, LAN, WAN, PAN, MAN والآن يمكن لخبير إيطالي إصلاح ماكينة ألمانية في جنوب إفريقيا باستخدام أحد تطبيقات البرمجة الهيكلية وهو SCADA IT وذلك عن طريق Matrix Laboratory مختبر أو محلل المصفوفات واستخدام خواص خاصة مثل (API) Application Program Interface هذه الخاصية تسمح لنا بكتابة برامج بلغة الـ (C) أو الـ (Fortran) وتحتوي على تعليمات تستدعي برامج فرعية وتعليمات تمكننا من جعل MATLAB كنواة حسابية في برامجنا المكتوبة باللغات السابقة وتعليمات تمكننا من قراءة وكتابة ملفات مخصصة للربط بين البرنامج واللغات الأخرى.

واستخدام دوال للبرمجة مثل الدوال الرياضية The Mathematical Function وهي عبارة عن مجموعة كبيرة من التوابع والدوال الرياضية والخوارزميات تبدأ من الدوال والتوابع القادرة على إنجاز الحسابات الأساسية (كالضرب والطرح والجمع والقسمة) وتكمل حتى نصل إلى الدوال و التوابع القادرة على إنجاز حسابات معقدة مثل إيجاد مقلوب أو مضروب مصفوفة من أي درجة كانت وإيجاد تابع بيسل.

 

%d9%85%d8%b5%d8%b7%d9%84%d8%ad%d8%a7%d8%aa-%d9%81%d9%8a-%d8%a7%d9%84%d8%a7%d9%84%d9%83%d8%aa%d8%b1%d9%88%d9%86%d9%8a%d8%a7%d8%aa

 

 

البرمجة ببساطة وفاعلية

إن أبسط طرق البرمجة هي سرد الأوامر في سلسلة متتالية يتم تنفيذ الأول ثم الثاني .. إلا إذا حددنا في البرنامج قفزات JUMP أو حلقات تكرارية LOOP أو جمل اختيار البدائل GOTO والجمل الشرطية عندها يغير البرامج مجراه ثم يعود لتنفيذ الأوامر واحد تلو الآخر وهذه الطريقة سهلة في البرامج البسيطة ولكن في البرامج المعقدة يصبح السرد طويلاً جدًا لذا جاءت طريقة البرمجة الهيكلية ففي لغات البرمجة يكون البرنامج أقسام يكون أحدها قسمًا رئيسيًا يتم تنفيذه أولاً هذا القسم يستدعي أقسام أخرى والأقسام الأخرى تستدعي أخرى وهكذا نسمى الأقسام وظائف Functions أو برامج فرعي Subroutine ويمكن لهذه الوظائف أن تأخذ معطيات وتعطينا نتائج أو حل المسألة الفرعية نسمي المعطيات معاملات Arg uments أو Parameters ونسمي القيمة التي يعيدها Return Value وبهذا تقسم المسألة المطلوب من البرنامج حلها إلى مسائل أبسط حتى نصل إلى عدد من المسائل التي نعرف كيف نحلها هناك العديد من لغات البرمجة منها ما يمكن للمستخدم العادي الكتابة بها ومنها ما يقتصر على المحترفين لغات المستوي الراقي منها اللغات التفسيرية وهي التي لا يقوم برنامج اللغة بتحويل النص من هذه اللغة إلى غلة الآلة وإنما يبقى النص بصيغته النصية ويسمى Script وعند تشغيل هذا النص يقوم برنامج المفسر بتحويل هذا النص أمرًا، وتنفيذه واحدًا تلو الآخر وفي كل مر تنفذه فيها الأوامر تعاد هذه العملية وفي أحسن الأحوال ينقل إلى صيغة مكثفة compiled script تختزل بعض عمليات التحويل ولكن لا يتحول النص إلى لغة الآلة بل إلى ملف ثنائي يسمى byte code وهو عبارة عن سلسلة من تعليمات بلغة الآلة الافتراضية (MACHINE LANGUAGE) ويكون هناك مفسر يسمى الآلة الافتراضية يتم استدعاؤه في كل مرة يتم تنفيذ البرنامج فيها حيث يقوم بالتحويل من الآلة الافتراضية إلى الحقيقية ويكون تنفيذ هذا byte code أسرع من النص script ويعتبر تتبع الأخطاء في اللغات التفسيرية أمرًا سهلاً لأنها تنفذ سطرًا فسطر. من الأمثلة على هذه اللغات bash و perl و python و php التي تتداول برامجها على شكل نصي script وهناك نوع من هذه اللغات python مثلاً يمكنه تحويل النص إلى لغة آلة وهمية افتراضية لكسب المزيد من السرعة ولكن أشهر تلك التي تتداول بشكل ثنائي غير نصي هي جافا java و visual basic كما يمكننا كتابة برامج بمستويات منخفضة أو عالية وذلك كله في بيئة سهلة الاستخدام وتحتوي على مميزات الـ (object – oriented – programming oop) على الرغم مما يقال إلا أنها تفسيرية لأن الملف التنفيذي هو عبارة عن ملف يقوم باستدعاء الآلة الافتراضية msvbvm60.dl مثلاً التي تتابع عملية تفسير البرنامج. وعلى الرغم من كل شيء تظل هذه اللغات بطيئة إلا أنها تمتاز بأنها ستعمل على أي منصة على أي نظام تشغيل إذا وجد المفسر الخاص بها على ذلك النظام وهي فلسفة هكذا لغات Run Every Where But Write Once أي أن تكتبه مرة واحدة وتنفذه أينما كان وعلى النقيض من ذلك توجد اللغات التي تعطي ملف بلغة الآلة مباشرة مثل لغة ++C/C وتسمى عملية تحويل ملف من الكود المصدر (الملف النصي) إلى لغة الآلة تصنيف Compliing ويكون البرنامج الناتج أسرع ما يكون خصوصًا إذا كنت تستعمل مصنف gcc الذي يمكنه تحسين Optimization أي زيادة سرعة برامجك أو تقليل حجمها ويمكنه استغلال كافة تعليمات معالج معين ولكن لغة ++C/C ليست للهواة فالهدف الأسمى في اللغات التصنيفية الجيدة والقياسية هو تحقيق العبارة الشهيرة Write once, compile every where أي أن تكتبه مرة واحدة وتصنفه أينما كان.