родовое программирование(направлено на решение проблемы структурирования компонентов реализации, из которых строятся конечные программные системы. Связано с поиском наиболее абстрактных представлений эффективных решений для оптимального повторного использования компонентов)
языкоориентированное программирование(термин введен компанией JetBrains. Предполагает создание специального языка для решения определенных задач программирования)