L'abbiamo usato per costruire parser. È stato più facile lavorare con lex / yacc.
Why is it not getting any detectable industry usage?
Questo non è possibile rispondere. Cosa significa "rilevabile"? Chi deve ricevere il memo di rilevamento?
link
Chiedi a Meridian Software informazioni sulla loro offerta di prolog se vuoi dei fatti.
Tuttavia, ci sono alcune barriere all'entrata che ho vissuto.
Innanzitutto, il prologo può essere lento. Quando ci sono un sacco di regole per i candidati e non ci sono operazioni di taglio semplici per limitare lo spazio di ricerca, ci vuole un po 'per fare qualcosa.
In secondo luogo, il prologo non è procedurale o funzionale, quindi molti programmatori si rifiutano di usarlo. (È interessante notare che alcuni programmatori si rifiutano di usare anche l'SQL. Del resto, alcuni programmatori usano con riluttanza SQL e fanno cose strane come evitare operazioni di join, o affermano che COUNT(*)
è magicamente inefficiente.)
In terzo luogo, il prologo richiede un pensiero abbastanza chiaro su quali siano i vari casi. La programmazione procedurale può essere trascurata e funziona comunque in modo affidabile. Dichiarazioni non eseguibili sono accettabili.
Quanto segue è accettabile nella maggior parte delle cerchie.
b = a + 1
if a > b: # always False
Questo tipo di pensiero oscuro ti mette nei guai nel prologo.