Сборка программ#

Языки программирования, такие как Fortran, C, C++, Java и некоторые другие, имеют общие особенности: вы пишите код программы на выбранном вами языке, но затем вам нужно преобразовать этот исходный код в исполняемый файл программы. Для других языков, которые называются интерпретируемыми — исходный код анализируется специальной программой и выполняется в виде непосредственных инструкций. Два очень простых примера такой разновидности языков: пакетные (batch) файлы в Windows и сценарии оболочки (shell scripts) в Linux.

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

Примечание: в данном руководстве приведены примеры для операционных систем Windows и Linux, однако рабочий процесс и общие принципы применимы и в случае использования операционной системы macOS.

Компилируемые языки программирования#

Давайте рассмотрим простой пример программы:

program hello
    write(*,*) 'Hello!'
end program hello

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

  • На компьютере запускается процесс таким образом, что он может выводить сообщения в консоль – окно команд (DOS-box, xterm, …), в котором вы набираете имя программы для её запуска.

  • Программа выводит в консоль текст «Hello!». Для этого она должна правильно взаимодействовать с консолью.

  • Выполнив все действия, программа завершает работу, освобождая все ресурсы (память, соединение с консолью и др.), которые она использовала.

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