В проекте возникла необходимость реализовать что-то вроде активных объектов. Каждый такой объект обладает собственным состоянием и потоком управления. Кроме того, объекты могут обмениваться асинхронными сообщениями. Объект должен уметь ожидать прихода определенного сообщения. Поток управления может переключаться только в момент ожидания сообщения. Код объекта зачастую делает какое-нибудь числодробление.
Делать это все на C++ явно несколько неудобно, если только не использовать какую-нибудь библиотеку легковесных процессов, однако я такой не нашел. Вопрос в том, как это сделать удобно? Может, можно использовать какой-нибудь другой язык (при том, что остальная часть проекта написана на C++)? Пока что есть только идея взять Ocaml и подкрутить его с помощью camlp4.