Diferencia entre revisiones de «ProLog»

(Página creada con '{{Aplicación|nombre= Prolog|logo=Prolog.JPG |descripción= Lenguaje de programación lógico e interpretado|creador=Alain Colmerauer y Philippe Roussel|fecha_de_creacion=décad...')
(Etiqueta: nuestro-nuestra)
 
(Etiqueta: nuestro-nuestra)
Línea 1: Línea 1:
{{Aplicación|nombre= Prolog|logo=Prolog.JPG |descripción= Lenguaje de programación lógico e interpretado|creador=Alain Colmerauer y Philippe Roussel|fecha_de_creacion=década del 70|sitio_web=}}  
+
{{Aplicación|nombre= Prolog|logo=Prolog.JPG |descripcion=Lenguaje de programaci�n l�gico e interpretado|creador=Alain Colmerauer y Philippe Roussel|fecha_de_creacion=década del 70|sitio_web=}}  
  
 
'''Prolog''' es un [[lenguaje de programación]] diseñado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del cual tienen conocimiento. Prolog es un lenguaje de programación especialmente indicado para modelar problemas que impliquen objetos y las relaciones entre ellos. Está basado en los siguientes mecanismos básicos: unificación, estructuras de datos basadas en árboles y backtracking automático. La sintaxis del lenguaje incluye la declaración de hechos, preguntas y reglas. La popularidad de este lenguaje se debe a su capacidad de deducción y además es un lenguaje fácil de usar por su semántica y sintaxis. Sólo busca relaciones entre los objetos creados, las variables y las listas, que son su estructura básica. <br>  
 
'''Prolog''' es un [[lenguaje de programación]] diseñado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del cual tienen conocimiento. Prolog es un lenguaje de programación especialmente indicado para modelar problemas que impliquen objetos y las relaciones entre ellos. Está basado en los siguientes mecanismos básicos: unificación, estructuras de datos basadas en árboles y backtracking automático. La sintaxis del lenguaje incluye la declaración de hechos, preguntas y reglas. La popularidad de este lenguaje se debe a su capacidad de deducción y además es un lenguaje fácil de usar por su semántica y sintaxis. Sólo busca relaciones entre los objetos creados, las variables y las listas, que son su estructura básica. <br>  
  
 
== Historia  ==
 
== Historia  ==
Los inicios de la programación lógica se dan gracias a los primeros trabajos de inteligencia artificial. Los cuales originaron el primer lenguaje de programación que contempla los mecanismos de inferencia necesarios para la demostración automática de teoremas. El lenguaje de programación Prolog se originó del trabajo hecho por Robert A. Kowalski en la Universidad de Edinburgh y Alain Colmeraur en la Universidad de Aix-Marseille (Francia) en los años 70. La investigación de Kowolski en el área de deducción automatizada, llevó al desarrollo con Colmerauer al uso formal de lógica como un lenguaje de programación. Kowolski proporcionó la base teórica y Colmerauer inició la programación de Prolog. Colmeraur y Phillipe Roussel desarrollaron el primer intérprete, y David Warren de la Universidad de Edinburgh desarrolló el primer compilador Prolog. La mayoría de las implementaciones comerciales de Prolog usan la misma sintaxis desarrollada en Edinburgh. Su nombre proviene de las palabras en ingles “Programming in Logic”, que significa programación lógica.
+
Los inicios de la programación lógica se dan gracias a los primeros trabajos de inteligencia artificial. Los cuales originaron el primer lenguaje de programación que contempla los mecanismos de inferencia necesarios para la demostración automática de teoremas. El lenguaje de programación Prolog se originó del trabajo hecho por Robert A. Kowalski en la Universidad de Edinburgh y Alain Colmeraur en la Universidad de Aix-Marseille (Francia) en los años 70. La investigación de Kowolski en el área de deducción automatizada, llevó al desarrollo con Colmerauer al uso formal de lógica como un lenguaje de programación. Kowolski proporcionó la base teórica y Colmerauer inició la programación de Prolog. Colmeraur y Phillipe Roussel desarrollaron el primer intérprete, y David Warren de la Universidad de Edinburgh desarrolló el primer compilador Prolog. La mayoría de las implementaciones comerciales de Prolog usan la misma sintaxis desarrollada en Edinburgh. Su nombre proviene de las palabras en ingles “Programming in Logic�&#65533;, que significa programación lógica.
 
