سؤال

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

هل يعني ذلك أن سي بايثون وتجميع وتنفيذ ملف PYC (ملف بايت كود؟). ثم ماذا تجميع ملف الحمر إلى ملف PYC؟ وكيف هو جيثون مختلفة من سي بايثون (باستثناء تنفيذها في لغات مختلفة).

وأنا أيضا قرأت في مكان ما أن بيثون C ++ التفسير. هل هذا صحيح؟ وماذا يعني ذلك؟

ما زلت جديدة جدا لبيثون، فاغفر لي إذا كنت تسأل الأسئلة الغبية ... شكرا جزيلا!

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

المحلول

وسي بايثون هو تنفيذ بيثون في C. انها التنفيذ الأول، ولا يزال واحد الرئيسي الذي يعني الناس عندما يتحدثون عن بايثون. وتجمع .py الملفات إلى .pyc الملفات. ملفات .pyc تحتوي bytecodes. كما يفسر تنفيذ سي بايثون تلك bytecodes. سي بايثون لم تكتب في C ++، فمن C.

وتجميع من .py إلى .pyc يحدث بشفافية حسب الحاجة. عند تنفيذ ملف .py، فإنه سوف يكون أول ترجمة لملف .pyc إذا لزم الأمر، ثم سيتم تفسير ملف .pyc.

وجيثون يختلف لأن (بالإضافة إلى التي يجري تنفيذها في جاوة بدلا من C) فإنه يجمع .py الملفات إلى ملفات. الطبقة بحيث يمكن تنفيذها في JVM.

نصائح أخرى

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

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

وجايثون ليست سوى النصف الأمامي - يقرأ مصدر بيثون، والنواتج bytecodes جافا، والتي يتم تفسيرها من قبل JVM. انها نفس العمارة كما سي بايثون، مع اثنين من الاختلافات يذكر: واحد: بايت كود جافا غير موحدة وموثقة، في حين يعتبر بايت كود سي بايثون الداخلية لبيثون، ويمكن أن تتغير في أي وقت. الثاني: JVM هو الكثير مجموعها أكثر تعقيدا من مترجم سي بايثون. وJVM لديها واحد من محركات جيت الأكثر تقدما في العالم، في حين أن مترجم سي بايثون هو بسيط جدا.

وسي بايثون على حد سواء المترجم بايت كود، ومترجم (الجهاز الظاهري).

ويكتشف آليا إذا لم يكن ملف قبل مترجم القائمة (.pyc) موجود، يجمع رمز، ويوفر ذلك.

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