Download - 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.
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.
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.
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.
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.
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)
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.
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.
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.
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.
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.
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.
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.
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)
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:
C#
[System.Serializable]
public class SampleClass
{
// Objects of this type can be serialized
}
]
VB
<System.Serializable()> Public Class SampleClass '
Objects of this type can be serialized.
End Class