Что-то мне тоже захотелось вспомнить, чему меня на лекциях учили.
Не совсем правильно в одном списке перечислять императивное и
функциональное программирование. Это всё равно, что говорить, что
формальная грамматика состоит из лексем, нетерминальных символов,
правил грамматики и начального символа. Да, понятия лексемы и
терминального символа соответствуют друг другу. Но это категории
деления по разным признакам. Аналогично, либо "операторное",
"функциональное" и "логическое", либо "императивное" и
"декларативное". Подобно тому, как операторное программирование
реализует идеи императивного, рекурсивное -- декларативного, в свою
очередь подразделяясь на логическое и функциональное.
А структурное -- это уже разновидность операторного, "при котором
для передачи управления в программе используются только три
конструкции. Эти три конструкции допускают последовательную,
условную и итеративную передачи управления. Безусловная
"произвольная" передача управления запрещается. Прямым результатом
этого является то, что каждая сложная команда в программе имеет
ровно одну точку входа и одну точку выхода, вследствие чего
облегчается восприятие программы" (по словарю 1990 г.).