Question

Ceci est une question très vaste et je suis surtout pour les ressources où je peux en apprendre davantage sur ce qui suit.

Je sais l'interpréteur python est écrit en C et produit bytecode à exécuter sur la machine virtuelle Python a également écrit en C (à droite?). Ma question est serait-il possible de mettre en œuvre ces deux en python lui-même? Je suppose que là où je veux en venir est la possibilité (technique) d'écrire quelque chose comme sur OS en python, en particulier sans compiler statiquement quoi que ce soit?

Si je comprends bien, python ne dispose pas d'un assembleur qui devrait être écrit aussi bien en python. Ces choses sont quelque chose qui pourrait techniquement (réalistement?) Être fait? Ou bien le typage dynamique de python poser un certain genre de problème?

Je sais un peu plus sur l'architecture de microprocesseur, l'assemblage et le code de la machine, quelle apprend récemment EE grad à l'école. Mais je me perds en regardant le tableau d'ensemble pour les langues de niveau supérieur comme python.

Était-ce utile?

La solution

Vous ne devez d'abord écrire un compilateur Python (pas d'interprète), dans toutes les langues, de préférence Python. La première course du compilateur devrait être exécuté throught l'interprète.

Vous pouvez ensuite compiler votre compilateur avec lui-même, conduisant à un compilateur natif qui n'a pas besoin d'interprète.

Vous pouvez ensuite utiliser le compilateur pour compiler Python tout en code natif.

Ce processus est appelé bootstrapping, et est utilisé par beaucoup, sinon la plupart, des compilateurs majeurs pour plusieurs langues.

Vous pouvez en savoir plus sur ce processus ici: http://en.wikipedia.org / wiki / Bootstrapping_ (compilateurs)

En ce qui concerne la création d'un système d'exploitation, vous devez mettre en œuvre, au strict minimum, un interpréteur Python, si vous voulez éviter le code compilé. Si vous écrivez un interpréteur Python comme micronoyau, vous pouvez écrire le reste du système d'exploitation en Python. (Edit: Je inadvertance décrit Cleese, qui Jiaaro mentionné:))

Autres conseils

compilateur, pas d'interprète. Mais vous cherchez PyPy .

James Tauber a également construit une preuve de concept OS en python appelé Cleese , et a récemment commencé un effort pour le faire fonctionner sur Pypy (interpréteur python écrit en python)

En ce qui concerne la question de la mise en œuvre du système d'exploitation, vous avez besoin d'un langage de programmation du système pour mettre en œuvre un système d'exploitation. Faire tout en python pur ne sera pas possible à moins que vous pouvez imaginer un assembleur de python et python converti pour les binaires exécutables directement pas VM nécessaire.

Si vous voulez code dans l'assemblage et obtenir python pour assembler pour vous, jetez un oeil à un peu daté et expérimental pyasm .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top