SlideShare a Scribd company logo
1 of 10
Sistemas Expertos
            Resumen Prolog



Andrade Zambrano David Alejandro

        10 A Informática
Introducción

Prolog trabaja con un método de programación lógica
relacional porque existe una gama de lenguajes que siguen
este paradigma.

Cabe resaltar el hecho de que Prolog es 10 veces mas
lento que el lenguaje C, pero ocupa aproximadamente 10
veces menos líneas de código y tiempo de desarrollo.

                       Requisitos

1. Un editor de texto, se recomienda Emacs, y
2. Un entorno de desarrollo Prolog.
El entorno de desarrollo de Prolog

Prolog es un lenguaje de programación seminterpretado y es
muy similar a Java, el código fuente se compila a un código
de byte al cual lo interpreta una maquina virtual llamada
WAM (Warren Abstract Machine).

Su entorno se compone de:


1.   Un compilador
2.   Un interprete
3.   Un shell o top-level
4.   Una biblioteca de utilidades
Elementos del lenguaje

Prolog carece de declaraciones en el sentido imperativo: secciones, declaraciones
de tipo, declaraciones de variable, declaraciones de procedimientos, etc.

                                 Comentarios

Los comentarios en Prolog se escriben anteponiendo un símbolo de porcentaje;

Ej.: %Hola, esto es un comentario

                              Variables Lógicas

En Prolog no son variables en el sentido común por eso se las denomina
variables lógicas, Se escriben como una secuencia de caracteres alfabéticos
comenzando siempre por mayúscula o un guion bajo.

Ej.:Variable
     _Hola
     _

NO de esta manera: variable; $Hola; P_
De esta manera se evita la necesidad de declarar previamente las variables.
La variable anónima

Si existen variables sin nombre y todas ellas se representan mediante el guion
bajo ( _ ).

                                   Términos

Son el único elemento del lenguaje, es decir, los datos, el código, incluso el
programa son términos, estos se componen de un funtor seguido de cero a N
argumentos entre paréntesis separados por comas.

Veamos algunos ejemplos de functores:

              functor
              f384p12
              'esto es un único functor, eh!!'
              '_functor'
              $
              +

No son functores válidos:
             _functor
             Functor
Operadores.

Los operadores simplemente sirven para      escribir términos unarios o
binarios de una manera mas cómoda, por      ejemplo un functor definido
como operador infijo es la suma (+).         Así, la expresión a+b es
perfectamente valida, aunque en realidad    no es mas que el termino
+(a,b).

                    El mecanismo de unificación

La unificación es el mecanismo mediante el cual las variables lógicas
toman valor en Prolog.

Cuando una variable no tiene valor se dice que está libre. Pero una vez
que se le asigna valor, éste ya no cambia, por eso se dice que la variable
está ligada.
Clausulas

Los predicados se definen mediante un conjunto de clausulas:

          clausula1
          clausula2
          ………..
          clausulaN

Donde el orden es significativo, para facilitar la lectura, se suele dejar una línea
en blanco entre clausula y clausula.


                              El shell de Prolog.

Permite ejecutar objetivos y ver las ligaduras de las variables de manera
interactiva.
Curso Intermedio de Prolog.
Tipos de datos

Todos sabemos que los datos que maneja Prolog son los términos. Sin
embargo, podemos construir otros tipos de datos a partir de estos.

                                   Registros

Los registros son agrupaciones ordenadas de datos que en Prolog podemos
escribir como términos que almacenan cada dato en un argumento.

                                    Arboles

Son estructuras de datos recurrentes ya que los datos pueden ser recursivos.

                           Cadenas de Caracteres

En Prolog son listas de códigos ASCII, las mismas se puede escribir de la
manera que mas nos interese entre comillas dobles.

Ej.:“ABC” que es en realidad la lista [65,66,67].
Bucles de fallo

Los bucles de fallo constituyen una técnica d e programación que permite
recorrer una serie de elementos y aplicarles una operación. De la misma
manera que un bucle for o while.

                                     Streams

Como en todos los lenguajes, en Prolog existe la posibilidad de manejar
entrada/salida, esto es, ficheros, pantalla, impresoras, etc. Todo ello se hace a
través de streams (concepto idéntico al de otros lenguajes).

