Задать вопрос
@daniil14056

Может ли язык быть быстрее языка на котором сам написан его компилятор?

К примеру я пишу компилятор простого языка который будет только hello world выводить, может ли он работать и будет ли быстрее чем hello world Метаязыка?
Как я понимаю, если я напишу компилятор на c++, то он быстрее будет, так как у меня будет бинарный файл . А если я напишу его на Java, то может быть он быстрее, самой Java, ведь в конце концов к небольшому коду написанной программы нужно добавить огромный код самого транслятора. И тогда он по любому дольше будет работать. И если я правильно рассуждаю, тогда я не могу понять, почему на java существует не малое количество вполне знаменитых компиляторов для разных ЯП, ведь результат программы на них будет медленнее.
  • Вопрос задан
  • 187 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя Сергей К ответам на вопрос (2)
@red-barbarian
собственно
1. java выполняется на java машине (если кратко). С++ на процессоре
2. далеко не факт что программа на c++ написанная новичком будет быстрее java написанной новичком. (дело в том, что многие вещи в библиотеках оптимизированы. ). То же относиться и к скриптовым языкам типа питона (например с библиотекой типа numpy)
Итого:
скорость работы зависит:
- от типа исполняемого файла (это бинарник для конкретного процессора и системы, это файл который исполняется на виртуальной машине, это скрипт)
- от оптимизации кода, библиотек, интерпретатора, виртуальной машины.

Еще философия.
Корень всех зол - ранняя оптимизация. цитата
Т.е. оптимизоровать нужно только то, что действительно влияет на скорость. Узкие места. гнаться просто за скоростью это не правильно.
Ответ написан
Комментировать