كيف يمكن للمرء أن يحدد ويصف هذه النقاط المختلفة في الوقت المناسب؟

StackOverflow https://stackoverflow.com/questions/2277759

سؤال

خلفية: طلب مني Eldridge شرح الفرق بين مراحل الفرق من الوقت عندما يتعلق الأمر بالكتابة ونشر التعليمات البرمجية.

هو يريد أن يعرف:

  • 1) ما هو الفرق بين: 1) وقت التصميم ؛ 2) تجميع الوقت ؛ 3) وقت التشغيل؟
  • 2) ما هي الأمثلة المحددة للأشياء التي لن يتمكن مبرمجها من التسلل بجد في رمزه ولا يعرف حتى وقت التشغيل؟
  • 3) هل لغات البرمجة النصية مع العديد من "الحيل" في وقت التشغيل أفضل (بخلاف أسباب التفضيل الشخصية) للأشخاص الذين يحتاجون إلى مزيد من مرونة "وقت التشغيل"؟

سؤال:

على الرغم من أن لدي إجابات عن Eldrige بناءً على وجهات نظر البرمجة الخاصة بي ، إلا أنه يبدو أنه من الجيد الحصول على وجهات نظر مختلفة ، حتى لا أعطي إجابة "منحازة". ... إذن ، ما هي الإجابة غير المتحيزة التي يمكنك تقديمها لشرح هذه الأشياء (على افتراض أي لغة [S]).

هل كانت مفيدة؟

المحلول

حسنًا ، بما أنه لم يحاول أي شخص آخر ، فسأخترق في هذا.

وقت التصميم هو الوقت الذي يقضيه إنشاء الملفات المصدر. رمز في الملفات النصية ، تعريفات النماذج ، إلخ.

وقت الترجمة هو الوقت الذي يقضيه في المراحل المختلفة من التجميع. المعالجة المسبقة ، lexing/التحليل ، إنشاء AST والتحسين ، توليد الكود ، والربط.

مدة العرض هو الوقت الذي يقضيه من عندما يتم تحميل التنفيذ حتى يتم تحرير الذاكرة المستخدمة في صفحات النص.

مبرمج تستطيع أي شيء يعجبونه ، لكن من غير المنطقي بعض الأشياء:

  • الدليل الرئيسي للمستخدم
  • موقع موارد قاعدة البيانات الخارجية
  • تكوين الأجهزة المتوقعة للجهاز الذي يعمل على تنفيذ
  • إلخ.

كل من اللغات الثابتة والديناميكية (أنا شخصيا اكرهه وصف "لغات البرمجة النصية") لها مكان في الحوسبة. لا يوجد شيء يمكن أن تفعله لغة ديناميكية لا يمكن أن تكون لغة ثابتة ؛ الفرق الوحيد هو في مقدار التعليمات البرمجية التي يتطلبها تنفيذ الوظيفة.

نصائح أخرى

وقت التصميم - أود أن أقول هو عندما تستخدم الأدوات الآلية ومصممي الجرافيك لإنشاء رمز المصدر الخاص بك. يمكن تحديد أشياء مثل القيم الصحيحة لخاصية عنصر التحكم في "وقت التصميم"

وقت الترجمة - هل الأشياء التي يمكن تحديدها بواسطة برنامج التحويل البرمجي في وقت الترجمة ، على سبيل المثال ، يمكن للمترجم تحديد أن التعبير التالي سيحتوي دائمًا على القيمة الثابتة لـ "86400".

const int SecsInDay = 60 * 60 * 24; 

مدة العرض - هي للأشياء التي لا يمكن تحديدها إلا أثناء تشغيل البرنامج (على سبيل المثال بواسطة VM). يتضمن ذلك أي إدخال مستخدم ، وإعدادات تكوين ديناميكية ، إلخ.

تعد لغات البرمجة النصية أكثر مرونة في إنشاء منطق متحور حيث يمكن تجميعها من خلال التجميع وإنشاء سلوك جديد بناءً خدمة الويب ، إلخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top