Беседа о ментальных моделях и формализации
ALEX BUR, [27.03.2022 9:51]
[Переслано от ALEX BUR]
https://habr.com/ru/post/425321/***Или, сформулировав в виде тезиса: Всё множество относящихся к программной инженерии феноменов можно разделить на подмножество идеальных и подмножество материальных. При этом материальный феномены регистрируемы либо измеряемы на основе их моделей.
Процесс создания или изменения программной системы заканчивается в большинстве случаев созданием того или иного кода, который с помощью компьютера отображается в физический процесс (феномен реального мира).
Начинается же этот процесс возникновением неких идей о будущей системе в головах заказчиков или разработчиков.
Эти идеи и представления мы будем именовать ментальной моделью.
--
И вот мне попалось.
Ментальные модели
http://wp.wiki-wiki.ru/wp/index.php/Ментальные_модели ***мозг создает «модели действительности в уменьшенном масштабе» и использует их, чтобы предвидеть грядущие события.
***дети создают «внутренние модели».
--
Т.е. то, что в голове и то, что в мозгу, процессы происходящие в мозге формируют некие конфигурации процессов, которые в итоге становятся программами.
Т.е. программы есть некие представления/проекции неких "ментальных моделей".
======
Подойду совсем просто.
Есть идеи, которые бродят в голове и в результате этого брожения человек понимает, какой текст ему написать.
Эти идеи достаточно просты.
Последовательность операторов. Цикл, ветвление, подпрограмма функция и т.п.
Указание "ментальные" в словосочетании "ментальные модели" является просто указанием на мысли/идеи.
Модели указанием на модели.
--
В тоже время под ментальными моделями понимают весьма общие и расплывчатые вещи.
Примеры.
https://bakunin.com/mental-models/ 29 ментальных моделей, которые изменят ваши взгляды на жизнь
https://lifehacker.ru/mentalnye-modeli/ https://lifehacker.ru/mental-models-and-decisions/--
--
Я бы еще аналогию привел.
Ментальные модели, это конструкции и алгоритмы, которые находятся в оперативной памяти компьютера, аналогично и у человека.
Я называю просто модели, модели мышления. ну или алгоритмы.
--
Теперь, что получается?
Алгоритм=модель процесса.
Есть алгоритмы в голове, которые создают другие алгоритмы или извлекают их из памяти, которые можно записать в виде программы.
Ну или по иному.
Есть модели в голове, которые создают другие модели или извлекают их из памяти, которые можно записать в виде программы.
И это всё конструктивней некуда.
Понятие модели конструктивно.
Дык что происходит при записи программ на бумагу/в комп?
Формализация (уточнение) ментальных моделей (просто моделей).
т.е. уточнение синтаксических конструкций!
Ну и если совсем к программированию.
Все паттерны программирования - некие такие ментальные модели.
На первом этапе может быть вам их надо формализовывать.
***Системный анализ - прикладное направление теории систем, применяемое при решении сложных слабоформализуемых проблем[1].
https://ru.wikipedia.org/wiki/Системный_анализ Вот очень точно написано "слабоформализуемое".
Вот многие проблемы, которые есть, они в первую очередь исходят из слабой формализуемости.
Когда мы в уме подумали о "неком нечто", то произошла некоторая степень формализации т.е. появилась в мозге некая структура, некая синтаксическая конструкция.
Когда сформулировали на словах, степень формализации увеличилась, когда положили на бумагу в виде статьи или философского текста, степень формализации еще увеличилась.
Когда записали в виде программы, в виде инструкций для исполнителя, то степень формализации еще увеличилась.
Теперь непосредственно к программированию.
Ну вот разные пакеты программ автокады, компиляторы/интерпретаторы, Emacs-ы, библиотеки, и есть вот такие материализации ментальный моделей, ну или просто формализация моделей.
Но совсем конкретные штуки такие нас не устраивают. Нам нужны алгоритмы по созданию алгоритмов. Это метамодели создания моделей. Ну вот их тоже надо формализовывать. Частично тоже уже есть. Всякие системы доказательства теорем типа Coq, Агда и т.п., экспертные системы.
Т.е. Я в принципе на уровне понимания все вопросы разрулил.
Но конкретные библиотеки таких моделей не сделал.
Их надо делать, надо думать в ту сторону.
Одному всё неподъемно. )