== Descripción  ==
 
== Descripción  ==
 
Prolog es un lenguaje de programación simple, pero poderoso. Se basa en nociones matemáticas de relaciones de inferencia. Es un lenguaje declarativo e interpretado, esto quiere decir que el lenguaje se usa para representar conocimientos sobre un determinado dominio y las relaciones entre objetos de ese dominio.
 
Prolog es un lenguaje de programación simple, pero poderoso. Se basa en nociones matemáticas de relaciones de inferencia. Es un lenguaje declarativo e interpretado, esto quiere decir que el lenguaje se usa para representar conocimientos sobre un determinado dominio y las relaciones entre objetos de ese dominio.

Revisión del 12:11 29 mar 2011

Prolog
Información sobre la plantilla
CreadorAlain Colmerauer y Philippe Roussel

Prolog es un lenguaje de programación diseñado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del cual tienen conocimiento. Prolog es un lenguaje de programación especialmente indicado para modelar problemas que impliquen objetos y las relaciones entre ellos. Está basado en los siguientes mecanismos básicos: unificación, estructuras de datos basadas en árboles y backtracking automático. La sintaxis del lenguaje incluye la declaración de hechos, preguntas y reglas. La popularidad de este lenguaje se debe a su capacidad de deducción y además es un lenguaje fácil de usar por su semántica y sintaxis. Sólo busca relaciones entre los objetos creados, las variables y las listas, que son su estructura básica.

Historia

Los inicios de la programación lógica se dan gracias a los primeros trabajos de inteligencia artificial. Los cuales originaron el primer lenguaje de programación que contempla los mecanismos de inferencia necesarios para la demostración automática de teoremas. El lenguaje de programación Prolog se originó del trabajo hecho por Robert A. Kowalski en la Universidad de Edinburgh y Alain Colmeraur en la Universidad de Aix-Marseille (Francia) en los años 70. La investigación de Kowolski en el área de deducción automatizada, llevó al desarrollo con Colmerauer al uso formal de lógica como un lenguaje de programación. Kowolski proporcionó la base teórica y Colmerauer inició la programación de Prolog. Colmeraur y Phillipe Roussel desarrollaron el primer intérprete, y David Warren de la Universidad de Edinburgh desarrolló el primer compilador Prolog. La mayoría de las implementaciones comerciales de Prolog usan la misma sintaxis desarrollada en Edinburgh. Su nombre proviene de las palabras en ingles “Programming in Logic��, que significa programación lógica.

Descripción

Prolog es un lenguaje de programación simple, pero poderoso. Se basa en nociones matemáticas de relaciones de inferencia. Es un lenguaje declarativo e interpretado, esto quiere decir que el lenguaje se usa para representar conocimientos sobre un determinado dominio y las relaciones entre objetos de ese dominio.
Un programa en Prolog consiste de una base de hechos de relaciones lógicas y detalles que se cumplen para la aplicación. Dicha base de datos no tiene una estructura impuesta, ni un procedimiento o clase principal. Escribir un programa en Prolog consiste en declarar el conocimiento disponible acerca de los objetivos, además de sus relaciones y sus reglas. En lugar de correr en un programa para obtener una solución, se hace una pregunta, el programa revisa la base de datos para encontrar la solución a la pregunta. Si existe más de una solución, Prolog hace backtracking para encontrar soluciones distintas. El propio sistema es el que deduce las respuestas a las preguntas que se le plantean, dichas respuestas las deduce del conocimiento obtenido por el conjunto de reglas dadas. La ejecución de Prolog consiste en una búsqueda en profundidad de un árbol conteniendo todas las posibles soluciones. Para cada una de ellas se evaluará su validez. La estructura de un programa en Prolog es lógica y directa. Se explican cada una de sus partes y operadores disponibles a continuación.

