Желающие изучить веб-программирование часто сталкиваются с таким понятием, как компилируемые языки. Информации про них в Интернете мало, говорится лишь основная суть. Но и этого минимума достаточно, чтобы разобраться. Условно все языки делятся на компилируемые и интерпретируемые. Их создали, чтобы преобразовывать код в форму, считываемую компьютером.
Эти языки очень похожи, но разница между ними существенная.
Более того, есть еще третий вид, который вобрал в себя преимущества компилятора и интерпретатора. Как правило, начинающие программисты сразу ломают голову, какой же вид выбрать для изучения. Ниже в статье мы рассмотрели особенности компилируемого языка в сравнении с другими. После ее прочтения, сомнений в выборе остаться не должно.
Что значит компилируемый язык программирования
Любой язык общения представляет собой текст, составленный из различных символов, которые известны и понятны собеседникам. Язык программирования тоже состоит из символов, чья последовательность подчиняется определенным правилам и называется кодом. С помощью кода происходит взаимодействие «человек–компьютер».
Уроки Java для начинающих #3 | Компиляция программы
Но такое общение нельзя назвать прямым: программист вводит текст (код), который преобразуются посредством определенной программы в символы. Именно такой преобразованный текст компьютер будет воспринимать как команды микропроцессора. А программа, ответственная за трансформацию кода, называется компилятором.
Компилятор является необходимым не для всех языков программирования, а только для компилируемых. Программа, созданная таким языком, требует не только написания как такового, но и прогонки через компилятор. Только после этого ее можно запускать на выполнение в виде исполняемого модуля с определенным расширением (например, для ОС Windows файл будет иметь .exe расширение).
В качестве альтернативы вышеуказанного процесса были созданы языки, не требующие компилятора. Чтобы компьютер их понимал, тоже нужна трансформация кода в команды микропроцессора, но этот перевод незаметен и идет параллельно с введением кода. Для такого процесса необходимо использование программы, выступающей в роли синхронного переводчика – интерпретатора. Языки, которые применяют в этом случае, называются интерпретируемыми.
Преимущества и недостатки компилируемых языков
Компилируемым языкам чаще отдают предпочтение благодаря их скорости исполнения. Это обуславливается тем, что модификация созданного программного текста в машинный код требуется лишь раз. Этот язык работает эффективней, чем интерпретируемый, особенно при учете сложности современных видов последнего.
Из-за того, что в программировании эффективность более значима, чем кроссплатформенность, подавляющее число низкоуровневых языков – компилируемые. Также следует учесть больший спектр потенциала таких языков в контроле аппаратного обеспечения: использование процессора и управление памятью.
В качестве примеров компилируемых языков можно привести:
Что такое компиляция, линковка? Что такое run time?
- процедурный язык программирования Pascal;
- высокоуровневый язык Go;
- функциональный язык Erlang;
- язык программирования Ada;
- язык функционального программирования Haskell;
- мультипарадигмальный Rust;
- объектно-ориентированный C;
- статически типизированный C++.
Источник: gb.ru
Компиляция программы
А сейчас поговорим об одном из самых важнейших этапов, от которого зависит правильность получаемого результата — это компиляция программы.
Под исходной программой мы понимаем программу, представленную в виде определенных конструкций языка программирования. Программа включает в себя инструкции, понятные каждому пользователю, но в то же время не понятные процессору ПК.
Для выполнения процессором работы по инструкциям исходной программы, эту программу следует перевести на язык команд, понятный процессору — машинный язык.
Чтобы преобразовать исходную программу на машинный язык, используется специально предназначенная для этого программа под названием «компилятор». В этом и заключается компиляция программы.
Схема действия компилятора:
Схема, по которой работает компилятор, приведена на рисунке ниже:
Основные задачи компилятора:
На рисунке отмечено, что компилятор последовательно осуществляет две основные задачи:
Заметка. Процесс генерации исполняемой программы осуществляется только тогда, когда текст исходной программы не содержит синтаксические ошибки.
Таким образом, генерация машинного кода при помощи компилятора говорит о том, что синтаксические ошибки в тексте программы отсутствуют. Как удостовериться в правильности работы программы? Все достаточно просто. Необходимо провести ее тестирование — провести несколько пробных запусков исходной программы и затем проанализировать полученные результаты.
Допустим перед нами программа, которая определяет корни квадратного уравнения. Если в этой программе допущена ошибка в каком-либо месте формулы, например при вычислении дискриминанта, то, при отсутствии синтаксических ошибок, программа в конечном счете выдаст сообщение о неверных значениях корней.
Источник: kvodo.ru
Основные принципы программирования: компилируемые и интерпретируемые языки
Как и в предыдущей статье этого цикла, я хочу обратить ваше внимание на ключевые принципы программирования, которые влияют на всё то, что мы делаем, но с которыми мы редко сталкиваемся напрямую и поэтому не до конца их понимаем. Тема сегодняшней статьи — компилируемые и интерпретируемые языки.
Будучи разработчиками, мы часто сталкиваемся с такими понятиями, как компилятор и интерпретатор, но я считаю, что многие не совсем понимают, что они означают. Между тем, компиляция и интерпретация — это основы работы всех языков программирования. Давайте взглянем на то, как на самом деле устроены эти понятия.