Процедурные языки программирования — программа задает данные и соотношения между ними.
Функциональные языки программирования — программа пишется в терминах объектов, которые обладают свойствами и поведением, объекты обмениваются сообщениями.
Логические языки программирования — программа описывает вычисление некоторой функции.
Объектно-ориентированные языки программирования — программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий.