E 'possibile convertire programmi Python ad un microprocessore linguaggio assembly standard come IEEE-694? La sintassi di montaggio è vicino a this one o quest'altro: http://www.ethicalhacker.net/content/view/152/2/Programma Python in un assembly standard?
risposta
Compile python to C, quindi utilizzare un compilatore C di vostra scelta per ricevere verso il basso per il montaggio.
In alternativa, utilizzare PyPy, specificando LLVM come destinazione e utilizzare LLVM Static Compiler per ottenere il linguaggio assembly per l'architettura di destinazione.
Non so come usare LLVM per ottenere un assembly standard e di base come IEEE-694. – Academia
Capisco l'idea di "assemblaggio standard", ma non è essenzialmente ciò che è il bytecode LLVM? –
Poiché Python è un linguaggio tipizzato in modo dinamico, questo sarebbe possibile solo se il programma di montaggio avrebbe utilizzato il Runtime Environment/libreria di Python per ottenere in modo dinamico gli oggetti.
così sarebbe possibile solo con un certo overhead.
Ma c'è RPython dal progetto PyPy. È un sottoinsieme ristretto del linguaggio Python (non è più digitato in modo dinamico e manca di molti moduli dalla libreria standard di Python). I programmi RPython possono essere tradotti in codice macchina (AFAIK genera codice C come codice intermedio).
stesso Python genera un codice intermedio per la sua macchina virtuale. Se vuoi dare un'occhiata a questo codice, usa il modulo dis dalla libreria standard Python. Questo genera una rappresentazione simile all'assemblaggio della tua funzione Python. Tieni presente che un microprocessore "reale" non sarebbe in grado di usarlo e che il risultato potrebbe cambiare con la versione di Python che stai utilizzando.
Voglio ottenere un assembly di base e di basso livello (senza macro). Non lo eseguirò su un vero microprocessore. – Academia
Non nello stesso modo di C, FORTRAN, COBOL, ecc. Le lingue che supportano il calcolo lambda o la gestione automatica della memoria non possono essere compilate direttamente all'assemblaggio. Un interprete può, tuttavia, essere fornito in microcodice o in un programma di bootstrap per colmare il divario e consentire "compilato" Python, LISP, ecc. (Alcune operazioni, come la garbage collection, vengono comunque eseguite all'interno dell'interprete incorporato nel pacchetto compilato binario.)
Grazie per inf. In realtà, sto pensando di compilare Python in C, quindi di smontare con GDB. Ma ancora cercando di trovare qualcosa di meglio. – Academia
- 1. Equazione di risoluzione del programma in Assembly
- 2. Terminare un programma Python
- 3. Riavvia un programma Python
- 4. Correla origine con elenco assembly di un programma C++
- 5. Uscita graziosa di un programma in Python?
- 6. esegue un programma esterno (eseguibile) in python?
- 7. La libreria standard Python è veramente standard?
- 8. Chiedere aiuto per fissare problema assembly inline in programma D
- 9. forzare un programma per svuotare l'output standard quando viene reindirizzato
- 10. programma inoltre semplice in python
- 11. Come trasformare un programma python .py in un programma eseguibile in Ubuntu?
- 12. MSBuild Attività inline - Riferimento assembly Microsoft non standard
- 13. Indicare standard C++ in origine in un modo standard
- 14. Eliminazione di variabili in librerie standard Python
- 15. Monitorare costantemente un programma/processo usando Python
- 16. Come si esegue un programma Python?
- 17. Soluzione standard per supportare Python 2 e Python 3
- 18. un semplice programma linguaggio "Ciao Mondo" Inline Assembly in C/C++
- 19. Un programma dovrebbe scrivere tutti parantheses corrette in Python
- 20. Programma applicazioni Web in python senza un framework?
- 21. Come posso profilare un programma multithread in Python?
- 22. Esiste un programma come GitLab scritto in Python?
- 23. python - principiante - integrazione di optparse in un programma
- 24. È possibile compilare un programma scritto in Python?
- 25. Il mio programma OCR in Python
- 26. Eseguire un assembly .exe da un buffer in C
- 27. Maven assembly: assembly
- 28. Il seguente programma deve essere compilato secondo lo standard?
- 29. Come posso inviare un segnale da un programma python?
- 30. Passaggio di molti dati dal programma Python al programma C
ho provato un sacco. Ho trovato software come LLVM ma il risultato non era quello atteso. – Academia
Dai un'occhiata al progetto [Python on a chip] (http://code.google.com/p/python-on-a-chip/). –
qual è il problema che stai effettivamente cercando di risolvere? – SingleNegationElimination