Для описания сложного действия требуется последовательность операторов. Операторы могут быть объединены в блок. Блоком в языке С++ считается последовательность операторов, заключённая в фигурные скобки { }. Операторы бывают исполняемые и неисполняемые. Исполняемые операторы задают действия над данными. Неисполняемые операторы служат для описания данных, поэтому их часто называют просто описаниями. Таким образом, программой на алгоритмическом языке можно назвать объединённую единым алгоритмом совокупность описаний и операторов.
Для выполнения программы, написанной на языке высокого уровня, требуется перевести её на машинный язык. Этим процессом, состоящим из нескольких этапов, занимается компилятор. Сначала программа (*.cpp) передаётся препроцессору, который выполняет директивы, содержащиеся в её тексте (например, включение в текст заголовочных файлов). Получившийся полный текст программы поступает на вход компилятора, который выделяет элементарные конструкции программы, имеющие самостоятельный смысл, а затем на основе грамматики языка распознаёт выражения и операторы. При этом компилятор выявляет синтаксические ошибки и в случае их отсутствия создаёт объектный модуль (*.obj), который передаётся компоновщику. Компоновщик, или редактор связей, формирует исполняемый модуль (*.exe) программы, подключая к объектному модулю другие объектные модули, содержащие функции библиотек (*.lib), обращение к которым содержится в программе. Если программа состоит из нескольких исходных файлов, они компилируются по отдельности и объединяются на этапе компоновки (сборки).