سؤال

أنا الآن تعلم بيرل.ما هي إيجابيات وسلبيات تفسير اللغات ؟

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

المحلول

صارخ نسخ من ويكيبيديا لذا سأجعل هذا المجتمع ويكي.

مزايا تفسير اللغات

تفسير لغات تعطي برامج معينة مرونة إضافية على ترجمة اللغات.الميزات التي هي أسهل في التنفيذ في المترجمين في المجمعين تشمل (ولكن لا تقتصر على):

  • منصة الاستقلال (جافا بايت كود ، على سبيل المثال)
  • تفكير انعكاسي استخدام المقيم (مثلا ، الدرجة الأولى eval وظيفة)
  • ديناميكية الكتابة
  • سهولة التصحيح (فمن الأسهل للحصول على التعليمات البرمجية المصدر المعلومات في تفسير اللغات)
  • برنامج صغير الحجم (منذ تفسير لغات المرونة لاختيار التعليمات البرمجية)
  • تحديد النطاق الديناميكي
  • إدارة الذاكرة التلقائي

مساوئ تفسير اللغات

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

نصائح أخرى

الايجابيات:

  • النماذج الأولية السريعة (لا كتابة, ترجمة, تنفيذ دورة)
  • عبر منصة (على افتراض المترجمين موجودة في كل منصة)

سلبيات:

  • الأداء (لن يكون بالسرعة التي جمعت اللغات)

وأكبر عيب؟ ومعظم يقولون سرعة التنفيذ، ولكن ليس دائما صحيحا بالضرورة. معظم لغات تفسير الحديثة إلى أن تفسر الملفات في حالة وسطية على بناء، والتي عندما أعدم وتحولت إلى رمز الجهاز تماما كما أي لغة أخرى في هذه الأيام تحويل. مع التخزين المؤقت ذكي يجري في الغالب السائد داخل هذه اللغة نظام رصد السفن في هذه الأيام، فإنه لا ينبغي أن يكون أكثر من اللازم من قضية. وهذا بالتأكيد لا يعني أن أداء ليست قضية مع لغات تفسير، فقط أنه في كثير من الأحيان ليس سيئا كما معظم يوحي.

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

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

Con:

  • أكبر عيب هو على الارجح سرعة التنفيذ

برو:

  • أكبر رأسا على عقب وربما بدوره حول الوقت أيرمز اختبار التكرار loop

لوضع لنقطة واضحة وواسعة، واللغات جمعت تميل إلى أن تكون أداء أعلى من تلك التي تفسر، منذ تجميع ما يحول دون الحاجة إلى مترجم وقت التشغيل.

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

واللغات فسر تميل إلى أن تكون أسرع قليلا لمعرفة، بقدر ما تسمح لك لتحرير بسرعة / تشغيل / اكرر دون انتظار مترجم. في تجربتي أنها تميل إلى أن تكون على مستوى أعلى، مما يجعلها أسهل كذلك.

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

وPERL واحدة من تلك اللغات التي يطمس الخطوط. بينما لها شهرة لكونها لغة البرمجة القوية، هل يمكن ترجمة ذلك إلى أن تكون الأم.

وو"بطء" من ديناميك لغات مثل PERL قد لا يكون مشكلة لفترة أطول. وفيما يلي عرضا ممتازا على أحدث الاتجاهات في مجال ديناميكي اللغة:

HTTP: //steve-yegge.blogspot كوم / 2008/05 / ديناميكية اللغات الضربة-back.html

كما جافا هي لغة

الايجابيات:

  • التوافق:آلة جافا الافتراضية يوافق هذا مفهوم "الكتابة مرة واحدة ، تشغيل في كل مكان."
  • الأمن:تشغيل البرنامج في JVM لذلك إذا كان أي فشل يحدث هذا لا يؤثر على أنظمة تشغيل الملفات.
  • إدارة الذاكرة.

سلبيات:

  • آلة جافا الافتراضية لديها العديد من التطبيقات ، على سبيل المثال عند كتابة برنامج يستخدم جافا 8 ميزات هذا البرنامج يجب أن تعمل على JVM مع 8 النسخة لا أقل.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top