Другие языки программирования и технологии

А программы Паскаль, Бейсик, Жава, и другие они все переводятся в один и тот же машиный язык? (вопрос про обычный пк).

Ну вот как оно по польшому счету запуск программ с разными языками программирования происходит? Например программирования Паскаль, Бейсик, Жава, и другие они все переводятся в машиный язык для понимания процессором и выполнения задачи? То есть эти языки придуманны только, что бы легко программировать было? А оригинальный язык у компа какой, это те инструкции что выпоняет процессор?
Как правильно выше отметили, машинный язык он один, и процессор определенной архитектуры понимает только свой язык. И верно утверждение о том, что каждый компилятор делает этот код по своему. Способов написать одно и то же на языке программирования - десятки, на машинном же языке - тысячи различных. По этому, программа с одним и тем же смыслом имеет разную производительность, занимает разное количество (бывает в разы) оперативной памяти и имеет разный размер, занимаемый на жестком диске в зависимости о языка. Даже больше скажу, можно и на одном и том же языке написать различными вариациями программу, что суть ее не поменяется, а кода машинные будет совершенно отличаться. Разные вариации, даже самое банальное, это использование for вместо while; halt вместо if; написание программного кода в один блок вместо разделения на функции; функциональный тип программирования вместо объектно-ориентированного (когда код программы делится не только на функции, а на целые классы функций, каждый класс имеет полный функционал по управлению одним обьектом, каждый класс инициализирует определенный объект своими параметрами и свойствами)
Так же, чтобы окончательно завершить картину о разности одного и того же машинного кода было бы неправильно не сказать о том, что один в один код на винде в компиляторе C++ и линуксе в том же C++ преобразуются тоже в совсем непохожие коды с машинной точки зрения. Во первых это вызвано тем, что операционные системы разные и у каждой по своему написан свои средства для программирования (заголовочные файлы и т. п.) , а во вторых, так же и из-за разницы в компиляторе. Например, embarcadero c++ создаст совершенно другой машинный код, нежели microsoft visual c++, не смотря на то что код один и тот же, и ОС одна и та же.
Так же один и тот же код на процессоре с архитектурой powerpc (например)
будет отличаться от машинного кода на архитектуре AMD64 и т. п.

И совсем неправильно было бы забыть о том, что джава не создает машинный кодов, а скорее это можно назвать бинарным скриптом. Джава это не совсем язык прораммирования как мы привыкли понимать в обычном смысле слова. Она была расчитана так, чтобы одна и та же программа работала на всех компьютерных платформах не зависимо от архитектуры, а так же на мобильных устройствах. По этому программа на джаве не будет выполняться без установленной на компе машине java. При запуске программы на яве, запускается виртуальная машина java, и уже эта машина на ходу работы программы, преобразует комманды, посланный "программой java" (бинарным скриптом) в машинный код. Именно по этому программы джава имеют меньшую производительность и едят больше памяти, не смотря на все свои плюсы языка.
Marat Mamekov
Marat Mamekov
1 368
Лучший ответ
Рушан Туктаров Да ясно про джаву, это как html и т.д. то есть программирование для запуска на других программах)) Да я спрашивал именно про программирование низкоуровневое, для ядра. Вы хорошо ответили! А вот можно например компиляторы скачивать и устанавливать в ОС, что б проги лучше выполнялись?
в принципе, да.. .

только вот компиляторы, которые делают код, который понятен процессору делают это по-разному, поэтому исполняемый код будет совершенно разный, но в конечном итоге исполняющий то, что задумал автор программы
Рушан Туктаров а компилятор это тоже программа? она в ос встроинна или аппаратно? тое сть чем совершеней компилятор тем лучше, оптимальней будет выполнять программу?
По большому счету Вы правы.
Чем выше уровень языка, тем легче и быстрее на нем программисту писать программу.
Самым низкоуровневым языком программирования считается Ассемблер. Язык сложный, писать на нем долго.
Но и программы написанные на этом языке работают быстро и сами программы получаются очень компактными.

Кроме того, еще все зависит от компилятора и библиотек (DLL) без которых современные VISUAL - языки работать не могут.
Например, EXE -файл созданный с помощью С++ (нативный) будет меньше размером и выполняться будет
быстрее, чем EXE созданный в Visual Basic 6.0

Если говорить о .NET сборках, то там язык особой роли играть не будет.
Все .NET языки ( C# , С++, Java .NET, F#, VB .NET ) используют библиотеку Framework 3.5 / 4.0, поэтому и возможности абсолютно одинаковы, и быстродействие почти одинаково, разница только в синтаксисе.

Кстати, заказчику ПО абсолютно фиолетово на каком языке ему написали программу.
Как правило, конечный заказчик требует что бы написали быстро и без глюков.
ВК
Ваня Казнов
62 089
Bart Simpson Не вижу плюса ассемблера в плане скорости работы. Современные высокоуровневые языки создают код ничем не хуже ассемблеровского в плане скорости.
процессор распознает команды, переданные ему в двоичном коде, иначе он также называется машинным кодом. Все языки и модули для каждого языка написаны для нашего же удобства.