Ведь система компьютера понимает всего два числа: 1 и 0.Если правильно понимаю то процессор работает по след логике: биос даёт небольшое напряжение на конденсаторы процессора значит + .т. е. число 1,а если перестаёт подавать напряжение значит - .т.. е. значит 0?
Зачем программировать на разных языках, если исходник на компьютерном (бинарном) языке выходит с одинаковым количеством и положением, количеством цифр?
Другие языки программирования и технологии
Как работает процессор? Писать программу на разных языках почему приходится?
Вопрос был - "почему нельзя обойтись одним высокоуровевым (приближенным к человеку) языком", правильно? Например, зачем нужен JavaScript, если есть PL SQL. Или зачем нужен C++, если есть Fortran.
Я правильно понял?
По нескольким причинам. Одним языком все задачи эффективно решить не получится, каждый язык ориентирован на определенные задачи. Плюс языки развиваются, становятся лучше, а старый код под старые языки продолжает жить.
Плюс есть конкуренция между производителями ПО (в том числе ПО для разработки ПО, что иногда приводит к конкуренции между языками, если каждый язык активно продвигается в массы каким-то вендором) .
Могу порадовать - если известна конкретная задача, то выбор языков на выбор обычно не такой большой, как кажется. Реально из 1-3 вариантов обычно люди технологии выбирают.
Я правильно понял?
По нескольким причинам. Одним языком все задачи эффективно решить не получится, каждый язык ориентирован на определенные задачи. Плюс языки развиваются, становятся лучше, а старый код под старые языки продолжает жить.
Плюс есть конкуренция между производителями ПО (в том числе ПО для разработки ПО, что иногда приводит к конкуренции между языками, если каждый язык активно продвигается в массы каким-то вендором) .
Могу порадовать - если известна конкретная задача, то выбор языков на выбор обычно не такой большой, как кажется. Реально из 1-3 вариантов обычно люди технологии выбирают.
Всё что ты пишешь автор, это делает сам процессор, программисту малое отведено.
Говорят биос выделает несколько байт 200 помоему с лишнем в оперативной памяти и выделяет процессор. Так делают загрузчик, загрузчик загружает операционную систему.
Далее операционная система предоставляет возможности программисту.
Указывается в каком месте по смещению адресов будут данные, потом данные работы программы. А что бы ты это всё легко указывал в процессоре уже это всё написано.
Там сложно всё. А то что на конденсаторы это всё в самой схеме процессора заложено, дальше ещё нужно думать
Говорят биос выделает несколько байт 200 помоему с лишнем в оперативной памяти и выделяет процессор. Так делают загрузчик, загрузчик загружает операционную систему.
Далее операционная система предоставляет возможности программисту.
Указывается в каком месте по смещению адресов будут данные, потом данные работы программы. А что бы ты это всё легко указывал в процессоре уже это всё написано.
Там сложно всё. А то что на конденсаторы это всё в самой схеме процессора заложено, дальше ещё нужно думать
Инструкциями процессора кодить не удобно, да и кроссплатформенность нулевая. Поэтому пишут на языках высокого уровня и потом компилятор всё это на низкий уровень преобразует.
Язык - это инструмент. Вот Вы почему гвозди предпочитаете молотком забивать? Камнем или пассатижами тоже, ведь, можно, только неудобно.
Также и с разработкой программ. Для каждой лучше подходит свой инструмент.
Есть программы, для которых главное скорость исполнения. Для их написания лучше подходит язык, ориентированный на процессор, а не на человека (ассемблер, си) .
Есть программы, для которых главное переносимость, удобство и скорость разработки. Для их написания больше подходят
интерпретируемые языки с высоким уровнем абстракции, облегчающие человеку выражение своих мыслей. При этом мы жертвуем эффективностью кода.
Также и с разработкой программ. Для каждой лучше подходит свой инструмент.
Есть программы, для которых главное скорость исполнения. Для их написания лучше подходит язык, ориентированный на процессор, а не на человека (ассемблер, си) .
Есть программы, для которых главное переносимость, удобство и скорость разработки. Для их написания больше подходят
интерпретируемые языки с высоким уровнем абстракции, облегчающие человеку выражение своих мыслей. При этом мы жертвуем эффективностью кода.
Чтобы ответить на этот вопрос для себя надо попробовать написать программу бинарным кодом или хотябы на языке ассемблера. Это титанический труд. Высокоуровневые языки программирования к примеру позволяют операцию сложения двух чисел записать одной строкой, а в машинных кодах это будет в разных случаях до 4-5 команд.
1. Загрузить первое число из памяти. 2. Загрузить второе число из памяти. 3. Сложить числа. 4. Записать результат в память.
1. Загрузить первое число из памяти. 2. Загрузить второе число из памяти. 3. Сложить числа. 4. Записать результат в память.
Во-первых, не для всех языков вообще есть компиляторы в машинный код.
Например, Джава большинством компиляторов фактически не компилируется, а сохраняется в бинарные файлы (вроде вордовских или екзелевских) - или, можно так сказать, компилируется в машинный код виртуального процессора.
Это делает формат "исполняемого" файла джавы - джар - не специфичным для какого-то реального процессора и обеспечивает его работоспособность на разных ОС, если там стоят эти виртуальные процессоры. Файл джар можно запустить под виндой, а потом скинуть на комп с линуксом - и он там тоже запустится, если в нем, конечно, не применены функции ВинАПИ и что-то еще, что есть только в винде.
Аналогично с си шарпом. Правда, линковщик еще после компиляции заключает бинарный файл с промежуточным кодом в специальную исполняемую оболочку, то есть в файл ехе, написанный в машинных кодах. Но эта оболочка просто в готовом виде зашита в линковщик, сам он ее не компилирует, а только вставляет промежуточный код.
Во-вторых, большинство языков, хотя и, действительно, компилируются в одинаковый машинный код, но различаются на более высоком уровне.
Скажем, С++ под ВинАПИ использует только библиотеки ВинАПИ, а Делфи еще может (но не обязан) использовать особую надстройку над ВинАПИ (которая при компиляции упаковывается в ехе) , с которой работать бывает проще и удобнее, чем с ВинАПИ напрямую.
Например, Джава большинством компиляторов фактически не компилируется, а сохраняется в бинарные файлы (вроде вордовских или екзелевских) - или, можно так сказать, компилируется в машинный код виртуального процессора.
Это делает формат "исполняемого" файла джавы - джар - не специфичным для какого-то реального процессора и обеспечивает его работоспособность на разных ОС, если там стоят эти виртуальные процессоры. Файл джар можно запустить под виндой, а потом скинуть на комп с линуксом - и он там тоже запустится, если в нем, конечно, не применены функции ВинАПИ и что-то еще, что есть только в винде.
Аналогично с си шарпом. Правда, линковщик еще после компиляции заключает бинарный файл с промежуточным кодом в специальную исполняемую оболочку, то есть в файл ехе, написанный в машинных кодах. Но эта оболочка просто в готовом виде зашита в линковщик, сам он ее не компилирует, а только вставляет промежуточный код.
Во-вторых, большинство языков, хотя и, действительно, компилируются в одинаковый машинный код, но различаются на более высоком уровне.
Скажем, С++ под ВинАПИ использует только библиотеки ВинАПИ, а Делфи еще может (но не обязан) использовать особую надстройку над ВинАПИ (которая при компиляции упаковывается в ехе) , с которой работать бывает проще и удобнее, чем с ВинАПИ напрямую.
Похожие вопросы
- надо ли знать математику программисту? Собераюсь писать программы на ОС язык С++.
- опрос по языкам програмирования кто работает програмистами и пишет программа ответьте на вопрос внутри
- почему процессор компьютера не может исполнять программы написанные на языке программирования Basic или Pascal
- Можно ли писать программы на одном и том же языке для разных устройств?
- На каком языке программирования проще всего писать программы?
- Если для каждого процессора пишут отдельный ассемблер, то как windows может работать со всеми процессорами?
- как работает процессор?
- Причиной появления 99% дыр в программах, всех вирусов и троянов, является то, что эти программы написаны на языке Cи ?
- насколько я понимаю язык программирования знать совсем не означает умение писать программы...
- Подскажите пожалуйста на каком языке лучше учиться писать программы + и -. Короче самый оптимальный вариант для чайников