29

Lenguajes lógicos definicion y funcion

Embed Size (px)

Citation preview

Page 1: Lenguajes lógicos definicion y funcion
Page 2: Lenguajes lógicos definicion y funcion

Estudia el uso de la lógica para el planteamiento

de problemas y el control sobre las reglas de

inferencia para alcanzar la solución automática

Es aquel tipo de programación que permite al

software “razonar”, esto es, hacer

razonamientos, por ejemplo, de tipo deductivo

o inductivo.

Page 3: Lenguajes lógicos definicion y funcion

Robert Kowalski establece la siguiente función sobre los

lenguajes lógicos:

Algoritmos = lógica + control

Lógica (programador): Hechos y reglas para representar

conocimiento.

Control (interprete): Deducción lógica para dar respuestas

(soluciones).

La programación lógica construye base de conocimientos

mediante reglas y hechos.

Page 4: Lenguajes lógicos definicion y funcion
Page 5: Lenguajes lógicos definicion y funcion

El lenguaje de programación lógica por excelencia es el

PROLOG.

1) Basado en lógica y programación declarativa.

2) No se especifica cómo debe hacerse, sino qué debe

lograrse.

Page 6: Lenguajes lógicos definicion y funcion

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.

Page 7: Lenguajes lógicos definicion y funcion
Page 8: Lenguajes lógicos definicion y funcion

Los Lenguajes Lógicos se componen de hechos y

relaciones entre estos y a su vez de un conjunto de

normas, un patrón entre los hechos u objetos. Estos

programas se ejecutan a través de “preguntas” sobre lo

que debe ser cierto. Los hechos y las reglas se usan

entonces para determinar la unificación ( sustituciones de

variables ) y así procesar la sentencia.

Page 9: Lenguajes lógicos definicion y funcion
Page 10: Lenguajes lógicos definicion y funcion
Page 11: Lenguajes lógicos definicion y funcion

Prolog= PROgrammmation LOGique

Lenguaje de programación de paradigma declarativo

por el uso de toda la gente que trabaja en el campo

de la Inteligencia Artificial (lingüistas)

Page 12: Lenguajes lógicos definicion y funcion

ALF (Another logical framework)

Este lenguaje combina la

programación lógica con la

programación funcional (funcional –

basado en la evaluación de

expresiones y funciones matemáticas

más que en la utilización de comandos

como <alloc>, <malloc>…).

Al igual que Prolog, ALF esta basado

en “cláusulas de Horn” (por eso es

programación lógica) pero también en

funciones y ecuaciones (y por esto es

también programación funcional).

¿Qué son las

Clausulas de

Horn

Una fórmula lógica es

una cláusula de

Horn si es una

cláusula (disyunción

de literales) con,

como máximo, un

literal positivo. Se

llaman así por el

lógico Alfred Horn, el

primero en señalar la

importancia de estas

cláusulas en 1951.

Page 13: Lenguajes lógicos definicion y funcion

Gödel programming language

Gödel es un lenguaje en el que las sentencias lógicas llevan un

orden y en el que existe el polimorfismo.

Está basado en módulos (que aceptan polimorfismo) y en tipos de

datos (soporta enteros y racionales con una precisión infinita, y

número en coma flotante) y tiene una amplia librería de módulos

predefinidos.

Es un buen lenguaje para tareas de meta-programación, tales como

compilación, depuración, análisis, verificación o transformación de

programas, ya que es mucho más declarativo que Prolog, por

ejemplo.

Page 14: Lenguajes lógicos definicion y funcion

Mercury programming language

Mercury es un lenguaje de alto nivel (es decir, no se

preocupa de problemas como la reserva y liberación de

memoria) derivado de Prolog, pero con una implementación

que le hace ser más útil para representar y tratar problemas

del mundo real. Combina toda la expresividad del lenguaje

declarativo con avanzadas técnicas de análisis estático y

detección de errores. Es un lenguaje compilado, lo que le

permite detectar numerosos errores antes de poder ejecutar

la aplicación. El compilador “traduce” el programa de

lenguaje Mercury a C, que es un lenguaje portable a

cualquier plataforma.

Page 15: Lenguajes lógicos definicion y funcion
Page 16: Lenguajes lógicos definicion y funcion

La lógica computacional o lógica formal siempre ha sido

una herramienta fundamental para el progreso de las

ciencias computacionales, y sus desarrollos son la base

para elaborar soluciones informáticas, tanto en software

como en hardware.

Page 17: Lenguajes lógicos definicion y funcion

La lógica computacional es la misma lógica matemática

aplicada al contexto de las ciencias de la computación. Su

uso es fundamental a varios niveles: en los circuitos

computacionales, en la programación lógica y en el

análisis y optimización (de recursos temporales y

espaciales) de algoritmos.

Page 18: Lenguajes lógicos definicion y funcion

Tienden a tener constantes como por ejemplo verdadero o

falso y tiene conectivos de base como él (y, o, no) y

también conocidas estas preposiciones como conjunción,

disyuntiva y negación.

Page 19: Lenguajes lógicos definicion y funcion
Page 20: Lenguajes lógicos definicion y funcion
Page 21: Lenguajes lógicos definicion y funcion
Page 22: Lenguajes lógicos definicion y funcion
Page 23: Lenguajes lógicos definicion y funcion
Page 24: Lenguajes lógicos definicion y funcion
Page 25: Lenguajes lógicos definicion y funcion

Atributo. Los atributos son las características

individuales que diferencian un objeto de otro y

determinan su apariencia, estado u otras cualidades.

Los atributos se guardan en variables denominadas de

instancia, y cada objeto particular puede tener valores

distintos para estas variables. Las variables de

instancia también denominados miembros dato, son

declaradas en la clase pero sus valores son fijados y

cambiados en el objeto. Además de las variables de

instancia hay variables de clase, las cuales se aplican a

la clase y a todas sus instancias.

Page 26: Lenguajes lógicos definicion y funcion

Los atributos tienen las propiedades siguientes:

Los atributos agregan metadatos al programa. Los metadatos son información sobre los tipos definidos en un programa. Todos los ensamblados .NET contienen un conjunto de metadatos especificado que describe los tipos y los miembros de tipo definidos en el ensamblado. Puede agregar atributos personalizados para especificar toda información adicional necesaria. Para obtener más información, vea Crear atributos personalizados (C# y Visual Basic).

Se puede aplicar uno o más atributos a todos los ensamblados, módulos o elementos de programa más pequeños, como las clases y las propiedades.

Los atributos pueden aceptar argumentos del mismo modo que los métodos y las propiedades.

El programa puede examinar sus propios metadatos o los metadatos de otros programas mediante la reflexión. Para obtener más información, vea Obtener acceso a los atributos mediante la reflexión (C# y Visual Basic)

Page 27: Lenguajes lógicos definicion y funcion

Los atributos se pueden colocar en la mayoría de las

declaraciones, aunque un determinado atributo podría

restringir los tipos de declaraciones en las que es

válido. En C#, un atributo se especifica colocando el

nombre del atributo, encerrado entre corchetes ([]),

encima de la declaración de la entidad a la que se

aplica. En Visual Basic, el atributo se encierra entre

corchetes angulares (< >). Debe aparecer

inmediatamente delante del elemento al que se aplica,

en la misma línea.

En este ejemplo, el atributo SerializableAttribute se

utiliza para aplicar una característica específica a una

clase:

Page 28: Lenguajes lógicos definicion y funcion

C#

[System.Serializable]

public class SampleClass

{

// Objects of this type can be serialized

}

]

Page 29: Lenguajes lógicos definicion y funcion

VB

<System.Serializable()> Public Class SampleClass '

Objects of this type can be serialized.

End Class