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