Сердце любого языка - это компоновщик и компилятор, который преобразует исходный код в посредника, очень близко к машинным кодам, коду. С этого момента линкеры используются для присоединения к другим двоичным файлам, таким как библиотеки и т. Д. После того, как двоичные файлы связаны со всеми логическими частями, они становятся исполняемым файлом в машинный код (или переводным промежуточным кодом, как и с .NET/Java).
Самый переводимый с «человеческого» английского происходит в компиляторе, и есть большие статьи о том, как это делается ... но большинство из них находится в сфере сверхъестественного, поскольку организационные навыки, необходимые для написать рабочий компилятор огромны.
Вы можете видеть типы переводов на уровне поверхности и ознакомиться с тем, как работают компиляторы, изучая определения языка («Язык программирования C++» Бьярна Страуструпа », Microsoft Press« Язык программирования C# »), где оба приложения и наперёд - лексические фрагменты или правила, которые компилятор будет использовать для перевода ваших слов в машинный код очень логичным образом.
Я настоятельно рекомендую прочитать определение языка вашего любимого языка программирования, если вы хотите больше узнать, также статья о компиляторах в википедии даст вам более широкое понимание.
Спасибо всем за такие быстрые ответы. Думаю, курс по дизайну компилятора - это то, что мне нужно. Но мне было интересно/интересно, как все вы можете так быстро ответить, я имею в виду в течение 1-2 минут, что очень удивительно? –
Мы все умираем за очки репутации. Продвиньте нас, пожалуйста! :-) –
@Norman: Я новичок в SO и мало знаю о репутации. Обязательно проверьте все это, когда я свободен. Наверное, ты счастлив. :) –