Вопрос

Это действительно обширный вопрос, и я в основном ищу ресурсы, где я могу узнать больше о следующем.

Я знаю, что переводчик Python написан в C и производит Bytecode, который будет работать на виртуальной машине Python, также написанный в C (вправо?). Мой вопрос в том, будет ли возможность реализовать оба из них в самом Python? Я думаю, куда я собираюсь с этим (техническая) возможность написать что-то вроде на ОС в Python, особенно без статически составляющего что-либо?

Если я правильно понимаю, Python не имеет ассемблера, который должен был бы быть написан как в Python. Это то, что можно сделать технически (возможно?)? Или бы динамический набрав Python представлять какую-то проблему?

Я немного знаю о микропроцессорной архитектуре, сборке и машинном коде, какой недавний град EE учится в школе. Но я потерялся, глядя на всю картину для языков более высокого уровня, такими как Python.

Это было полезно?

Решение

Сначала вам нужно будет написать компилятор Python (не переводчик) на любом языке, предпочтительно Python. Первый пробег компилятора должен будет проходить через интерпретатор.

Затем вы скомпилировате свой компилятор самостоятельно, приведя к собственному компилятору, который не нуждается в переводчика.

Затем вы можете использовать компилятор для компиляции любого Python на нативный код.

Этот процесс называется загрузкой и используется многими, если не большинство, основные компиляторы для многих языков.

Вы можете узнать больше об этом процессе здесь: http://en.wikipedia.org/wiki/bootstrapping_(ccompilers)

Что касается создания операционной системы, вам нужно будет реализовать, как голый минимум, интерпретатор Python, если вы хотите избежать компиляционного кода. Если вы пишете интерпретатор Python в качестве Microkernel, вы можете написать остальную часть операционной системы в Python. (Редактировать: я просто непреднамеренно описал Cleare, который упомянул Jiaaro :))

Другие советы

Компилятор, не переводчик. Но вы ищете Выпивка.

Джеймс Таубер также построил доказательство концепции ОС в Python Господство, и недавно начал усилия, чтобы он работал над Выпивка (Переводчик Python, написанный в Python)

Что касается вопроса реализации ОС, вам нужен язык системного программирования для реализации ОС. Делая все это в чистом Python, не будет возможно, если вы не сможете представить ассемблер Python и преобразовывать Python в непосредственно исполняемые файловые двоичные файлы, не требуется VM.

Если вы хотите кодировать в сборке и получить Python, чтобы собрать его для вас, посмотрите на слегка датированный и экспериментальный пиазм.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top