كيف يمكن للمرء أن يحدد ويصف هذه النقاط المختلفة في الوقت المناسب؟
-
21-09-2019 - |
سؤال
خلفية: طلب مني Eldridge شرح الفرق بين مراحل الفرق من الوقت عندما يتعلق الأمر بالكتابة ونشر التعليمات البرمجية.
هو يريد أن يعرف:
- 1) ما هو الفرق بين: 1) وقت التصميم ؛ 2) تجميع الوقت ؛ 3) وقت التشغيل؟
- 2) ما هي الأمثلة المحددة للأشياء التي لن يتمكن مبرمجها من التسلل بجد في رمزه ولا يعرف حتى وقت التشغيل؟
- 3) هل لغات البرمجة النصية مع العديد من "الحيل" في وقت التشغيل أفضل (بخلاف أسباب التفضيل الشخصية) للأشخاص الذين يحتاجون إلى مزيد من مرونة "وقت التشغيل"؟
سؤال:
على الرغم من أن لدي إجابات عن Eldrige بناءً على وجهات نظر البرمجة الخاصة بي ، إلا أنه يبدو أنه من الجيد الحصول على وجهات نظر مختلفة ، حتى لا أعطي إجابة "منحازة". ... إذن ، ما هي الإجابة غير المتحيزة التي يمكنك تقديمها لشرح هذه الأشياء (على افتراض أي لغة [S]).
المحلول
حسنًا ، بما أنه لم يحاول أي شخص آخر ، فسأخترق في هذا.
وقت التصميم هو الوقت الذي يقضيه إنشاء الملفات المصدر. رمز في الملفات النصية ، تعريفات النماذج ، إلخ.
وقت الترجمة هو الوقت الذي يقضيه في المراحل المختلفة من التجميع. المعالجة المسبقة ، lexing/التحليل ، إنشاء AST والتحسين ، توليد الكود ، والربط.
مدة العرض هو الوقت الذي يقضيه من عندما يتم تحميل التنفيذ حتى يتم تحرير الذاكرة المستخدمة في صفحات النص.
مبرمج تستطيع أي شيء يعجبونه ، لكن من غير المنطقي بعض الأشياء:
- الدليل الرئيسي للمستخدم
- موقع موارد قاعدة البيانات الخارجية
- تكوين الأجهزة المتوقعة للجهاز الذي يعمل على تنفيذ
- إلخ.
كل من اللغات الثابتة والديناميكية (أنا شخصيا اكرهه وصف "لغات البرمجة النصية") لها مكان في الحوسبة. لا يوجد شيء يمكن أن تفعله لغة ديناميكية لا يمكن أن تكون لغة ثابتة ؛ الفرق الوحيد هو في مقدار التعليمات البرمجية التي يتطلبها تنفيذ الوظيفة.
نصائح أخرى
وقت التصميم - أود أن أقول هو عندما تستخدم الأدوات الآلية ومصممي الجرافيك لإنشاء رمز المصدر الخاص بك. يمكن تحديد أشياء مثل القيم الصحيحة لخاصية عنصر التحكم في "وقت التصميم"
وقت الترجمة - هل الأشياء التي يمكن تحديدها بواسطة برنامج التحويل البرمجي في وقت الترجمة ، على سبيل المثال ، يمكن للمترجم تحديد أن التعبير التالي سيحتوي دائمًا على القيمة الثابتة لـ "86400".
const int SecsInDay = 60 * 60 * 24;
مدة العرض - هي للأشياء التي لا يمكن تحديدها إلا أثناء تشغيل البرنامج (على سبيل المثال بواسطة VM). يتضمن ذلك أي إدخال مستخدم ، وإعدادات تكوين ديناميكية ، إلخ.
تعد لغات البرمجة النصية أكثر مرونة في إنشاء منطق متحور حيث يمكن تجميعها من خلال التجميع وإنشاء سلوك جديد بناءً خدمة الويب ، إلخ.