(Перенаправлено с Компиляция)
Компиля́тор - разновидность транслятора, программный модуль или отдельная программа, задачей которой является полный перевод программы, написанной на одном из языков программирования (исходный язык) в программу на другом языке программирования (целевой язык) до начала ее выполнения. Другой разновидностью трансляторов являются интерпретаторы, осуществляющие анализ и перевод текста программы в машинный код пошагово, непосредственно перед выполнением, и сразу же исполняющие получившийся машинный код.
Содержание
|
[править]
Большинство компиляторов переводят программу с некоторого высокоуровневого языка программирования в машинный код, который может быть непосредственно выполнен компьютером, то есть в набор инструкций для центрального процессора. Компьютер, для которого производится компиляция, называется целевой машиной.
Некоторые компиляторы (например, Java) переводят
программу не в машинный код, а в программу на некотором специально созданном низкоуровневом языке.
Например, для языка Java это язык Java Virtual Machine, JVM - язык виртуальной машины Java, или так называемый
байт-код Java. Для языков программирования на платформе .NET Framework (C#, Managed
C++, Visual Basic .NET и другие) это так называемый MSIL (Microsoft
Intermediate Language), или <Промежуточный язык фирмы Майкрософт>. Далее
программа на этом промежуточном языке подлежит интерпретации либо ещё одной компиляции в код целевой
машины непосредственно перед исполнением (для Java это делает
Для каждой целевой машины (IBM, Apple и т. д.) и каждой операционной системы или семейства операционных систем, работающих на целевой машине, требуется написание своего компилятора. Существуют также так называемые <кросс-компиляторы>, позволяющие на одной машине и в среде одной ОС получать код, предназначенный для выполнения на другой целевой машине или в среде другой ОС. Кроме того, компиляторы для одной и той же целевой машины могут быть оптимизированы под разные процессоры. Например, компилятор, оптимизированный под процессоры фирмы Intel, создаёт машинный код, который быстрее всего выполняется на компьютерах с этими процессорами.
Существуют программы, которые решают обратную задачу - перевод программы с низкоуровневого языка на высокоуровневый. Этот процесс называют декомпиляцией, а программы - декомпиляторами. Можно считать, что декомпиляторы восстанавливают исходный текст программы, однако качество этого восстановления, как правило, невысокое.
[править]
Процесс компиляции состоит из двух основных частей - собственно компиляции и компоновки (генерации исполняемого файла).
Примеры компиляторов: GCC, Free Pascal Compiler.