Decada 70 Crisis del sotfware Altos Costos Alternativas Menores Costos PROLOG Aplicaciones Programación en Lógica Inteligencia Artificial Resuelve problemas que envuelven Robótica objetos y las relaciones entre ellos Estructura Hechos Reglas Variables Ejemplo is Operador infijo. `6 is 4+2' consult Leer y compilar un programa, o consult(fichero). para añadir cláusulas a un fichero. recon Reemplaza una cláusula por la recon(fichero). que se encuentra en la base de hechos. forget Eliminar hechos de la base de forget(fichero). datos. exitsys Nos devuelve al sistema operativo. corte Controlar el proceso de ! reevaluación. write Comillas simples encierran write(`hello world') constantes y las dobles encierran una lista. nl Fuerza un retorno de carro en la write(`linea 1'),nl,write(`linea 2') salida(enter) linea 1 1 linea 2 read Lee un valor de teclado y finaliza read(X). cuando se introduce un punto. PROLOG1 Trabaja con los S.O. MS−DOS, CP/M−86, RSX−11M Y RT−11. PROLOG Utilizada en S.O. UNIX y VMS. Altas velocidades de ejecución. QUINTUS MACPROLOG Trabaja bajo S.O. MAC−OS. Combina sofisticadas técnicas de programación de inteligencia artificial. CONCLUSIÓN Un hecho depende de otro Representa objetos que el mismo prolog determina Características • Los nombres de objetos deben comenzar con una letra minúscula. • Primero se escribe la relación, y 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. Características Características • Una regla 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 . Expresan relaciones entre objetos 2 • Puede ser: • Instanciada. • No instanciada • Los nombres de las variables comienzan con letra mayuscula. suelo(mojado). :− tiempo(lluvioso). suelo(mojado). tiempo(lluvioso). −−−−> suelo(mojado). suelo(mojado). • Orientado a la inteligencia artificial. • Facilidad de programación. • Accesibilidad a todo usuario. • Utiliza pocos comandos. • Asociatividad de los operadores. • Diferentes ambientes de trabajo. 3