是否有可能將Python程序轉換爲微處理器標準彙編語言,如IEEE-694?彙編語法是接近this one 或其他這樣一個:http://www.ethicalhacker.net/content/view/152/2/Python程序變成標準程序集?
回答
Compile python to C,然後使用您所選擇的C編譯器把它降低到裝配。
或者,使用PyPy,指定LLVM作爲目標,並使用LLVM Static Compiler爲目標架構生成彙編語言。
我不知道如何使用LLVM來獲得像IEEE-694這樣的非常標準和基本的組件。 – Academia
我理解「標準彙編」的想法,但這不是LLVM字節碼的實質內容嗎? –
由於Python是一種動態類型語言,因此只有在彙編程序使用Python的運行時環境/庫來動態獲取對象時纔有可能。
所以它只會有可能與一些開銷。
但是從PyPy項目有RPython。它是Python語言的一個受限子集(它不再是動態類型的,並且缺少Python標準庫中的大多數模塊)。 RPython程序可以翻譯成機器碼(AFAIK它可以生成C碼作爲中間碼)。
Python本身爲其虛擬機生成一箇中間代碼。如果您想查看此代碼,請使用Python標準庫中的dis模塊。這會生成一個類似彙編的Python函數表示。請記住,「真實」的微處理器無法使用它,並且結果可能會隨着您使用的Python版本而改變。
我想獲得一個非常基本和低級別的程序集(沒有宏)。我不會在真正的微處理器上運行它。 – Academia
與C,FORTRAN,COBOL等不同,支持lambda微積分或自動內存管理的語言不能直接編譯爲程序集。然而,解釋器可以用微代碼或引導程序提供,以彌合差距並允許「編譯」Python,LISP等(某些操作,如垃圾收集,仍然在嵌入式解釋器中執行編譯的二進制文件)。
感謝inf。其實,我正在考慮將python編譯爲C,然後使用GDB進行分解。但仍試圖找到更好的東西。 – Academia
- 1. .Net應用程序標準圖標集
- 2. 基準Python程序
- 3. Silverlight:如何處理標準程序集
- 4. 合併.NET標準程序集
- 5. ChatScript與Python應用程序的集成
- 6. 標記程序集
- 7. 爲目標生成程序集
- 8. C#程序標準輸入
- 9. 標準perl程序表示
- 10. Java:小程序標準
- 11. Maven程序集:程序集
- 12. 什麼.Net程序集作爲標準集成到SQL Server 2008 R2 CLR中?
- 13. Android應用程序集成
- 14. 集成多個C++程序
- 15. Android應用程序集成
- 16. Python子程序讀取標準輸出/標準錯誤,如果程序在<10秒內崩潰
- 17. 更改程序集標題
- 18. 生成序列化程序集
- 19. 在Maven程序集中是否有程序集標識屬性?
- 20. 彈簧集成調度程序線程
- 21. 在angularjs web應用程序中集成chatbot應用程序的先決條件/標準是什麼?
- 22. Python程序轉換成Java
- 23. 程序集計數程序
- 24. C#程序集,什麼是程序集?
- 25. 如何使用angularjs將貝寶標準集成到我的應用程序中?
- 26. 帶應用程序的Android應用程序標準
- 27. 。Wix標準引導程序應用程序的網絡端口
- 28. 如何讓Reflection.Emit程序集訪問生成程序集中的內部成員?
- 29. 如何在SQL中調用標準的.NET程序集
- 30. 從.NET標準庫引用Xamarin.Android程序集
我試了很多。我發現像LLVM這樣的軟件,但結果並不是預期的。 – Academia
查看[Python on a chip](http://code.google.com/p/python-on-a-chip/)項目。 –
你實際上試圖解決什麼問題? – SingleNegationElimination