Мы использовали его для создания парсеров. С ним было легче работать, чем с lex / yacc.
Почему он не получает никакого использования в промышленности?
Это неопровержимо. Что означает «обнаруживаемый»? Кому нужно получить памятку об обнаружении?
http://www.meridiansystems.com/landing/ppc/prolog/getvideo.asp
Спросите Meridian Software об их предложении пролога, если вам нужны факты.
Тем не менее, есть некоторые препятствия для входа, которые я испытал.
Во-первых, пролог может быть медленным. Когда есть много правил-кандидатов и нет простых операций вырезания для ограничения пространства поиска, может потребоваться некоторое время, чтобы что-то сделать.
Во-вторых, пролог не является процедурным или функциональным, поэтому многие программисты возражают против его использования. (Интересно, что некоторые программисты тоже возражают против использования SQL. В этом отношении некоторые программисты неохотно используют SQL и делают странные вещи, например избегают операций объединения или утверждают, что COUNT(*)
это магически неэффективно.)
В-третьих, пролог требует довольно четкого осмысления различных случаев. Процедурное программирование может быть небрежным и при этом работать надежно. Неисполняемые операторы допустимы.
Следующее приемлемо в большинстве кругов.
b = a + 1
if a > b: # always False
Такое мрачное мышление доставляет вам неприятности в прологе.