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

Пример записи программы на языке ассемблер:
Mov ah,2
mov dl,7
int 21h

Алгоритмические языки высокого уровня могут использоваться на разных типах компьютеров, в связи с тем, что команды одного и того же языка одинаково записывается на любом компьютере, а затем преобразуется системой программирования в набор машинных команд данного компьютера
К алгоритмическим языкам относятся языки Си (C), Бейсик (Basic), Паскаль(Paskal), Фортран (fortran) и множество других. К ним же с некоторой долей условности относится и язык управления реляционными базами данных, например, Dbase.
По способу перевода текста программы в машинные команды системы программирования подразделяются на компиляторы и интерпретаторы.
Компиляторы транслируют сразу или за несколько этапов (проходов) весь текст программы в машинный код, а затем запускает ее на выполнение. Результатом работы компилятора является программа, которую можно в дальнейшем запускать без системы программирования, т.е компилятор создает выполняемую программу.
Интерпретатор в отличие от компилятора не создает такой программы. Процесс преобразования в машинный код производится только того оператора, который в данный момент выполняется. Преобразование происходит в памяти компьютера. После того как команда языка высокого уровня выполнится полностью интерпретатор начинает обрабатывать следующую команду. Программы, работающие в среде интерпретатора выполняются медленнее чем в компиляторе. Для увеличения скорости их выполнения иногда производится предварительное преобразование исходного текста в промежуточный язык, который затем преобразуется в машинный команд.
Системы управления реляционными базами данных (СУБД) предназначены для хранения и обработки больших объемов числовой, текстовой и графической информации. Они представляют собой массив информации определенной структуры. Наиболее часто СУБД предназначена для управления таблицами. Каждая строка таблицы носит название записи, каждый столбец — поля. Структура записи определяется типом и длиной каждого поля.
СУБД позволяет осуществить следующие операции с базами данных: просмотр и редактирование записей, поиск данных по заданному критерию (условию), математические и другие операции над данными, создание и удаление файлов базы данных. В состав большинства СУБД входит специальный командный язык, позволяющий составлять программы для выполнения операций.
Наличие программирования осложняет использование таких программ и ставит их на одну ступень с системами программирования.