El lenguaje de programación Prolog es uno de los principales lenguajes de la Inteligencia Artificial.
Pertenece a la programación lógica y al desarrollo de bases de datos simbólicas. Existen varios descendientes como el Hilog, el XSB, y el NEUPRO. Todos ellos se construyen por cláusulas del tipo : CABEZA :- TERMINO1, TERMINO2,...,TERMINOK.
Para validar CABEZA los términos TERMINO1,..,TERMINOK deben validarse previamente. Una cláusula Neupro es diferente. Cada término es un factor, con un cierto peso, la cabeza tiene un umbral determinado: si la suma de los factores excede dicho umbral, entonces la cláusula es verdadera. Esta cláusula permite identificarla con una neurona artificial. Cada conjunto de cláusulas será equivalente a una red neuronal.
Si el umbral es igual al número de términos, y cada término tiene un peso igual a 1, el programa es un programa Prolog clásico. El trabajo se basa en la Máquina Abstracta de Warren - WAM, que reduce el Prolog a un conjunto de rutinas, facilitando su modificación y la escritura de un compilador eficiente.
Este trabajo describe un intérprete para el lenguaje NeuPro, utilizando la NeuPro Abstract Machine que resultó del estudio de la WAM y modificaciones al algoritmo tradicional de unificación