Answer the question
In order to leave comments, you need to log in
Does program optimization depend on programming languages?
Hello, I know that there are high-level and low-level programming languages, and I'm wondering: high-level languages affect program optimization, and they also say that one language is good, but that one is not. What is the difference between languages from each other (their optimization ?, or functionality?), Except for the understandable and incomprehensible code interface
Everyone says that java is very easy and fast to work with, and it has great functionality. If so, why do so many people work in c++, or python, or the like.
Answer the question
In order to leave comments, you need to log in
High-level languages make it easier to develop and maintain source code, and make it easier for an outside programmer to understand.
In low-level assembler, you simply won’t perceive the code with a running start, and you won’t write it either. But you can very accurately finish the code for ideal fast execution for a specific hardware platform, but finishing it will take a lot of time and knowledge.
The same java hides many subtleties of a particular hardware platform. but to "sketch" a working code will turn out very quickly.
джава компилируется в байт-код, который исполняется на виртуальной машине (а это все равно прослойка торможения), но зато байт-код прекрасно выполняется на любой аппаратной платформе, если под нее написана виртуальная машина. с++ компилируется в нативный код под конкретную аппаратную платформу, поэтому дозволяет делать более проработанную оптимизацию, но требует по отдельной компиляции на каждую платформу.
у каждого языка и каждой из реализаций языка в компиляторе/исполнителе есть свое место под солнцем.
абсолютно универсально "вовседырошно применимого" языка пока не создали :)
Let's go in order:
1. What is program optimization?
There is such a thing as algorithmic optimization. In simple cases, this is, for example, moving the assignment of a value that does not change in the loop beyond its scope, saving intermediate results of calculations when processing a complex expression, unfolding the loop, and much more that modern compilers can do with source codes. Another thing is that, to one degree or another, all languages, both scripted and compiled, are trying to do this, well, maybe except for asma, what you write there is what you get, as far as I know.
In addition to algorithmic optimization, there is also optimization for the target platform. The languages compiled into the native code of the processor try to do this optimization, but how deep it most likely depends on the particular language. For example, Ce can lick every byte of the compilation result, while Go has to remember both the garbage collector and the goroutine scheduler, in addition to actually optimizing the target code. For scripting languages, this optimization can only be discussed if they support jit compilation, which not all of them have.
2. The division into high-level and low-level languages is rather arbitrary.
Первй критерий, который припоминается - это возможность работы с железом напрямую. Во времена DOS это были асм и цэ, хотя, смутно припоминается, что и паскаль и даже бейсик позволяли скинуть значение в порт или прочитать его. Сейчас, в большинстве случаев, ОС работает в защищенном режиме, и пользовательское приложение прямого доступа к железу не имеет. Особняком стоят языки, которые умеют порождать код, стартующий на голом железе, и здесь кроме асма и це можно, к примеру, вспомнить про erlang, который, хоть и скриптовой, но вроде как умеет стартовать без присутствия ОС, ну или новомодный раст, тоже достойный вариант для рассмотреия.
3. Отличия между языками - это прежде всего по задачам, для которых они предназначены. Например, большинство языков имеет ограниченную точность математики, и для проведения высокоточных расчетов приходится привлекать внешние библиотеки, но есть фортран, который изначально создавался для проведения расчетов, и он прекрасно справляется с этим сам. Другой пример, на асме можно написать текстовый редактор, только это будет долго по времени, в отличии, того же Цэ с плюсами, но если речь зайдет про отладчик программ, то здесь без асма ни как. Ну и на последок, Lua, который популярен у разработчиков игр как встраиваемый в платформу язык, благодаря своей достаточной скорости при небольшом размере среды исполнения.
Про джаву ни чего сказать не могу, потому как знаком с ней только по продукции jetbrains и на примере эклипса или нетбинса.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question