ailev.ru

22 декабря 2014 · Комментарий

Без заголовка

А скажите, как смоделировать виртуальную машину и проложить ссылки между "внешней" и "внутренней" моделью. Особенно если на HostVM и GuestVM разные языки, платформы и технологии. Всё программирование к этому можно свести, и теорию инженерных рассчётов, пожалуй, тоже. Имхо, вовсе не проблема маппировать одинаковые вещи или каталогизировать их -- проблема маппировать несводимые друг к другу вещи. А если отказаться от маппирования несводимых вещей -- то какая польза от такой неполной модели? (кроме как для онтологических целей: "и такое бывает, сынок"). Простейшие примеры несводимых вещей: Числа с возможностью null и числа без возможности null (можно описать через мета-категорию "значение", но практической ценности нет: операции описываются разные, всё прочее тоже разное, модель лишь привносит дополнительную сложность), "Процесс" в разных операционных системах (обладают разными свойствами, одинаково их моделировать нельзя, запись в виде "разновидность абстрактного процесса" не даёт никакого толка). Данные в разных типах баз данных или алгоритмах. Функции в разных языках программирования (обладающие спецэффектами, например, из-за разной обработки ситуаций типа NaN, Inf, null, итп, а также несводимости аргументов или внутренними условиями типа if(arg1 == 5) return 6; //Fixes bug #264826 ). P.S.: А "теория категорий" -- наиболее бесполезная конструкция в мире. Да и вообще, главная проблема моделирования -- модели получаются слишком сложными для человека, умеющего эффективно манипулировать крайне ограниченным числом сущностей. Более того, все эти мэппинги строить руками, даже с помощью инструмента или специального языка, слишком сложно и долго (ну какая там скорость логического мышления у человека? проверять 1 логическое условие в секунду?). Поэтому моделирование по-прежнему игрушка. Моделирование и построение нужных проекций по запросу с помощью ИИ -- наша единственная надежда. P.P.S. Извиняюсь за плохое знание неиболее корректных терминов предметной области моделирования или некорректное употребление этих терминов.

К записи · К обсуждению