Программирование здесь — процесс создания компьютерных программ.
В более широком смысле под программированием понимают каждый спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения. Эта инженерно-техническая дисциплина именуется «программная инженерия». Сюда входят обзор и постановка задачи, проектирование программы, построение алгорифмов, разработка конструкций данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.
Программирование базируется на применении языков программирования, на которых записываются инструкции для компьютера. Нынешнее приложение содержит уйма таких инструкций, связанных между собой.
Текстовый редактор среды программирования может иметь специфичную функциональность, такую, как индексация имен, отображение документации, подсветка синтаксиса, средства визуального создания пользовательского интерфейса. С поддержкой текстового редактора программист изготавливает комплект и редактирование текста создаваемой программы, тот, что называют начальным кодом. Язык программирования определяет синтаксис и первоначальную семантику начального кода.
В реальное время энергично применяются интегрированные среды разработки, включающие в свой состав также редактор для ввода и редактирования текстов программ, отладчики (т. н. дебаггеры) для поиска и устранения ошибок, трансляторы с разных языков программирования, компоновщики для сборки программы из нескольких модулей и другие служебные модули.
Большая часть работы программистов связана с написанием начального кода, тестированием и отладкой программ на одном из языков программирования. Начальные тексты и исполняемые файлы программ являются объектами авторского права и являются умственной собственностью их авторов и правообладателей.
Различные языки программирования поддерживают разные жанры программирования (парадигмы программирования). Отчасти искусство программирования состоит в том, дабы предпочесть язык программирования, особенно полно подходящий для решения поставленной задачи. Различные языки требуют от программиста разного яруса внимания к деталям при реализации алгорифма, итогом чего зачастую бывает соглашение между простотой и продуктивностью (либо между временем программиста и временем пользователя).
Единственный язык, напрямую исполняемый ЭВМ — это машинный язык (также называемый машинным кодом и языком машинных команд). Первоначально все программы писались в машинном коде, но теперь этого фактически теснее не делается. Взамен этого программисты пишут начальный код на том либо другом языке программирования, после этого, применяя компилятор, транслируют его в один либо несколько этапов в машинный код, готовый к исполнению на целевом процессоре, либо в промежуточное представление, которое может быть выполнено особым интерпретатором — виртуальной машиной. Но это объективно только для языков высокого яруса. Если требуется полный низкоуровневый контроль над системой на ярусе машинных команд и отдельных ячеек памяти, программы пишут на языке ассемблера, мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора ЭВМ (по этой причине трансляторы с языков ассемблера получаются алгоритмически простейшими трансляторами).
Переменная в императивном программировании — поименованная, либо адресуемая другим методом область памяти, адрес которой дозволено применять для осуществления доступа к данным. Данные, находящиеся в переменной (то есть по данному адресу памяти), именуются значением этой переменной.
В других парадигмах программирования, скажем, в функциональной и логической, представление переменной оказывается несколько другим. В таких языках переменная определяется как имя, с которым может быть связано значение, либо даже как место (location) для хранения значения.
Область видимости и/или время существования переменной в некоторых языках задаётся классом памяти.