ıllı Portal de Psicología y NeuroCiencias

Portal wikinfo sobre psicología y neurociencias.

 !Selecciona tu Idioma!

Enciclopedia/Diccionario de Psicología y Neurociencias:

ıllı Prolog wiki: info, libros pdf y vídeos

psicologia y neurociencias

salud  Prolog 


Se trata de un lenguaje de programación concebido a inicios de los años setenta en la Universidad de Aix-Marseille I (Marsella, Francia) por los estudiantes Alain Colmerauer y Philippe Roussel. Nació de un proyecto que no tenía como objetivo la traducción de un lenguaje de programación, sino más bien la clasificación algorítmica de lenguajes naturales. Alain Colmerauer y Robert Pasero trabajaban en la una parte del procesado del lenguaje natural y Jean Trudel y Philippe Roussel en la una parte de deducción y también inferencia del sistema. Interesado por el procedimiento de resolución S.L., Trudel convenció a Robert Kowalski a fin de que se uniera al proyecto, dando sitio a una versión preliminar del lenguaje Prolog a fines de 1971 y apareciendo la versión terminante en mil novecientos setenta y dos. Esta primera versión de Prolog fue programada en ALGOL W.


Inicialmente se trataba de un lenguaje absolutamente interpretado hasta el momento en que, en mil novecientos ochenta y tres, David H.D. Warren desarrolló un compilador capaz de traducir Prolog en un conjunto de instrucciones de una máquina abstracta llamada Warren Abstract Machine, o bien sumariamente, WAM. Desde ese momento Prolog es un lenguaje semi-interpretado.


Si bien en un comienzo se trataba de un lenguaje de empleo reducido, la aparición de intérpretes del mismo para microordenadores de ocho bits (ej: micro-PROLOG) y para ordenadores familiares de dieciseis bits (ej: Turbo Prolog de Borland, entre otros) durante la década de mil novecientos ochenta contribuyó de manera notable a su popularización. Otro esencial factor en su difusión fue la adopción del mismo de cara al desarrollo del proyecto de la quinta generación de computadoras a inicios de la década de los ochenta,en cuyo contexto se desarrolló la implementación paralelizada del lenguaje llamada KL1 y del que deriva una parte del desarrollo moderno de Prolog.


Las primeras versiones del lenguaje diferían, en sus diferentes implementaciones, en muchos aspectos de sus sintaxis, empleándose básicamente como forma normalizada el dialecto propuesto por la Universidad de Edimburgo, hasta el momento en que en mil novecientos noventa y cinco se estableció un estándar ISO (ISO/IEC trece mil doscientos once-1), llamado ISO-Prolog.


Prolog se enmarca en el paradigma de los lenguajes lógicos y declarativos, lo que lo diferencia enormemente de otros lenguajes más populares como Fortran, Pascal, C o bien Java.

Vuelta atrás

En los lenguajes de programación ya antes citados, las instrucciones se ejecutan por norma general en orden secuencial, esto es, una después de otra, en exactamente el mismo orden en que están escritas, que solo cambia cuando se alcanza una instrucción de control (un bucle, una instrucción condicional o bien una trasferencia).


Los programas en Prolog se componen de cláusulas de Horn que forman reglas del tipo "modus ponendo ponens", esto es, "Si es cierto el antecedente, entonces es cierto el coherente". Sin embargo, la manera de redactar las cláusulas de Horn es a la inversa de lo común. Primero se escribe el coherente y después el antecedente. El antecedente puede ser una conjunción de condiciones que se llama secuencia de objetivos. Cada objetivo se aparta con una coma y puede considerarse afín a una instrucción o bien llamada a procedimiento de los lenguajes imperativos.En Prolog no existen instrucciones de control. Su ejecución se fundamenta en 2 conceptos: la unificación y el backtracking.


Gracias a la unificación, cada objetivo determina un subconjunto de cláusulas susceptibles de ser ejecutadas. Cada una de ellas se llama punto de elección.Prolog elige el primer punto de elección y prosigue ejecutando el programa hasta determinar si la meta es auténtico o bien falso.


