«Расширение-1» было гомогенным, собирающим аналогичные (stateless) функции из различных предметных областей. Пора идти дальше.
Рассмотрим «структуры данных». Это термин я использую, так как не смог придумать ничего лучшего. Я не имею ввиду типы в языках программирования, типы в языках программирования являются «конструкторами», позволяющими собрать нужную «структуру данных», а не структурами данных.
Я говорю о постоянно используемых «логических» структурах, которых совсем не много:
- Список
- Очередь (FIFO)
- Стек (LIFO)
- Дерево (разные деревья)
- Ассоциативный массив
- Хеш-таблица
- Вектор (№-мерная матрица)
Вот это «золотой фонд» программирования. Это безусловно часть «Лексикона программирования», о котором говорил А.П. Ершов.
Мой список не полный, например, я не включил в него графы, так как считаю, что их в программах не бывает. Точнее не должно быть, так как граф – это список или дерево, дополнительно провязанное слабыми ссылками. Может я не прав, и не собираюсь сейчас на своем утверждении настаивать.
Важнее другое, перечисленные «структуры данных» существуют отдельно от языков программирования (по крайней мере в голове опытного программиста).
Попробуем добавить их мысленно в open semi-binary репозиторий…
Надеюсь, что это вызовет всплеск эмоций у читателя, так как мысль эта (как я сужу по себе) весьма непривычна.
Вот всего лишь несколько вопросов/мыслей, которые возникают:
- А как же быть со статической типизацией?
- Они же такие разные? Списки чего? Деревья чего? Гетерогенные деревья (списки) – как сделать?
- Есть templates, зачем еще что-то придумывать?
- Как помещать в репозиторий? Ведь это не отдельная функция. А что это? Класс? Объект?
- А как быть с тем, что для структур данных (как правило) используется куча?
- А как быть со сборкой мусора?
- И с тем, что в одних случаях сборка мусора нужна, а в других нет?
Этот клубок вопросов придется разбирать по частям. И разбирать я его буду исходя из того, что над-языковые структуры данных дадут скачок в качестве программирования, а значит, помещать их в репозиторий надо.
Постоянная ссылка