Сборка программ#
Языки программирования, такие как 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!». Для этого она должна правильно взаимодействовать с консолью.
Выполнив все действия, программа завершает работу, освобождая все ресурсы (память, соединение с консолью и др.), которые она использовала.
К счастью, как программисту на языке высокого уровня, вам не нужно учитывать все эти детали. На самом деле о таких вещах позаботились в процессе сборки: компилятор и компоновщик.