En en caso de ser falso entra en juego el backtracking, consistente en deshacer todo lo ejecutado ubicando el programa en exactamente el mismo estado en el que estaba inmediatamente antes de llegar al punto de elección. Entonces se toma el próximo punto de elección que estaba pendiente y se repite nuevamente el proceso. Todos y cada uno de los objetivos acaban su ejecución bien en éxito ("auténtico"), bien en descalabro ("falso").


Existen 2 géneros de cláusulas: Hechos y Reglas. Una regla es del tipo:

Cabeza:-Cuerpo.

y se lee como "La cabeza es cierto si el cuerpo es cierto". El cuerpo de una regla consiste en llamadas a predicados, que son llamados los objetivos de las reglas. El predicado ,/2 (o sea, un operador de paridad dos (que recibe dos razonamientos) y de nombre , ) indica conjunción de objetivos, y el operador ;/2 indica disyunción. Conjunciones y disyunciones pueden solo aparecer en el cuerpo, no en la cabeza de la regla.En realidad la disyunción no es un operador básico o bien predefinido, sino está meta-programado así:

';'(A,_):-A.';'(_,B):-B.

Las cláusulas sin cuerpo (esto es, antecedente) son llamados hechos pues siempre y en toda circunstancia son algunos. Un caso de un hecho es:

gato(tom).

que es equivalente a la regla:

gato(tom):-true.

El predicado predefinido true/0 siempre y en toda circunstancia es cierto.


Dado el hecho precedente, se puede preguntar:


¿ es tom un gato?

?-gato(tom).Yes

¿ que cosas son gatos?

?-gato(X).X=tom

Debido a la naturaleza relacional de muchos predicados, pueden ser utilizados revertidos sus razonamientos. Por servirnos de un ejemplo, length/2 puede ser utilizado para determinar el tamaño (longitud) de una lista: length( L), de este modo para producir un esqueleto de lista para un largo dado (length(X, cinco)). Similarmente, append/3 puede ser utilizado asimismo para unir o bien anexionar 2 listas: append( X), de esta manera para dividir una lista en 2 partes: append(X, Y, . Todo depende de qué razonamientos sean variableslibres y cuáles sean instanciados. En analogía con la programación imperativa, las variables libres son razonamientos de salida y el resto son razonamientos de entrada. Mas en Prolog, en contraste a los lenguajes imperativos, dicho rol es reemplazable en lamayoría de los predicados. Esta característica se llama reversibilidad, y las combinaciones válidas de razonamientos de salida o bien entrada se llama modos de empleo.Por servirnos de un ejemplo, el predicado length/2 es reversible y tiene 3 modos de uso: los 2 razonamientos instanciados, el primer razonamiento instanciado mas el otro no, y a la inversa. El modo perfecto de empleo con losdos razonamientos sin instanciar no tiene mucho sentido, mas podría ser aceptado conforme ciertas implementaciones, en tal caso, produciría todas y cada una los esqueletos de lista de todas y cada una de las longitudes posibles...


Por esta razón, una biblioteca parcialmente pequeña de predicados es suficiente para muchos programas en Prolog. Todos y cada uno de los predicados pueden asimismo ser utilizados para efectuar pruebas unitarias: las consultas pueden ser engastados en programas y permitir pruebas automáticas de regresión en tiempo de colección.


Como un lenguaje de propósito general, Prolog asimismo tiene múltiples predicados predefinidos para interacción con el sistema operativo, como entrada/salida, gráficos y comunicaciones de datos. Estos predicados no tienen un significado relacional y son solo útiles por los efectos laterales que exhiben en el sistema. Por servirnos de un ejemplo, el predicado write/1 muestra un término en la pantalla, mas no tiene relevancia su valor de veras o bien falsedad.


mas informacion


  ELIGE TU TEMA DE INTERÉS: 


wiki

  PSICOLOGIA (Wikinfo) 

wiki   BUSCADOR PSICOLOGIA    

 

USUARIOS:

Hay 396 invitados y ningún miembro en línea

psicologia y neurociencias

psicologia y neurociencias

 psicologia y neurociencias

Está aquí: Inicio > [ PSICOLOGIA (WIKINFO) ] > ıllı Prolog wiki: info, libros pdf y vídeos

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Ver políticas