clayrat
30.03.2012 22:59
Об биомоделирование. Допустим, нас интересуют масштабно-структурные эффекты: целостность, робастность; переход от 1-D каскадов и 2-D компартментов до клеток и дальше к тканям. Известно, что операционально молекулярка описывается алгебрами процессов, а уже клетка — объектами. Следовательно, нужен объемлющий язык — коиндуктивные типы, или pure type system; это приводит к некому категорийному языку, абстрактной машине с лямбдами или диалгебрам и экспоненциалам.
1. не слишком ли много специфики придётся описывать? Клетки сцуко серьёзные. Тупо промоделировать — по производительности не выйдет, как мне кажется. Если ошибаюсь — рад.
2. возможно, у меня "влияние текущих дел на мышление", какой-то там bias, как говорят наглоязычно, но я бы в подобном случае взял бы coq (или agda, на любителя) и родил бы там dsl, который компилировал бы во что-то ниже (в простом случае даже не компилировал, а экстрактил бы в окамл, если для тестов). Но и компиляцию/трансляцию вполне можно устроить.
3. категорийные языки есть ("Categorical Programming Language" как самый известный), но надо ли? Удовольствия не очень много, по слухам. Там же не только описать категории надо, какое-то удобство кодинга тоже необходимо.
4. абстрактная машина — хорошо, но с нуля писать её — очень не ок. Если получился бы подход через dsl, и если бы можно было бы обойтись без мусорщика "лёгкой кровью", я бы в сишечку транслировал. Если же мусорщик нужен — уже есть различные варианты, очень разные, и моей компетенции не хватит для их полного анализа.
всю специфику по любому не опишешь — так можно моделировать какой то один аспект, завязанный на определенную сеть из онтологии или еще каких источников.
чото меня ломает учить coq есичесно :) я лучше возьму какой нибудь простой язык за основу типа той же писигмы и буду навешивать на него фичи — контракты там и прочее. а писать хочу
есть например higher-order charity, там вроде чото сравнимое с ml :) это для кругозора больше
ваще же я хочу писать именно dsl на scala, там можно и akka присобачить для кластера писать, и scalaz, и жабные либы всякие
что ж, метод хороший. жабьи либы обычно годные, если надрочиться разбираться в них. по идее, всё отлично выйдет. только лучше на всякий случай писать весьма модульно (например, dsl и его реализация — строго отдельно), чтобы потом был простор для маневров; ну да какие-то бояны я изрекаю.