Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 7, 2014 13:35:41

erebus
Зарегистрирован: 2014-01-07
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

Доброго времени суток,
Такой вопрос:
1)исходный код Java сначало компилируеться в байт-код а после выполняеться на JVM;
2)исходный код Python сначало компилируеться в байт-код а после выполняеться на PVM;
Почему тогда говорят что исходный код на Python интерпритируеться а на Java - компилируеться?
И возможно ли виполнить Python-скрипт без компиляции в байт-код?

Офлайн

#2 Янв. 7, 2014 14:00:40

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

erebus
И возможно ли виполнить Python-скрипт без компиляции в байт-код?
питновский интерпретатор исполняет байт-код, который получается из AST, которое получается из текстового исходника, так что никак. Можно только указать интерпретатору не оставлять кеш байт-кода на диске.

Офлайн

#3 Янв. 7, 2014 15:31:25

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

erebus
Почему тогда говорят что исходный код на Python интерпритируеться а на Java - компилируеться?

Кто говорит-то ?

Благодаря такой реализации: байт-код -> vm, эти ЯП кроссплатформенные.

В Java есть JIT компилятор, но он интерпретируемый ЯП.



Отредактировано Budulianin (Янв. 7, 2014 15:32:50)

Офлайн

#4 Янв. 7, 2014 16:14:31

erebus
Зарегистрирован: 2014-01-07
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

Спасибо большое, вродебы все понял. Тогда последний вопрос:
Возможно ли изменять код программы во время её исполнения не прерывая исполнения. Только не перезагружать отдельные модули(используя reload), а к примеру исходный код какого-то метода во время его исполнения?
Насколько я понял весь текст программы сначало компилируеться в байт код, поэтому сделать выше сказанное невозможно.Но может я не прав?

Офлайн

#5 Янв. 7, 2014 17:04:55

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

erebus
не прав
def f():
    print("a")
f()
def f():
    print("b")
f()



Офлайн

#6 Янв. 7, 2014 17:46:37

erebus
Зарегистрирован: 2014-01-07
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

doza_and
Возможно я не совсем правильно объяснил. Нужно к примеру в какой-то части исходного кода установить точку останова, далее изменить исходный код и продолжить выполнение.

Офлайн

#7 Янв. 7, 2014 18:17:48

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

erebus
Спасибо большое, вродебы все понял.

Чтобы не оставаться в неведении, прочитай хотя бы на вики про Java и Python.

erebus
Возможно ли изменять код программы во время её исполнения не прерывая исполнения.

Из самой программы?



Офлайн

#8 Янв. 8, 2014 00:07:50

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

erebus
кода установить точку останова, далее изменить исходный код и продолжить выполнение.
Erlang же!

Офлайн

#9 Янв. 8, 2014 08:45:02

erebus
Зарегистрирован: 2014-01-07
Сообщения: 15
Репутация: +  1  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

Budulianin
Не из самой программы, я имел в виду: приостановить программу->изменить код->продолжить выполнение.

Singularity
Благодарю за информацию про Erlang, но как насчет Python?

Офлайн

#10 Янв. 8, 2014 10:01:30

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Как выполнить скрипт питона без компиляции в байт код

erebus
я уверен на 100% что тебе не надо этого делать в продакшене.

Или ты просто хочешь дебагер ?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version