Моя специализация — язык Oz и среда Mozart, где несколько парадигм программирования живут в одном коде. Я не привязан к единственному стилю: в одной программе комбинирую функциональные вычисления, логику отношений, механизмы ограничений и потоковую конкурентность, подбирая для каждого фрагмента задачи ту модель, в которой решение выходит понятным и надёжным. Такой подход отличается от массового императивного программирования и особенно ценен там, где обычные методы вязнут — в комбинаторном поиске, расписаниях, конфигураторах, символьной обработке и в экспериментах с самими языковыми конструкциями.
Основное направление — программирование в ограничениях и организация поиска. Задачу я описываю переменными конечных доменов, правила задаю пропагаторами, а работу решателя настраиваю собственными схемами распределения и ветвления, чтобы гигантские пространства вариантов оставались управляемыми. Конкурентность в Oz заложена на уровне языка: логические переменные и dataflow-синхронизация дают возможность собирать аккуратные конвейеры, агентов и невесомые потоки, обходясь без ручных блокировок. Мне привычно рассуждать о детерминизме, замкнутом поиске и о взаимодействии ленивых вычислений, портов и ячеек, из которого и складывается сила Oz.
Кроме прикладных решений, беру заказы на обучение и научное сопровождение. Помогал студентам и исследователям осваивать идеи учебника «Concepts, Techniques, and Models of Computer Programming», превращая абстрактные темы состояния, параллелизма и декларативных вычислений в живые, разобранные по шагам примеры. Перенесу алгоритм из научной публикации в Oz, замерю и сравню разные стратегии распределения, оформлю компонент Mozart для взаимодействия с внешними системами. Есть задача с ароматом поиска, ограничений или красивой конкурентности — прямо скажу, стоит ли брать под неё именно Oz.
— Модели конечных доменов и ограничений с собственными пропагаторами
— Замкнутый и параллельный поиск, схемы распределения и ветвления
— Dataflow-конкурентность, логические переменные, потоки, порты, агенты
— Функциональный и реляционный код в единой кодовой базе
— Обучение мультипарадигменным идеям в духе учебника CTM
— Прототипы языковых конструкций и символьные вычисления в Mozart
Основное направление — программирование в ограничениях и организация поиска. Задачу я описываю переменными конечных доменов, правила задаю пропагаторами, а работу решателя настраиваю собственными схемами распределения и ветвления, чтобы гигантские пространства вариантов оставались управляемыми. Конкурентность в Oz заложена на уровне языка: логические переменные и dataflow-синхронизация дают возможность собирать аккуратные конвейеры, агентов и невесомые потоки, обходясь без ручных блокировок. Мне привычно рассуждать о детерминизме, замкнутом поиске и о взаимодействии ленивых вычислений, портов и ячеек, из которого и складывается сила Oz.
Кроме прикладных решений, беру заказы на обучение и научное сопровождение. Помогал студентам и исследователям осваивать идеи учебника «Concepts, Techniques, and Models of Computer Programming», превращая абстрактные темы состояния, параллелизма и декларативных вычислений в живые, разобранные по шагам примеры. Перенесу алгоритм из научной публикации в Oz, замерю и сравню разные стратегии распределения, оформлю компонент Mozart для взаимодействия с внешними системами. Есть задача с ароматом поиска, ограничений или красивой конкурентности — прямо скажу, стоит ли брать под неё именно Oz.
— Модели конечных доменов и ограничений с собственными пропагаторами
— Замкнутый и параллельный поиск, схемы распределения и ветвления
— Dataflow-конкурентность, логические переменные, потоки, порты, агенты
— Функциональный и реляционный код в единой кодовой базе
— Обучение мультипарадигменным идеям в духе учебника CTM
— Прототипы языковых конструкций и символьные вычисления в Mozart