Кто-нибудь знает случайный генератор программ на C, который включает вычисления с плавающей запятой?
Я ищу что-то, что было бы немного похоже на Csmith, за исключением того, что Csmith не генерирует выражения с плавающей запятой и что он генерирует тонны другие конструкции, что делает его немного сложным для изменения. Создание последовательных вычислений было бы хорошим началом для моей цели, если бы они включали некоторые плавающие точки. Условные были бы еще лучше, но мне не нужны циклы, указатели или даже массивы.
Так как на многих языках используется синтаксис типа C, такой генератор, возможно, не должен быть специфичным для C. Даже если он специфичен для другого языка C-типа, я мог бы обрабатывать сгенерированную программу для этого язык в программу C.
EDIT: вот фрагмент программы, созданной Csmith, для уточнения того, что я ищу.
...
int64_t *l_374 = &g_189;
int32_t l_375 = (-1L);
int i, j, k;
l_375 &= ((g_106 == ((*l_374) = (&g_324[4] == l_373[0][0][5]))) < 0x80C8L);
return (*g_207);
...
Я также должен уточнить, что, принимая программу Csmith и заменяя, скажем, int64_t
с float
может дать синтаксически правильную C-программу, она почти наверняка не даст определенную программу. Я могу проверить, содержит ли замещенная программа undefined поведение, но это не так, и если я должен отклонить 99% замещенных программ, потому что они undefined, процесс будет слишком медленным, чтобы быть полезным.