@daniil14056

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

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

ну и весьма зависит от качеств писаки, тут даже языки не помогают.

помнится в универе давным-давно была лаба в которой надо было вручную написать прожку на ассемблере, вручую "скомпилировать" ее в двоичный код, ввести его в учебный микропроцессорный комплект на 580вм80, и добится работоспособности.
так сам понимаешь скорость ручной компиляции в исполняемый код была ужасающе медленной, но время исполнения от этого не страдало...
Ответ написан
Комментировать
@red-barbarian
собственно
1. java выполняется на java машине (если кратко). С++ на процессоре
2. далеко не факт что программа на c++ написанная новичком будет быстрее java написанной новичком. (дело в том, что многие вещи в библиотеках оптимизированы. ). То же относиться и к скриптовым языкам типа питона (например с библиотекой типа numpy)
Итого:
скорость работы зависит:
- от типа исполняемого файла (это бинарник для конкретного процессора и системы, это файл который исполняется на виртуальной машине, это скрипт)
- от оптимизации кода, библиотек, интерпретатора, виртуальной машины.

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

Войдите, чтобы написать ответ

Похожие вопросы