Недостатки и преимущества компиляторов

...

Программисты используют компиляторы для превращения исходного кода в машинный код.

Компьютеры считывают команды с машинного языка, записанные в двоичном формате, то есть длинные строки нулей и единиц. Хотя компьютеры могут эффективно читать этот язык, большинство программистов - нет. Вот почему программисты работают на понятном им языке программирования, который затем переводят на машинный язык, понятный компьютеру. В то время как многие новые языки используют интерпретаторы, которые переводят с одного на другой во время работы программы, более старые языки программирования использовали компиляторы, которые полностью выполняли этот перевод до того, как компьютер выполнил программа.

Преимущество: автономность и эффективность

Одним из основных преимуществ компилируемых программ является то, что они представляют собой автономные модули, готовые к выполнению. Поскольку они уже скомпилированы в двоичные файлы машинного языка, нет второго приложения или пакета, которые пользователь должен поддерживать в актуальном состоянии. Если программа скомпилирована для Windows на архитектуре x86, конечному пользователю потребуется только операционная система Windows, работающая на архитектуре x86. Кроме того, предварительно скомпилированный пакет может работать быстрее, чем интерпретатор, компилирующий исходный код в реальном времени.

Видео дня

Недостаток: зависит от оборудования.

Поскольку компилятор переводит исходный код на определенный машинный язык, программы должны быть специально скомпилирован для OS X, Windows или Linux, а также специально для 32-битных или 64-битных архитектуры. Для программиста или компании-разработчика программного обеспечения, пытающейся представить продукт максимально широкой аудитории, это означает поддержку нескольких версий исходного кода для одного и того же приложения. Это приводит к тому, что на обслуживание исходного кода тратится больше времени, и возникают дополнительные проблемы при выпуске обновлений.

Преимущество: оптимизация оборудования

Хотя привязка к определенному аппаратному пакету имеет свои недостатки, компиляция программы также может повысить ее производительность. Пользователи могут отправлять компиляторам конкретные параметры, касающиеся оборудования, на котором будет работать программа. Это позволяет компилятору создавать код на машинном языке, который наиболее эффективно использует указанное оборудование, в отличие от более общего кода. Это также позволяет опытным пользователям оптимизировать производительность программы на своих компьютерах.

Недостаток: время компиляции.

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