Может ли ЦП понимать языки программирования?

В книгах по программированию иногда указывается, что ЦП не понимает язык C ++ (или любой другой язык программирования высокого уровня). Все операторы C ++ перед выполнением должны быть переведены в машинный код. Но кто переводит?

О, это, мол, не загадка; перевод выполняется компилятором, который сам по себе является компьютерной программой. Но в этом случае перевод делает компьютер.

Это кажется мне неразрешимым парадоксом. ЦП («мозг» в сердце компьютера) не понимает ни слова на C ++, но выполняет перевод между C ++ и собственным внутренним языком. Разве это не противоречие?


Большая часть ответа такова: исходный код C ++ (или любой язык программирования высокого уровня) хранится в текстовом файле, как и вы можете сохранить эссе или памятку. Но текстовые символы хранятся в числовой форме. Поэтому, когда компилятор работает с этими данными, он выполняет другую форму обработки чисел, оценивая данные и принимая решения в соответствии с точными правилами.

Если это не проясняет ситуацию, представьте себе следующее: Вам нужно читать письма от человека, который знает японский, но не знает английского. Между тем вы знаете английский, но ни слова по-японски не знаете.

Но предположим, что у вас есть инструкция, в которой рассказывается, как переводить японские иероглифы в их англоязычный эквивалент. Сама инструкция написана на английском языке, поэтому у вас не возникнет проблем с его использованием.

Итак, даже если вы не понимаете японский, вы можете перевести на любой японский язык, внимательно следуя инструкциям.

Вот что на самом деле представляет собой компьютерная программа: инструкция, которую читает ЦП. Компьютерная программа — это инертная вещь — последовательность инструкций и данных, но «знание» внутри компьютера возникает из его программ. Программы позволяют компьютеру делать самые разные умные вещи, включая перевод текстового файла, содержащего C ++.

Компилятор, конечно, очень особенная программа, но то, что он делает, совсем не странно. или невозможно. Как компьютерная программа, это, как описано, «инструкция». В нем рассказывается, как это сделать, так это прочитать текстовый файл, содержащий исходный код C ++, и вывести другую книгу инструкций: этот вывод — ваша программа на C ++ в исполняемой форме.

Самые первые компиляторы должны были быть написаны на машине код. Позже старые компиляторы можно было использовать для написания новых компиляторов … так что через процесс начальной загрузки даже опытные программисты могли все меньше и меньше полагаться на написание машинного кода.

Оцените статью
Botgadget.ru
Добавить комментарий