erebus
Янв. 7, 2014 13:35:41
Доброго времени суток,
Такой вопрос:
1)исходный код Java сначало компилируеться в байт-код а после выполняеться на JVM;
2)исходный код Python сначало компилируеться в байт-код а после выполняеться на PVM;
Почему тогда говорят что исходный код на Python интерпритируеться а на Java - компилируеться?
И возможно ли виполнить Python-скрипт без компиляции в байт-код?
bismigalis
Янв. 7, 2014 14:00:40
erebus
И возможно ли виполнить Python-скрипт без компиляции в байт-код?
питновский интерпретатор исполняет байт-код, который получается из AST, которое получается из текстового исходника, так что никак. Можно только указать интерпретатору не оставлять кеш байт-кода на диске.
Budulianin
Янв. 7, 2014 15:31:25
erebus
Почему тогда говорят что исходный код на Python интерпритируеться а на Java - компилируеться?
Кто говорит-то ?
Благодаря такой реализации: байт-код -> vm, эти ЯП кроссплатформенные.
В Java есть JIT компилятор, но он интерпретируемый ЯП.
erebus
Янв. 7, 2014 16:14:31
Спасибо большое, вродебы все понял. Тогда последний вопрос:
Возможно ли изменять код программы во время её исполнения не прерывая исполнения. Только не перезагружать отдельные модули(используя reload), а к примеру исходный код какого-то метода во время его исполнения?
Насколько я понял весь текст программы сначало компилируеться в байт код, поэтому сделать выше сказанное невозможно.Но может я не прав?
doza_and
Янв. 7, 2014 17:04:55
erebus
не прав
def f():
print("a")
f()
def f():
print("b")
f()
erebus
Янв. 7, 2014 17:46:37
doza_and
Возможно я не совсем правильно объяснил. Нужно к примеру в какой-то части исходного кода установить точку останова, далее изменить исходный код и продолжить выполнение.
Budulianin
Янв. 7, 2014 18:17:48
erebus
Спасибо большое, вродебы все понял.
Чтобы не оставаться в неведении, прочитай хотя бы на вики про Java и Python.
erebus
Возможно ли изменять код программы во время её исполнения не прерывая исполнения.
Из самой программы?
Singularity
Янв. 8, 2014 00:07:50
erebus
кода установить точку останова, далее изменить исходный код и продолжить выполнение.
Erlang же!
erebus
Янв. 8, 2014 08:45:02
Budulianin
Не из самой программы, я имел в виду: приостановить программу->изменить код->продолжить выполнение.
Singularity
Благодарю за информацию про Erlang, но как насчет Python?
Singularity
Янв. 8, 2014 10:01:30
erebus
я уверен на 100% что тебе не надо этого делать в продакшене.
Или ты просто хочешь дебагер ?