Найти - Пользователи
Полная версия: Байт код и двоичный код
Начало » Python для новичков » Байт код и двоичный код
1 2
sl0w
Добрый вечер уважаемые форумчане

Прочитал несколько книг про питон, и в каждой указывается, что единственна проблема языка - это скорость реализации, которая связана с тем, что PVM использует байт- код для реализации программы.

А возможно ли преобразовать байт код в двоичный ?

Получается если можно это сделать то пропадают совершенно все недостатки языка
don_pedro
Сложно будет сделать такой компилятор.
Будут проблемы типизацыи.
И не только.
Firik
Почему пропадают? А байткод никуда не денется же.
terabayt
sl0w
это скорость реализации, которая связана с тем, что PVM использует байт- код для реализации программы.
просветите меня пожалуйста
sl0w
Прочитал несколько книг про питон
sl0w
Получается если можно это сделать то пропадают совершенно все недостатки языка
вы гений?
sl0w
так я про то , чтобы сделать компилятор для байт когда, который его превращает в двоичный .
Итого, если не нужна скорость то использовать байт код, если нужна то берешь компилируешь и получается двоичный, а потом исполняешь

видимо я не понимаю всех подводных камней
terabayt
ахах

sl0w
видимо я не понимаю всех подводных камней
и наземных гор

хорошо
давайте попорядку

sl0w
Прочитал несколько книг про питон, и в каждой указывается, что единственна проблема языка - это скорость реализации, которая связана с тем, что PVM использует байт- код для реализации программы.
1. в книгах не говорилось что правильно пайтон?
2. процитируйте эту часть или ссылку

и что такое PVM?
terabayt
вот почитайте
doza_and
Статья интересная, но недостаточно ясно написано почему питон медленный.

a=2
a=22222222222222222222222222
a=3.4
В питоне допустимо. Удобно. Но как следствие перед использованием a надо понять что там лежит. Длинное целое короткое целое или плавающее.
a=b+c
Это не одна машинная инструкция а два раза вызов кода для распознавания типов, поиск у этих типов специализированной версии сложения. Чем ни компилируйте это будет долго выполняться

def A(**kvarg):
    ...
A(k=2,z=5)
Вызов функции это не просто сдвижка указателя стека. Это создание словаря, работа со строками которые представляют ключи этого словаря и т.д. Это удобно но это дольше чем вызов функции в C.

class A:
   pass
    ...
a=A()
a.a=2
В С этот код приводит к вычислению адреса и занесению туда данных. В питоне обращение к полю это обращение к элементу словаря. И это не поправишь. Поскольку в питоне поля могут появляться и исчезать в процессе работы программы.

Медленность питона не поправить компиляцией, это особенность языка.
sl0w
terabayt
ахах
sl0w
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB