SlideShare una empresa de Scribd logo
1 de 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).

Más contenido relacionado

La actualidad más candente (15)

Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
 
Exposicion de programacion.
Exposicion de programacion.Exposicion de programacion.
Exposicion de programacion.
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
GENERACION DE CODIGO INTERMEDIO
GENERACION DE CODIGO INTERMEDIOGENERACION DE CODIGO INTERMEDIO
GENERACION DE CODIGO INTERMEDIO
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Programa pascal
Programa pascalPrograma pascal
Programa pascal
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladores
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Estructura básica de pascal
Estructura básica de pascalEstructura básica de pascal
Estructura básica de pascal
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Manual lab prolog
Manual lab prologManual lab prolog
Manual lab prolog
 
Compiladores
CompiladoresCompiladores
Compiladores
 

Destacado

Consolidado 2014 asarias
Consolidado 2014 asariasConsolidado 2014 asarias
Consolidado 2014 asariasafranio soares
 
Los últimos negreros Alfredo Iriarte
Los últimos negreros   Alfredo IriarteLos últimos negreros   Alfredo Iriarte
Los últimos negreros Alfredo IriarteMiguel Cardinale
 
Power
PowerPower
Powermaria
 
Comunicación Política - La TransformacióN De La Visibilidad
Comunicación Política - La TransformacióN De La VisibilidadComunicación Política - La TransformacióN De La Visibilidad
Comunicación Política - La TransformacióN De La VisibilidadOmyOum
 
Prédio psf canudos 29-01-2014
Prédio psf canudos   29-01-2014Prédio psf canudos   29-01-2014
Prédio psf canudos 29-01-2014afranio soares
 
2010-07-01 (UC3M) learn3 mbi UC3M, I Jorn eMadrid
2010-07-01 (UC3M) learn3 mbi UC3M, I Jorn eMadrid2010-07-01 (UC3M) learn3 mbi UC3M, I Jorn eMadrid
2010-07-01 (UC3M) learn3 mbi UC3M, I Jorn eMadrideMadrid network
 
Mandarin chinese bible new testament luke
Mandarin chinese bible new testament lukeMandarin chinese bible new testament luke
Mandarin chinese bible new testament lukeChineseBibles
 

Destacado (16)

Boletim 2
Boletim 2Boletim 2
Boletim 2
 
Mascotas
MascotasMascotas
Mascotas
 
Consolidado 2014 asarias
Consolidado 2014 asariasConsolidado 2014 asarias
Consolidado 2014 asarias
 
Tema1 1 P Curso Pad
Tema1 1 P Curso PadTema1 1 P Curso Pad
Tema1 1 P Curso Pad
 
Los últimos negreros Alfredo Iriarte
Los últimos negreros   Alfredo IriarteLos últimos negreros   Alfredo Iriarte
Los últimos negreros Alfredo Iriarte
 
Power
PowerPower
Power
 
Presentation_NEW.PPTX
Presentation_NEW.PPTXPresentation_NEW.PPTX
Presentation_NEW.PPTX
 
Comunicación Política - La TransformacióN De La Visibilidad
Comunicación Política - La TransformacióN De La VisibilidadComunicación Política - La TransformacióN De La Visibilidad
Comunicación Política - La TransformacióN De La Visibilidad
 
Prédio psf canudos 29-01-2014
Prédio psf canudos   29-01-2014Prédio psf canudos   29-01-2014
Prédio psf canudos 29-01-2014
 
2010-07-01 (UC3M) learn3 mbi UC3M, I Jorn eMadrid
2010-07-01 (UC3M) learn3 mbi UC3M, I Jorn eMadrid2010-07-01 (UC3M) learn3 mbi UC3M, I Jorn eMadrid
2010-07-01 (UC3M) learn3 mbi UC3M, I Jorn eMadrid
 
La Mochila Nº 8
La Mochila Nº 8La Mochila Nº 8
La Mochila Nº 8
 
Boletim 7
Boletim 7Boletim 7
Boletim 7
 
Resume b
Resume bResume b
Resume b
 
Planificacion Esteban
Planificacion EstebanPlanificacion Esteban
Planificacion Esteban
 
Mandarin chinese bible new testament luke
Mandarin chinese bible new testament lukeMandarin chinese bible new testament luke
Mandarin chinese bible new testament luke
 
Gracias
GraciasGracias
Gracias
 

Similar a 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
 
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
 
Computacion alejandro
Computacion alejandroComputacion alejandro
Computacion alejandrojose camara
 
Lenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcionLenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcionIsrael Castillo Cruz
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Universidad
 
Python guia01 1
Python guia01 1Python guia01 1
Python guia01 1zeta2015
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxFedericoMartearena
 
4ta tarea de sistemas expertos
4ta tarea de sistemas expertos4ta tarea de sistemas expertos
4ta tarea de sistemas expertosynina
 
Exposicion de programacion.
Exposicion de programacion.Exposicion de programacion.
Exposicion de programacion.BGYLMM
 

Similar a Prolog (20)

Prolog
PrologProlog
Prolog
 
Prolog
PrologProlog
Prolog
 
Tutorial basico prolog
Tutorial basico prologTutorial basico prolog
Tutorial basico prolog
 
Prolog cinthya
Prolog cinthyaProlog cinthya
Prolog cinthya
 
Tutorial de prolog
Tutorial de prologTutorial de prolog
Tutorial de prolog
 
Prolog
PrologProlog
Prolog
 
Conozcamos a Prolog
Conozcamos a PrologConozcamos a Prolog
Conozcamos a Prolog
 
EXPO PERL UTT
EXPO PERL UTTEXPO PERL UTT
EXPO PERL UTT
 
Estructura sintactica de los lenguajes
Estructura sintactica de los lenguajesEstructura sintactica de los lenguajes
Estructura sintactica de los lenguajes
 
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.
 
Lenguaje informático
Lenguaje informáticoLenguaje informático
Lenguaje informático
 
Computacion alejandro
Computacion alejandroComputacion alejandro
Computacion alejandro
 
Lenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcionLenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcion
 
Clase de logica posbc
Clase de logica posbcClase de logica posbc
Clase de logica posbc
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
 
Java xml
Java xml Java xml
Java xml
 
Python guia01 1
Python guia01 1Python guia01 1
Python guia01 1
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptx
 
4ta tarea de sistemas expertos
4ta tarea de sistemas expertos4ta tarea de sistemas expertos
4ta tarea de sistemas expertos
 
Exposicion de programacion.
Exposicion de programacion.Exposicion de programacion.
Exposicion de programacion.
 

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).