Очередная попытка классификации общих подходов, в данном случае, методологии кодирования. И, в очередной раз, показывающая, что если и годится какая-то языковая классификация, то это «иерархия», что и есть суть или результат классификации. То есть любой язык, а точнее диалект ЯЗЫКА, может развиваться (и развивается!) вверх и вниз (ЯЗЫК - это «матрёшка»). То есть годятся классификации типа Хомского или Кнута, а например, создатели
энциклопедии языков программирования, игнорируя «уровни» и пытаясь пропагандировать точки зрения «парадигмы» или «типизации», не привнесут ничего существенного в процесс понимания. Новые языки (диалекты) постоянно создаются, будут создаваться и будут развиваться существующие (библиотеки и расширение функциональности их «словарных ядер»). И, как раз, феномен практики «обощенного программирования» эти и предыдущие рассуждения подтверждает. Программирование - это проектирование, моделирование и реализация «в одном флаконе», абстрагирование или формализация, та самая логика или аналитичекая философия, МЕТАПРОГРАММИРОВАНИЕ. Уже термины: «понятие» (
концепции в с++), «онтологии» (
коллекции,
контейнеры,
АТД,
АСД,
структуры данных, ...) стали объектами внимания и реализации в практике кодирования информации. То есть нет смысла в существующей классификации парадигм программирования. Нет смысла и в развитии «теории типов» вне конкретных моделей и алгоритмов управления памятью. Надо анализировать конкретные языковые проекты и минимально интерпретируя, прежде всего описать их словари. Сверху вниз (ретроспективно с точки зрения хронологии, какой первый?) и снизу вверх (можно пропустить машинные языки, опкоды и машинно-зависимые ассемблеры, начав с FASM, но не пропустив без внимания ЮНИКОД).