سؤال

هذا سؤال واسع حقًا وأنا أبحث في الغالب عن الموارد حيث يمكنني معرفة المزيد حول ما يلي.

أعلم أن مترجم Python مكتوب في C ويقوم بإنتاج Bytecode ليتم تشغيله على جهاز Python الظاهري أيضًا المكتوب في C (أليس كذلك؟). سؤالي هو هل سيكون من الممكن تنفيذ كل من هؤلاء في بيثون نفسها؟ أظن إلى أين أنا ذاهب مع هذا هو الاحتمال (الفني) لكتابة شيء مثل OS في Python ، وخاصة دون تجميع أي شيء بشكل ثابت؟

إذا فهمت بشكل صحيح ، فإن Python ليس لديه تجميع يجب أن يكتب أيضًا في Python. هل هذه الأشياء يمكن أن يتم ذلك من الناحية الفنية؟)؟ أم أن الكتابة الديناميكية للبيثون تشكل نوعًا من المشاكل؟

أنا أعرف قليلاً عن الهندسة المعمارية والمعالج الدقيق والرمز الجهاز ، ما يتعلمه خريج EE الأخير في المدرسة. لكنني أضيع النظر في الصورة الكاملة للغات ذات المستوى الأعلى مثل بيثون.

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

المحلول

ستحتاج أولاً إلى كتابة مترجم بيثون (وليس مترجمًا) ، بأي لغة ، ويفضل أن يكون بيثون. يجب أن يتم تشغيل الجولة الأولى من المترجم عبر المترجم.

يمكنك بعد ذلك تجميع المترجم الخاص بك مع نفسه ، مما يؤدي إلى مترجم أصلي لا يحتاج إلى مترجم.

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

تسمى هذه العملية bootstrapping ، ويستخدمها العديد من المجمعين الرئيسيين ، إن لم يكن معظمهم للعديد من اللغات.

يمكنك قراءة المزيد حول هذه العملية هنا: http://en.wikipedia.org/wiki/Bootstrapp_(compilers)

بالنسبة لإنشاء نظام تشغيل ، ستحتاج إلى تنفيذ ، كحد أدنى ، مترجم Python ، إذا كنت ترغب في تجنب الكود المترجم. إذا قمت بكتابة مترجم بيثون كصاحب microkernel ، فيمكنك كتابة بقية نظام التشغيل في Python. (تحرير: لقد وصفت عن غير قصد كليز ، الذي ذكره جيارو :))

نصائح أخرى

المترجم ، وليس مترجم. لكنك تبحث عن Pypy.

قام جيمس تاوبر أيضًا ببناء دليل على نظام التشغيل المفهوم في بيثون يسمى كليز, ، وبدأت مؤخرًا مجهودًا لجعلها تعمل عليها Pypy (مترجم بيثون مكتوب في بيثون)

فيما يتعلق بسؤال تنفيذ نظام التشغيل ، تحتاج إلى لغة برمجة النظام لتنفيذ نظام التشغيل. لن يكون القيام بكل شيء في Python Pure ممكنًا إلا إذا كنت تستطيع أن تحلم بمجموع Python وتحويل Python إلى ثنائيات قابلة للتنفيذ مباشرة لا تحتاج إلى VM.

إذا كنت ترغب في الترميز في التجميع والحصول على Python لتجميعها من أجلك ، فابحث عن إلقاء نظرة على تأريخ قليلاً وتجريبي Pyasm.

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