Domanda

Questo è davvero un grande domanda e sto per lo più alla ricerca di risorse in cui posso imparare di più su quanto segue.

So che l'interprete Python è scritto in C e produce bytecode per essere eseguito sulla macchina virtuale pitone anche scritto in C (giusto?). La mia domanda è: sarebbe il possibile realizzare entrambi questi in pitone per sé? Credo che dove sto andando con questo è il (tecnico) possibilità di scrivere qualcosa di simile su OS in pitone, in particolare senza staticamente compilazione qualcosa?

Se ho capito bene, python non ha un assemblatore, che avrebbe dovuto essere scritto anche in pitone. Sono queste cose qualcosa che potrebbe tecnicamente (fattivamente?) Essere fatto? O sarebbe la tipizzazione dinamica di pitone posa qualche tipo di problema?

so un po 'di architettura di microprocessore, assemblaggio e codice macchina, che recenti impara grad EE nella scuola. Ma mi perdo a guardare il quadro generale per linguaggi di livello superiore come Python.

È stato utile?

Soluzione

Si dovrebbe prima bisogno di scrivere un compilatore Python (non interprete), in qualsiasi lingua, preferibilmente Python. La prima esecuzione del compilatore avrebbe bisogno di essere eseguito throught l'interprete.

Si potrebbe quindi compilare il compilatore con se stesso, portando ad un compilatore nativo che non ha bisogno di interprete.

È quindi possibile utilizzare il compilatore per compilare qualsiasi Python in codice nativo.

Questo processo è chiamato bootstrap, ed è utilizzato da molti, se non la maggior parte, i principali compilatori per molte lingue.

Si può leggere di più su questo processo qui: http://en.wikipedia.org / wiki / Bootstrapping_ (compilatori)

Per quanto riguarda la creazione di un sistema operativo, si avrebbe bisogno di implementare, come minimo, un interprete Python, se si vuole evitare di codice compilato. Se si scrive un interprete Python come un microkernel, si potrebbe scrivere il resto del sistema operativo in Python. (Edit: ho appena descritto inavvertitamente Cleese, che Jiaaro detto:))

Altri suggerimenti

Compiler, non interprete. Ma siete alla ricerca di PyPy .

James Tauber ha anche costruito un proof of concept OS in python chiamato Cleese , e ha recentemente iniziato uno sforzo per farlo funzionare su PyPy (interprete Python scritto in python)

Per quanto riguarda la questione dell'attuazione del sistema operativo, è necessario un linguaggio di programmazione di sistema per implementare un sistema operativo. Fare tutto in puro Python non sarà possibile a meno che non si può sognare un assemblatore pitone e convertito Python per i binari direttamente eseguibili senza VM necessario.

Se si desidera il codice in assemblea e ottenere pitone da assemblare per voi, dare un'occhiata a un po 'datato e sperimentale pyasm .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top