Русскоязычное программирование

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Русскоязычное программирование » кодогенерация для ЦП (CPU) » Нужен или не нужен байт-код?


Нужен или не нужен байт-код?

Сообщений 1 страница 6 из 6

1

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

Как же так получается, что все крупные языки приходят к виртуальной машине?
- и джава (т.е. IBM, Oracle)
- и Кнут с его Mix
- и Microsoft
- и JavaScript (т.е. Google)
- или вот даже C, который платформонезависимый ассемблер, и то делают на основе чего? low level virtual machine

По всей видимости, это происходит из-за желания защитить свои инвестиции в меняющемся мире.
А так же разделить работы между людьми. Когда работу делят - нужно определить границу,
т.е. написать спецификацию.

И тут отчасти важно кто ближе к клиенту.
У того кто ближе к клиенту - больше денег, а значит правила определяет он.
Это срабатывает не всегда (например в паре Microsoft - Intel,
Microsoft хотела бы продиктовать аппаратное объединение инструкций в блоки, но Intel не готов)
Кроме того, Микрософт - не основной источник денег Интела, он продаёт изделия напрямую.

Могло ли быть (в совершенно чудесном мире) так, чтобы не было необходимости пользоваться байткодом,
и что для этого надо делать?
Нужно организовать компанию, которая разрабатывает одновременно и процессоры
и всё остальное, примерно как IBM, но этого недостаточно, ещё нужно обеспечить передачу знаний.

Реалистично ли вообще иметь современную глобальную систему без байткода,
и чтобы при этом она не была никому не нужной наколенной поделкой?

Отредактировано Лис (2019-01-10 11:55:36)

0

2

Вообще говоря, байт-код x86 - тоже байт код, но это так, придирки к словам.

Лис написал(а):

Реалистично ли вообще иметь современную глобальную систему без байткода, и чтобы при этом она не была никому не нужной наколенной поделкой?

Разве выжили процессоры (такие были), исполняющие байт-код? А что вы будете со своим байт-кодом делать на реальном железе?

Отредактировано atzx (2019-06-22 15:56:58)

0

3

atzx написал(а):

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

Опубликую спецификацию, как Кнут, и буду ждать, пока понапишут интерпретаторов и компиляторов байт-кода (JIT и AOT).
Опубликовать спецификацию гораздо менее трудоёмко, чем самому всё это понаписать для всех архитектур (даже если это только x64, x32, arm и MIPS).

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

0

4

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

0

5

Лис написал(а):

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

- Поправьте меня, если я чего не понимаю, но байт-код сам по себе не может быть медленным, поскольку это код нулей и единиц...
Да и время, затрачиваемое на работу протоколов преобразований байт-кода в машинный код конкретной железяки (и обратно), - даже близко не сравнимо со временем, затрачиваемым на различные трансляции/компиляции  с/на языки какого-либо из "уровней".
Возможно Будден именно трансляции/компиляции (причём в обе стороны) и имел в виду, но не саму байт-кодовую прослойку.
Байт-код универсален лишь тем, что это предрекаемый его создателями якобы "единый стандарт" между машинами и процами (а где даже и контроллерами) от разных производителей.
Чем-то смахивает на World Wide Web Consortium (W3C) для браузеров...

0

6

Сандро написал(а):

может быть медленным, поскольку это код нулей и единиц...

Байт код он же п-код он же код виртуальной машины что-бы его исполнить его надо интерпретировать. Такой код в 6-10 раз медленнее родного кода процессора.
А если брать интерпретатор без байт-кода, а когда он выполняет строчка за-строчкой. То такой в 100 раз медленнее с компилированного кода.

Что касается Jit-трасляции байт-кода то так как она происходит при каждом запуски программы, да и не уверен что целиком весь код там пока отставание 1٫38-1٫5 раза.

0


Вы здесь » Русскоязычное программирование » кодогенерация для ЦП (CPU) » Нужен или не нужен байт-код?