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

Добрый день. Компьютер все языки программирование понимает как двоичный код ( если я не ошибаюсь).

Но как благодаря бинарному коду например запускается программа, как процессор понимает двоичный код. Просто для меня это просто единицы и нули. Как они могут заставить запуститься игру например.
Любой процессор понимает определённую систему команд, это происходит на уровне "железа". Команды строго определены по размерам, занимаемым в памяти и типам операндов. яп - это внешние по отношению к процессору команды, они понимаемы как программисту, так и программе-транслятору, которая и переводит одни команды в другие.
ЭУ
Эрлан Усенов
69 393
Лучший ответ
Вот как ты из звуков (колебаний воздуха, ничего больше) понимаешь слова? Точно так же.. .
D L
D L
51 444
Компьютер ничего не понимает. Компьютер выполняет команды, записанные в двоичном коде. Эти команды, в частности, могут применяться, что преобразовать команды более близкого к человеческому языка программирования в последовательности таких же простых двоичных команд.
Как выполняется двоичный код? Электрические уровни, соответствующие коду, устанавливают в процессоре управляемые напряжением переключатели, которые создают определенную конфигурацию электрических цепей, нужную для формирования выходного сигнала образом, соответствующим команде. Это, конечно, только принцип. На самом деле все проходит массу промежуточных ступеней преобразований - одно управляет другим, другое - третьим, третье.. . сто пятнадцатым ;) Недаром в современных процессорах порядка миллиарда транзисторов - там и конвейеры выполнения команд, и распараллеливающие выполнение устройства, и устройства предсказания возможных будущих команд, и черт в ступе.. .
Дык двоичный код это не рандомный набор нулей и единиц, а инструкции для процессора. Вот получил он код и смотрит что делать надо)
Сергей Суслов
Сергей Суслов
53 158
> Компьютер все языки программирование понимает как двоичный код ( если я не ошибаюсь) .
Ошибаетесь.
Не все ЯП вообще компилируются и не все ЯП компилируются в двоичный код.
Есть интерпретируемые ЯП, которые выполняются напрямую, без компиляции. И там о двоичном коде вообще говорить нет смысла, все гораздо проще.

Вот написал программист батник (это тоже программа на интерпретируемом ЯП) :
echo Hello World
echo Hello World
copy D:\1.txt D:\2.txt
Запустил его с помощью интерпретатора cmd.
Интерпретатор читает в этом батнике первую строчку.
Видит, написано "echo" и справа какая-то строка (Hello World) - и выводит эту строку на консоль.
Читает вторую строчку.
Видит, опять "echo" и строка - опять пишет строку на консоль.
Читает третью строчку.
Видит - "copy" и 2 пути - копирует файл по 1 пути в другой путь.

Что именно делать интерпретатору в соответствии с какой командой (функцией, процедурой. . .) - это может храниться в базе данных или просто быть вшито в код самого интерпретатора.

Двоичный код на компилируемом языке, упакованный в ехе, на самом деле не очень-то сильно отличается от кода на интерпретируемом. Просто оптимизирован не для чтения человеком, а для выполнения компом, и чтоб ехе занимал меньше места на диске.
Assembler
Арт М
Арт М
8 572