Все никак не могу понять: возьмем, к примеру, два ЯП - C++ и Delphi.
Насколько я знаю, программы на С++ будут быстрее выполняться, чем аналогичные программы, написанные на Delphi. Но, ведь, любая программа компилируется в машинный код! И написанная на С++, и на Delphi. А машинный код-то должен выполняться одинаково по времени. Или разница в количестве получаемого машинного кода?
Другие языки программирования и технологии
Почему программы на одних ЯП выполняются быстрее, чем на других?
Из-за уровня оптимизации
Delphi не компилируется в машинный код, как и "любая" программа этого не делает. С чего ты это взял? Не говоря уже о том, что даже машинный код может быть очень разным, и на процессоре существует огромное количество нюансов, которые можно учитывать при оптимизации.
Дмитрий Носков
В смысле, не компилируется? На компьютере могут выполняться программы только на машинном коде. Всякие C++, Delphi как-раз и придумали, для упрощения программирования.
в мире ЯП рулят компиляторы, как в мире денег - банки... не все клиенты этих банков люди обеспеченные, даже несмотря на то, что банк популярный и обладает большими активами...
Разные языки - разные алгоритмы компиляции, отсюда и разница в скорости выполнения. Даже для одного языка на разных компиляторах результат будет разный. Плюс ещё сказываются особенности и ограничения языков. Например, в Delphi более развитая модель RTTI, что подразумевает более сложные и поэтому менее эффективные алгоритмы конечного кода.
Дмитрий Носков
Блин, чем больше спрашиваю, тем больше непоняток. К примеру, почему для одного ЯП создано несколько компиляторов?
P.S. Можете почитать комментарий к ответу другого пользователя? Правильный ли у меня ход мыслей?
P.S. Можете почитать комментарий к ответу другого пользователя? Правильный ли у меня ход мыслей?
Технически, языки общего назначения похожи и если их выпускает одна фирма, теоретически можно вложить одинаковый функционал для языков с подобным синтаксисом вплоть до генерации одинакового кода. Что касается Delphi, там ни когда не было задачи ставить рекорды скорости, Delphi это прежде всего прикладной уровень и поэтому в нем собрано лучшее для достижения удобства работы и приемлемой скорости выполнения. У Delphi есть брат - Lazarus, он преследует те-же цели но его конек - переносимость между платформами, чтобы приложения Lazarus можно было переносить с большей легкостью между платформами, пришлось завернуть уровень вызова специфического API в обертку, что означало пожертвовать быстродействием. Поэтому, одни и те-же приложения могут быть перенесены с Delphi на Lazarus, но при этом Вы получите абсолютно разный код, в Lazarus он будет более медленный, но зато, Вы без труда его скомпилируете на Linux. То есть, за разные удобства приходится платить. Самый быстрый и простой код Вы можете получить используя язык и компилятор Oberon - это язык семейства Pascal, разработанный автором Паскаля Никлаусом Виртом, язык максимум упрощен, его синтаксис построен так, чтобы исключить ошибки при написании кода. Он применяется там, где тех условия на столько жесткие, что даже Microsoft отказалась от участия в подобных проектах.
Похожие вопросы
- Почему программа Php Devel Studio,содержит вирус?
- Почему программа работает некорректно при вводе цифры "0"?
- С++.Почему программа зацикливается после ввода Х
- А почему программы написанные на C/C#/C++ имеют больший вес чем на tasm/masm?
- Почему программа не работает? помогите пожалуйста(Си)
- Мастера фотошопа , подскажите почему программа не сохряняет файл для WEB? возникает проблема закрывающая программу
- Почему Delphi многие недолюбливают? Отличная среда, быстрый код, понятные инструкции.
- Почему программа не компилируется в Borland C++ Builder?
- почему программы сразу нельзя написать без багов? что этому мешает?
- здравствуйте ,не давно начал изучать "язык програмиста" работаю в турбо паскале , не могу понят почему программа