Características del lenguaje Prolog


1) Basado en lógica y programación declarativa.
2) No se especifica cómo debe hacerse, sino que debe lograrse.
3) Una característica importante en Prolog y que lo diferencia de otros lenguajes de programación, es que una variable sólo puede tener un valor mientras se cumple el objetivo.
4) El programador se concentra más en el conocimiento que en los algoritmos.
-¿Qué es conocido? (hechos, reglas)
-¿Qué preguntar? (Cómo resolverlo)
En Prolog, se llega a una solución infiriéndola desde algo ya conocido.

Predicados en Prolog

Los predicados son los elementos ejecutables en Prolog. En muchos sentidos se asemejan a los procedimientos o funciones típicos de los lenguajes imperativos. Una llamada concreta a un predicado, con unos argumentos concretos, se denomina objetivo. Todos los objetivos tiene un resultado de éxito o fallo tras su ejecución, indicando si el predicado es cierto para los argumentos dados, o por el contrario, es falso. Cuando un objetivo tiene éxito, las variables libres que aparecen en los argumentos pueden quedar ligadas. Estos son los valores que hacen cierto el predicado. Si el predicado falla, no ocurren ligaduras en las variables libres.
Se utilizan para expresar propiedades de los objetos, y relaciones entre ellos, predicados. En Prolog los llamaremos hechos. Debemos tener en cuenta que:
-Los nombres de todos los objetos y relaciones deben comenzar con una letra minúscula.
-Primero se escribe la relación o propiedad: predicado
-Y los objetos se escriben separándolos mediante comas y encerrados entre paréntesis: argumentos.
-Al final del hecho debe ir un punto (".").

Variables

Las variables se utilizan para representar objetos cualesquiera del Universo u objetos desconocidos en ese momento, es decir, son las incógnitas del problema. Se diferencian de los átomos en que empiezan siempre con una letra mayúscula o con el signo de subrayado (_). Así, deberemos ir con cuidado ya que cualquier identificador que empiece por mayúscula, será tomado por Prolog como una variable. En una consulta simple, las variables nos pueden servir para que Prolog encuentre un dato. Por ejemplo: tiene(Persona,libro). Nos devuelve en la variable Persona el nombre de la que tiene un libro (o de las personas que lo tienen, si hay más de una).

Estructura de un programa

El hecho de programar en Prolog consiste en dar al ordenador un Universo finito en forma de hechos y reglas, proporcionando los medios para realizar inferencias de un hecho a otro. La programación en Prolog consiste en:
-Declarar algunos HECHOS sobre los objetos y sus relaciones.
-Definir algunas REGLAS sobre los objetos y sus relaciones, y
-Hacer PREGUNTAS sobre los objetos y sus relaciones.

Programa Prolog: Conjunto de afirmaciones (hechos y reglas) representando los conocimientos que poseemos en un determinado dominio o campo de nuestra competencia. La estrategia de resolución particular que utiliza Prolog es una forma de resolución de entrada lineal (árbol de búsqueda estándar). Para la búsqueda de cláusulas alternativas para satisfacer el mismo objetivo, Prolog adopta una estrategia de primero hacia abajo (recorrido del árbol en profundidad). Por todo esto, el orden de las cláusulas (hechos y reglas) de un determinado procedimiento es importante en Prolog, ya que determina el orden en que las soluciones serán encontradas. Una cláusula de Horn es una regla de inferencia lógica con una serie de premisas (cero, una o más), y un único consecuente. Las cláusulas de Horn son las instrucciones básicas del lenguaje de programación Prolog. La sintaxis de una cláusula de Horn en PROLOG tiene el siguiente aspecto: dividir(X, Y):-par(X),suma(X,Y).

Fuentes