Текстовый редактор. Выбрав язык программирования, с помощью текстового редактора записывают текст будущей программы. В результате получаем исходный текст программы, который представляет собой обычный текстовый файл.
Программа-компилятор. После создания текстового файла, запускаем программу-компилятор выбранного языка программирования, на котором написан исходный текст. На выходе получаем машинный код программы. Но это еще не готовая программа, а объектный код. Здесь может не хватать некольких компонентов, но уже может выполняться процессом. Кроме объектного кода программы, для выполнения расчета стандартных (не стандартных) функций, необходимо вставить объектный код подпрограмм. Например, если при создании программы использованы функции sin(), cos(), lg() и др, как они вычисляются кто-то должен сообщить программе.
Объектный код обрабатывают редактором связей, который выполняет необходимые операции. В итоге объектный код становится исполнимым, т.е. полноценной программой с расширением .exe или .com.