Programación en Lógica INTEGRANTE JULIO MONTECINO Q. Evolución Decada 70 Crisis del sotfware Alternativas PROLOG Programación en Lógica Resuelve problemas que envuelven objetos y las relaciones entre ellos. 10/16/2015 PROLOG, Programación en Lógica Altos Costos Disminución Costos Aplicaciones Inteligencia Artificial Robótica 3 Estructura Reglas Hechos Expresan relaciones entre objetos. Un hecho depende de otro. Características Características Los nombres de objetos deben comenzar con letra minúscula. Primero se escribe la relación, luego los objetos separados por comas y encerrados entre ( ) Al final de un hecho debe ir un “.”. Orden de los objetos, debe ser coherentes a lo largo de la base de los hechos. 10/16/2015 Variables Representa objetos que el mismo prolog determina. Consiste en una cabeza y un cuerpo unido por el signo “:-” La cabeza esta formada por un único hecho. El cuerpo puede ser uno o mas hechos, separados por una “,”, que actúa como el “Y” logico. Las reglas finalizan con un “.” PROLOG, Programación en Lógica Características Puede ser: Instanciada. No instanciada Los nombres de variables comienzan con letra mayuscula. 4 un coche tiene ruedas hechos tiene(coche,ruedas). Relación objetos tiempo(lluvioso). suelo(mojado). :- suelo(mojado). suelo(mojado). :- tiempo(lluvioso). suelo(mojado). 10/16/2015 PROLOG, Programación en Lógica 5 Al igual que otros lenguajes, existe la asociatividad de los operadores. 3+2*6 =3+(2*6) is Operador infijo. ‘6 is 4+2’ X is 4+3 consult Leer y compilar un programa, o para añadir cláusulas a un fichero. consult(fichero). recon Reemplaza una cláusula por la que se encuentra en la base de hechos. recon(fichero). 10/16/2015 PROLOG, Programación en Lógica 6 forget Eliminar hechos de la base de datos. exitsys Nos devuelve al sistema operativo. corte Controlar el proceso de reevaluación. forget(fichero). “!” regla :- hecho1, hecho2, !, hecho3, hecho4, hecho5. 10/16/2015 PROLOG, Programación en Lógica 7 write nl read 10/16/2015 Comillas simples write(‘hello world’) encierran constantes y las dobles encierran una lista. Fuerza un retorno de carro en la salida (enter) write(‘linea 1’),nl,write(‘linea 2’) linea 1 linea 2 Lee un valor de teclado read(X). y finaliza cuando se introduce un punto “.” PROLOG, Programación en Lógica 8 PROLOG1 Trabaja con los S.O. MS-DOS, CP/M86, RSX-11M Y RT-11. PROLOG QUINTUS Utilizada en S.O. UNIX y VMS. Altas velocidades de ejecución. MACPROLOG Trabaja bajo S.O. MAC-OS. Combina sofisticadas técnicas de programación de inteligencia artificial. 10/16/2015 PROLOG, Programación en Lógica 9 Orientado a la inteligencia artificial. Facilidad Accesibilidad Utiliza a de programación. pocos comandos. todo usuario. Asociatividad operadores. 10/16/2015 de los Diferentes ambientes de trabajo. PROLOG, Programación en Lógica 10 Programación en Lógica