Следует различать исходную и выполняемую программы.
Исходная программа представляет собой последовательность команд (инструкций) на языке программирования. Исходная программа это обычный текст. Исходная программа понятна человеку (программисту), но не понятна процессору, который может "понимать” (воспринимать, выполнять) только двоичный код.
Выполняемая программа это последовательность двоичных чисел, кодирующих данные и команды, которые может выполнить процессор.
Преобразование исходной программы в выполняемую осуществляет специальная программа – транслятор (компилятор).
Компиляция и интерпретация
Существует два подхода к выполнению программы: компиляция и интерпретация.
При компиляции исходная программа преобразуется компилятором (средой разработки) в выполняемую, после чего выполняемая программа может быть выполнена процессором, причем, для запуска и выполнения программы среда разработки не требуется, программа может быть запущена из операционной системы. C#, как и C++, компилируемый язык.
При интерпретации инструкции программы выполняет входящий в среду разработки интерпретатор. Программа, представленная на интерпретируемом языке программирования, может быть запущена только из соответствующей среды разработки. Примерами интерпретируемых языков являются Visual Basic for Application (VBA), Python а также язык R – специализированный язык статистической обработки данных.
Консольное приложение
Существует достаточно много классификационных признаков компьютерных программ. Один из них – отношение к операционной системе. Согласно этой классификации различают системные и прикладные программы. Системные программы обеспечивают решение системных задач, например доступ к дискам компьютера, распределение процессорного времени между задачами, управляют работой периферийных устройств (видеоадаптер, принтер, сканер, камера, мышь). Прикладные программы или приложения предназначены для решения прикладных, то есть конкретных задач пользователя. Редактор текста, графический редактор, игра – все это примеры приложений.
По способу взаимодействия с пользователем различают оконные и консольные приложения.
Оконное приложение работает в своем окне и для взаимодействия с пользователем использует находящиеся в нем компоненты пользовательского интерфейса: поля ввода текстовой информации, командные кнопки, списки, текстовые поля и др.