Можно ли преобразовать программы Python на язык ассемблера стандартного микропроцессора, например IEEE-694? Синтаксис сборки близко к this one или этого другого: http://www.ethicalhacker.net/content/view/152/2/Программа Python в стандартную сборку?
ответ
Compile python to C, а затем использовать компилятор языка вашего выбора, чтобы получить его до сборки.
В качестве альтернативы используйте PyPy, указав LLVM в качестве цели, и используйте LLVM Static Compiler, чтобы получить язык ассемблера для вашей целевой архитектуры.
Я не знаю, как использовать LLVM, чтобы получить стандартную и базовую сборку, такую как IEEE-694. – Academia
Я понимаю идею «стандартной сборки», но разве это не то, что такое байт-код LLVM? –
Поскольку язык Python является динамически типизированным, это было бы возможно только в том случае, если программа сборки использовала среду/библиотеку среды выполнения Python для динамического получения объектов.
Таким образом, это возможно только с некоторыми накладными расходами.
Но есть RPython от проекта PyPy. Это ограниченное подмножество языка Python (оно больше не динамически типизировано и не хватает большинства модулей из стандартной библиотеки Python). Программы RPython могут быть переведены на машинный код (AFAIK генерирует код C как промежуточный код).
Python сам создает промежуточный код для своей виртуальной машины. Если вы хотите взглянуть на этот код, используйте модуль dis из стандартной библиотеки Python. Это создает сборочное представление вашей функции Python. Имейте в виду, что «настоящий» микропроцессор не сможет использовать это и что результат может измениться с помощью используемой версии Python.
Я хочу получить очень простой и низкоуровневый сбор (без макросов). Я не буду запускать его на реальном микропроцессоре. – Academia
Не так же, как C, FORTRAN, COBOL и т. Д. Языки, поддерживающие лямбда-исчисление или автоматическое управление памятью, не могут быть скомпилированы непосредственно на сборку. Однако интерпретатор может быть предоставлен в микрокоде или в программе начальной загрузки, чтобы устранить пробел и разрешить «скомпилированный» Python, LISP и т. Д. (Некоторые операции, такие как сбор мусора, все еще выполняются внутри встроенного интерпретатора, упакованного в скомпилированный двоичный файл.)
Спасибо за инф. Собственно, я собираюсь скомпилировать python на C, а затем разобрать GDB. Но все еще пытаюсь найти что-то лучшее. – Academia
- 1. Как создать стандартную сборку Linux?
- 2. Как я могу назвать стандартную сборку .NET в SQL
- 3. Возвращает стандартную стандартную ссылку?
- 4. Как изменить стандартную среду python в VS2015?
- 5. Программа Blackjack в python
- 6. Программа в Python
- 7. Как изменить стандартную среду Anaconda python
- 8. Использовать стандартную библиотеку Python с DJANGO ... возможно?
- 9. Включает ли IronPython стандартную библиотеку python?
- 10. Перевод кода Python на сборку
- 11. Почему g ++ связывает стандартную библиотеку?
- 12. Удаленная программа Python как локальная программа
- 13. Программа медленной переборки в python
- 14. Программа Radix Sort в python
- 15. Программа Python, преобразованная в Java
- 16. программа скорости в программе python
- 17. программа python, застрявшая в окне
- 18. пользовательская программа преобразования в python?
- 19. Программа сетевой связи в python
- 20. Программа Leap-year в Python
- 21. Программа входа в систему Python
- 22. Простая программа сумм в Python
- 23. Программа управление потоком в Python
- 24. Преобразование программ Python в сборку IEEE 694
- 25. Как использовать сборку в python 3.5.2
- 26. назначить стандартную функцию для пустой константы списка в Python
- 27. Восстановить настенное время в Python, используя стандартную библиотеку?
- 28. Рекурсивная программа Python
- 29. Программа Python PyQt Структура
- 30. Программа Python не запускается
Я пробовал много. Я нашел программное обеспечение, такое как LLVM, но результат не ожидался. – Academia
Взгляните на проект [Python on a chip] (http://code.google.com/p/python-on-a-chip/). –
В чем проблема, которую вы на самом деле пытаетесь решить? – SingleNegationElimination