LINUX.ORG.RU

Диалог о первичности.


0

2

Интерпретатор питона, по сути, выполняет код СИ? Интерпретатор написан на Сях. Он читает синтаксис сценария, написанного на питоне, переводит ее в аналогичную запись на Си и выполняет?



Последнее исправление: ClosedBSD (всего исправлений: 1)

переводит ее в аналогичную запись на Си и выполняет?

Нет.

PolarFox ★★★★★
()

анон реквестирует матановую капчу при регистрации

+ в отдалённой перспективе — сабжевую капчу при отправке любого сообщения регистрантом

anonymous
()

Интерпретатор питона, по сути, выполняет код СИ?

Нет. Интерпретатор Python ВНЕЗАПНО на самом деле выполняет код на Python.

Он читает синтаксис сценария, написанного на питоне, переводит ее в аналогичную запись на Си и выполняет?

Нет.

Deleted
()
Ответ на: комментарий от ClosedBSD

Я же говорил про интерпретатор.

Интерпретатор интерпретирует, т.е. разбирает исходный текст и выполняет те или иные (сишные) функции в зависимости от его содержания.

annulen ★★★★★
()
Ответ на: комментарий от Zhbert

Pypy умеет JIT (ради этого он и создан). Поэтому не совсем интерпретатор.

Deleted
()
Ответ на: комментарий от ms-dos32

Нет, CPython - тупой интерпретатор, никаких JIT-ов и прочего.

Deleted
()
Ответ на: комментарий от annulen

разбирает исходный текст и выполняет те или иные (сишные) функции в зависимости от его содержания.

Сишные же? =)

ClosedBSD
() автор топика
Ответ на: комментарий от ClosedBSD

Точно так же, как и питон: тупая интерпретация :)

Deleted
()
Ответ на: комментарий от ClosedBSD

КО: код на питоне он выполняет. Путем интерпретации :)

Deleted
()
Ответ на: комментарий от annulen

процессор выполняет. и не «сишные», а машинный код (тк си, в широкоиспользуемых вариациях — язык компилируемый)

anonymous
()
Ответ на: комментарий от anonymous

Это я пытаюсь на пальцах объяснить, что такое интерпретатор. Понятно, что все в итоге выполняет процессор, которому на си глубоко наплевать :)

annulen ★★★★★
()
Ответ на: комментарий от Bad_ptr

Разъяснил. Перед сном что-то в голову ударило=)

ClosedBSD
() автор топика
Ответ на: комментарий от ClosedBSD

Ты говорил про интерпретатор Python. Обычно это CPython (который в твоем дистре лежит просто в пакете python). Если ты имел в виду что-то альтернативное, укажи прямо, просто by default под словами «интерпретатор python» в 99% случаев имеется в виду именно CPython.

Deleted
()
Ответ на: комментарий от ClosedBSD

Так я ж тебе на полном серьезе без никакого троллинга и максимально по делу на вопросы ответить пытаюсь.

Ну раз ты настаиваешь, то ухожу. Но к чему именно в моих сообщениях у тебя претензии?

Deleted
()

Предлагаю ввести список обязательно прочтённых книг при регистрации.

anonymous
()
Ответ на: комментарий от Bad_ptr

Причём здесь «Диалог о первичности».

Разговор о вечном - курица или яйцо.

ClosedBSD
() автор топика

Компилятор питона компилирует текст в байткод. Виртуальная машина исполняет байткод, не преобразуя его в машинный код (в текущей официальной реализации). То есть, есть один слой компиляции и один слой интерпретации.

Deleted
()
Ответ на: комментарий от Bad_ptr

Да я уже понял. Но все равно задело: реально потратил на ТС-а время, разыскал ему материал, по которому сам изучал это дело...

Deleted
()

annoynimous всё правильно сделал

wxw ★★★★★
()
Ответ на: комментарий от ClosedBSD

Нет. То что вы описываете называется «транслятор» — перевод текста с одного языка на другой. Интерпретатор CPython — это, собственно, интерпретатор байткода + компилятор в байткод.

см. http://docs.python.org/faq/design.html#can-python-be-compiled-to-machine-code...

Deleted
()
Ответ на: комментарий от Deleted

Чёрт, пока искал документацию, автора забанили с формулировкой «Клоун».

Deleted
()

Он читает синтаксис сценария, написанного на питоне, переводит ее в

связные структуры в памяти (AST, то есть удобное, в смысле traversable, представление исходного кода) которые потом передаёт функции eval, которая обходит эти структуры и производит нужные _эффекты_, в зависимости от того что в этих структурах, и накапливает _значение_, которое возвращается после выполнения функции eval. Пример - http://paste.lisp.org/display/127863.

Компилятор бы обходил эти структуры, генерируя, статически, си, ассемблер, машинный код или любой другой target отличный от host, записывая его в файл, либо динамически размещал бы скомпилированный код в памяти чтобы его можно было тут же выполнить (JIT, пример - http://paste.lisp.org/display/74068).

quasimoto ★★★★
()
Ответ на: комментарий от quasimoto

Я просто спросил про приблизительную механику процесса. Язык СИ я не знаю и изучать не собираюсь.

anonymous
()
Ответ на: комментарий от ClosedBSD

Да, уровень дебилизма даже для ЛОРа зашкаливающий...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.