Современные компьютерные технологии находятся в постоянной стадии совершенствования. С каждым днем выходят все новые и новые технологии, позволяющие воплотить в жизнь то, что еще недавно определялось как фантастика. Сильным изменениям поддаются и языки, как человеческие, так и компьютерные. В данной статье мы подробно расскажем, что это – компилятор, как с ним работать, для чего он создавался и где его сейчас можно встретить. Статья рекомендуется не только начинающим пользователям операционной системы Windows, но и программистам, желающим познать скрытые знания своей системы.
Язык для операционной системы
Для начала стоит абстрагироваться, ведь программирование – это не только вбивание определенных ключей-слов в машину, это еще и тщательно продуманные действия, связанные с компонентами системы. Изначально был двоичный код, потом программисты создали полумашинный язык программирования – ассемблер, но для чего?
Представьте себе, что вам надо считать на калькуляторе программиста каждый бит, потом правильно его связывать и многое другое. В ассемблере все стало чуточку проще, но все еще очень и очень непросто, если сравнивать с современными языками программирования, например, С++, который называют одним из сложнейших, но про него речь пойдет чуть позже.
В языке ассемблер все осуществляется благодаря регистрам процессора: деление, умножение, перемещение значения из точки А в точку Б и т. д. Основная его проблема, что он все еще является полумашинным, но все равно поддается прочтению человеку, в отличии от хаотично раскиданных битов. Еще одним минусом было ограниченное количество этих самых регистров.
В 80-х годах решили придумать язык программирования, благодаря которому можно будет легко и просто написать операционную систему. Так появился С и компилятор С GCC от компании GNU. Если вы пользуетесь Linux, то обязательно должны были видеть продукты данной компании. Кстати, ассемблер используется и поныне, ведь некоторые компиляторы создают объектные файлы с двоичным кодом, а другие исполнительные – с кодом на ассемблере. Все зависит от платформы разработчика.
Современный компилятор имеет следующие программы в себе:
- Дебагер – программа, которая отправляет сообщения об ошибке от линковщика, препроцессора, интерпретатора. Препроцессор – это программа, главной задачей которой является поиск специальных меток, начинающихся со знака #, и выполнение определенного рода команд. Например, добавления сторонней библиотеки для компиляции проекта. Интерпретатор – программа, которая переводит наш более-менее понятный язык программирования в двоичный код или ассемблер. Линковщик – программа, благодаря которой недостающие файлы автоматически подключаются.
Также существует 2 типа сборки проекта компилятором: динамическая и статическая. В первой добавляются лишь нужные проекту файлы, несмотря на среду разработки, а во втором случае - все в кучу (подключенные, конечно). Итак, из этого уже можно сказать, что компилятор – это целый список программ для сбора и обработки информации в понятный и логичный для компьютера вид. Дальше мы рассмотрим, с чего все начиналось.
Первые простейшие компиляторы
Может, вы удивитесь, но впервые объект нашей статьи (тогда его еще называли транслятор) появился в далеком 1954 году в Институте, специализирующемся на прикладной математике. Он включал в себя не настолько большой комплекс программ, как сейчас, но все равно был прорывом в науке на то время. Там не было дебагера, поэтому людям приходилось все делать буквально руками, причем используя при этом стандартную и дискретную математику, чтобы узнать, правильный ли результат получила электронно-вычислительная машина.
Возможна ли сборка без нового языка?
Если вы достаточно толковый программист, то вполне сможете выполнить эту задачу. Правда, для этого понадобится немало времени и сил. Кстати, раньше даже была профессия такая – программист-линковщик. Это только в новых языках программирования все автоматизировано, а раньше людям приходилось связывать куски кода Make файлами. Между прочим, некоторые проекты на Linux и сейчас можно собрать с помощью этих самых Make-файлов, нужно лишь указать их зависимости вручную.
После сбора кода линковщик отдавал работу уже компьютеру на обработку, где в итоге получал готовый бинарный код.
Как видите, компилятор – это не только программа, а еще и усилия множества людей. А они, как утверждал Генри Форд, пытаются автоматизировать каждый процесс.
Лучший компилятор Windows
Итак, многие из читателей знают, что существует множество мертвых языков, но еще больше живых, т. е. тех, которые хотя бы раз в год обновляют свою стандартную библиотеку. Как мы уже говорили, в 1980 году был создан С - это был прорыв. Многие наши отцы до сих пор обожают данный язык, но что с ним теперь?
Он живет и процветает в новом теле, если так можно сказать. Его наследником по праву является С++, хоть и его создателя воспрещают писать на нем код, похожий на С, многие программисты игнорирует это и делают, но почему допускается такое грубое нарушение правил?
- Во-первых, он взял солидную долю стандартных библиотек от С, и новые компиляторы G++ способны компилировать код С, что уже само по себе указывает на их схожесть. Во-вторых, С++ был создан, чтоб заместить С, и итоги этого мы видим сейчас. К слову, программа компилятор G++ не "ругается" до тех пор, пока не будет использован хотя бы один класс – в этом и есть основное отличие двух языков. Можно назвать G++ лучшим компилятором, не зря ведь благодаря ему пишут мобильные приложения, операционную систему Windows и т. д.
Совет начинающим программистам
Ваш путь будет тернист – это стоит знать прежде всего. Для начала работы с языком, например, если это С, вы обязательно должны будете ознакомиться с компилятором C. А если с ним не подружиться и не понять его логику, то ваши проекты один за одним будут лагать и вылетать.
Попытайтесь как можно больше читать книг не только про основы программирования, но и про историю создания языков, так вы обязательно начнете понимать саму суть процесса. Старайтесь совмещать практику и новые знания, так все куда быстрее запоминается. Кроме того, постарайтесь довести свой английский хотя бы до среднего уровня, иначе вам будет очень сложно в ориентировании по IDE.
В заключение
Надеемся, после прочтения данной статьи вы поняли, что это – компилятор, как он работает, зачем создавался и кому по сей день нужен. Стоит напомнить, что самое главное для программиста – это понимание ситуации, понимание основных принципов, поэтому очень надеемся, что статья вам в этом помогла.