Los streams son buffers para escribir y/o leer de dispositivos como el teclado,
la pantalla, el
disco, etc. De modo que consideramos tres tipos de streams:

1. Streams de entrada (lectura).
2. Streams de salida (escritura).
3. Streams de entrada y salida (híbridos).

More Related Content

What's hot (15)

Compiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo MinilenguajeCompiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
Lenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcionLenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcion
 
Exposicion de programacion.
Exposicion de programacion.Exposicion de programacion.
Exposicion de programacion.
 
Leng progr 01
Leng progr 01Leng progr 01
Leng progr 01
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Cuestionario consultado
Cuestionario consultadoCuestionario consultado
Cuestionario consultado
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
Programa pascal
Programa pascalPrograma pascal
Programa pascal
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Presentación1
Presentación1Presentación1
Presentación1
 
Sentencias de control
Sentencias de controlSentencias de control
Sentencias de control
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
 
Estructura básica de pascal
Estructura básica de pascalEstructura básica de pascal
Estructura básica de pascal
 

Similar to Sistemas Expertos Resumen Prolog

Tutorial basico prolog
Tutorial basico prologTutorial basico prolog
Tutorial basico prologAnderipe Pinto
 
Tutorial de prolog
Tutorial de prologTutorial de prolog
Tutorial de prologPedro Vera
 
Conozcamos a Prolog
Conozcamos a PrologConozcamos a Prolog
Conozcamos a PrologIrvingGeyler
 
Estructura sintactica de los lenguajes
Estructura sintactica de los lenguajesEstructura sintactica de los lenguajes
Estructura sintactica de los lenguajesFenix Flame
 
Computacion alejandro
Computacion alejandroComputacion alejandro
Computacion alejandrojose camara
 
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.Mabel2310
 
Exposicion de programacion.
Exposicion de programacion.Exposicion de programacion.
Exposicion de programacion.BGYLMM
 
Exposicion de programacion.
Exposicion de programacion.Exposicion de programacion.
Exposicion de programacion.BGYLMM
 
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónTrabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónEmmanuel Fontán
 
Python guia01 1
Python guia01 1Python guia01 1
Python guia01 1zeta2015
 

Similar to Sistemas Expertos Resumen Prolog (20)

Prolog
PrologProlog
Prolog
 
Tutorial basico prolog
Tutorial basico prologTutorial basico prolog
Tutorial basico prolog
 
Prolog cinthya
Prolog cinthyaProlog cinthya
Prolog cinthya
 
Manual lab prolog
Manual lab prologManual lab prolog
Manual lab prolog
 
Tutorial de prolog
Tutorial de prologTutorial de prolog
Tutorial de prolog
 
Conozcamos a Prolog
Conozcamos a PrologConozcamos a Prolog
Conozcamos a Prolog
 
Lenguaje informático
Lenguaje informáticoLenguaje informático
Lenguaje informático
 
Estructura sintactica de los lenguajes
Estructura sintactica de los lenguajesEstructura sintactica de los lenguajes
Estructura sintactica de los lenguajes
 
Prolog
PrologProlog
Prolog
 
EXPO PERL UTT
EXPO PERL UTTEXPO PERL UTT
EXPO PERL UTT
 
Computacion alejandro
Computacion alejandroComputacion alejandro
Computacion alejandro
 
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
Trabajo practico de lenguaje java.Conceptos. Estructuras. Programacion.
 
Exposicion de programacion.
Exposicion de programacion.Exposicion de programacion.
Exposicion de programacion.
 
Exposicion de programacion.
Exposicion de programacion.Exposicion de programacion.
Exposicion de programacion.
 
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónTrabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
 
Python 4
Python 4Python 4
Python 4
 
Python guia01 1
Python guia01 1Python guia01 1
Python guia01 1
 
Clase de logica posbc
Clase de logica posbcClase de logica posbc
Clase de logica posbc
 
Segundo trabajo
Segundo trabajoSegundo trabajo
Segundo trabajo
 
Programación!! . .
Programación!! . .Programación!! . .
Programación!! . .
 

