Вопрос о конструкции питона - PullRequest
1 голос
/ 06 декабря 2010

Мой друг, программист, сказал мне, что "Python написан на Python" или что-то в этом роде. Он имел в виду, что интерпретатор Python написан на Python (я думаю). Я читал на некоторых сайтах, что Python интерпретирует в режиме реального времени ЛЮБОЙ язык программирования (даже C ++ и ASM). Это правда?

Может ли кто-нибудь объяснить мне, КАК ЭТО МОЖЕТ БЫТЬ?

Единственное объяснение, которое я придумал, подумав немного: python находится на том же «уровне» ASM, имеет смысл интерпретировать python любой язык (то есть на более высоком уровне), я прав? Имеет ли это смысл?

Я был бы благодарен, если бы кто-нибудь немного объяснил мне об этом.

Спасибо

Ответы [ 4 ]

5 голосов
/ 06 декабря 2010

Это не правда.Стандартная реализация Python - CPython - написана на C, хотя большая часть стандартной библиотеки написана на Python.Существуют другие реализации в Java (Jython) и .NET (IronPython).

Существует проект под названием PyPy, который, помимо прочего, переписывает части Python на C в Python.Но основная разработка Python по-прежнему основана на C.

2 голосов
/ 06 декабря 2010

Ваш друг сказал вам, что Python * сам хостинг :

Термин сам хостинг был придуман для обозначения использования компьютерной программы как части набора инструментовили операционная система, которая производит новые версии этой же программы, например, компилятор, который может компилировать свой собственный исходный код.Самостоятельное размещение программного обеспечения является обычным явлением на персональных компьютерах и более крупных системах.Другие программы, которые, как правило, являются автоматически размещаемыми, включают в себя ядра, ассемблеры, оболочки и программное обеспечение для контроля версий.

Конечно, самая первая версия Python должна была быть загружена каким-то другим механизмом - возможно, C илиC ++, поскольку это довольно стандартные цели для лексеров и генераторов синтаксических анализаторов .

0 голосов
/ 06 декабря 2010

Python написан на C ( CPython ), а также на Python.

Читайте о pypy - это Python, написанный на Python.

Написание Python на Python - это двухэтапный танец.

  1. Напишите Python на другом языке. C, Java, ассемблер, COBOL, что угодно.

  2. Когда у вас есть работающая реализация Python (т.е. проходит все тесты), вы можете написать Python на Python.

Когда вы прочитаете про pypy, вы увидите, что они делают что-то более сложное, чем это. «Мы используем подмножество языка Python высокого уровня под названием RPython, в котором мы пишем языки как простые интерпретаторы с небольшим количеством ссылок и зависимостей от деталей более низкого уровня».

Итак, они начали с работающего Python, а затем разбили среду выполнения на это ядро ​​RPython, которое является наименьшим самородком совершенства Python. Затем они создали остальную часть Python вокруг ядра RPython.

0 голосов
/ 06 декабря 2010

Обычно, когда кто-то говорит, что язык X написан на X, они означают, что сначала компилятор или интерпретатор для X был написан на ассемблере или другом таком языке, скомпилирован, а затем лучше компилятор или интерпретатор былнаписанный на X.

Кроме того, когда существует очень простой компилятор / интерпретатор для X, иногда проще добавить новые языковые возможности, классы и т. д., написав их на X, чем расширять компилятор /сам переводчик.

...