понедельник, 14 июня 2010 г.

Разбиение на модули

Я просто обалдеваю. Разбил программу на модули, а она стала в 4,3 раза медленнее. Пришлось вернуть. Компилятор: The Glorious Glasgow Haskell Compilation System, version 6.12.1.

воскресенье, 6 июня 2010 г.

Дискретно-событийное моделирование

Для своей маленькой библиотеки имитационного моделирования Айвика [http://sourceforge.net/projects/aivika/] в документацию добавил законченную главу о дискретно-событийном моделировании (DES) и интеграции подмоделей DES в единую гибридную модель. Там получилось все очень функционально.

Вообще, я часто думаю, а можно ли перевести библиотеку на Хаскель? Тем более, самый первый прототип был именно на Хаскеле. Но тут два препятствия. Во-первых, нужна мемоизация, которая бы действовала, пока симуляция запущена. Ну, это, мне кажется, можно обойти, ради скорости сфальшивив в некоторых местах через unsafePerformIO. Все равно, все будет спрятано за монадами, что даст определенные непробиваемые гарантии (как сейчас на F# в Айвике).

Второе препятствие более сложное и принципиальное. Имитационные модели почти все стохастические, т.е. недетерминированные. И я пока не знаю, как это эффективно реализовать, да так, чтобы система типов осталась простой и ясной. В F# с этим проблем нет.