Sistemas Expertos Resumen Prolog

  • 1. Sistemas Expertos Resumen Prolog Andrade Zambrano David Alejandro 10 A Informática
  • 2. Introducción Prolog trabaja con un método de programación lógica relacional porque existe una gama de lenguajes que siguen este paradigma. Cabe resaltar el hecho de que Prolog es 10 veces mas lento que el lenguaje C, pero ocupa aproximadamente 10 veces menos líneas de código y tiempo de desarrollo. Requisitos 1. Un editor de texto, se recomienda Emacs, y 2. Un entorno de desarrollo Prolog.
  • 3. El entorno de desarrollo de Prolog Prolog es un lenguaje de programación seminterpretado y es muy similar a Java, el código fuente se compila a un código de byte al cual lo interpreta una maquina virtual llamada WAM (Warren Abstract Machine). Su entorno se compone de: 1. Un compilador 2. Un interprete 3. Un shell o top-level 4. Una biblioteca de utilidades
  • 4. Elementos del lenguaje Prolog carece de declaraciones en el sentido imperativo: secciones, declaraciones de tipo, declaraciones de variable, declaraciones de procedimientos, etc. Comentarios Los comentarios en Prolog se escriben anteponiendo un símbolo de porcentaje; Ej.: %Hola, esto es un comentario Variables Lógicas En Prolog no son variables en el sentido común por eso se las denomina variables lógicas, Se escriben como una secuencia de caracteres alfabéticos comenzando siempre por mayúscula o un guion bajo. Ej.:Variable _Hola _ NO de esta manera: variable; $Hola; P_ De esta manera se evita la necesidad de declarar previamente las variables.
  • 5. La variable anónima Si existen variables sin nombre y todas ellas se representan mediante el guion bajo ( _ ). Términos Son el único elemento del lenguaje, es decir, los datos, el código, incluso el programa son términos, estos se componen de un funtor seguido de cero a N argumentos entre paréntesis separados por comas. Veamos algunos ejemplos de functores: functor f384p12 'esto es un único functor, eh!!' '_functor' $ + No son functores válidos: _functor Functor
  • 6. Operadores. Los operadores simplemente sirven para escribir términos unarios o binarios de una manera mas cómoda, por ejemplo un functor definido como operador infijo es la suma (+). Así, la expresión a+b es perfectamente valida, aunque en realidad no es mas que el termino +(a,b). El mecanismo de unificación La unificación es el mecanismo mediante el cual las variables lógicas toman valor en Prolog. Cuando una variable no tiene valor se dice que está libre. Pero una vez que se le asigna valor, éste ya no cambia, por eso se dice que la variable está ligada.
  • 7. Clausulas Los predicados se definen mediante un conjunto de clausulas: clausula1 clausula2 ……….. clausulaN Donde el orden es significativo, para facilitar la lectura, se suele dejar una línea en blanco entre clausula y clausula. El shell de Prolog. Permite ejecutar objetivos y ver las ligaduras de las variables de manera interactiva.
  • 9. Tipos de datos Todos sabemos que los datos que maneja Prolog son los términos. Sin embargo, podemos construir otros tipos de datos a partir de estos. Registros Los registros son agrupaciones ordenadas de datos que en Prolog podemos escribir como términos que almacenan cada dato en un argumento. Arboles Son estructuras de datos recurrentes ya que los datos pueden ser recursivos. Cadenas de Caracteres En Prolog son listas de códigos ASCII, las mismas se puede escribir de la manera que mas nos interese entre comillas dobles. Ej.:“ABC” que es en realidad la lista [65,66,67].
  • 10. Bucles de fallo Los bucles de fallo constituyen una técnica d e programación que permite recorrer una serie de elementos y aplicarles una operación. De la misma manera que un bucle for o while. Streams Como en todos los lenguajes, en Prolog existe la posibilidad de manejar entrada/salida, esto es, ficheros, pantalla, impresoras, etc. Todo ello se hace a través de streams (concepto idéntico al de otros lenguajes). Los streams son buffers para escribir y/o leer de dispositivos como el teclado, la pantalla, el disco, etc. De modo que consideramos tres tipos de streams: 1. Streams de entrada (lectura). 2. Streams de salida (escritura). 3. Streams de entrada y salida (híbridos).