View
48
Download
1
Category
Preview:
Citation preview
LÓGICA EN PROGRAMACIÓN
¿ QUE ES LA LOGICA DE PROGRAMACION?
La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación declarativa son: programación funcional, programación en restricción, programas DSL (de dominio específico) e híbridos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático. La programación lógica gira en torno al concepto de predicado, o relación entre elementos.
MOTIVACIÓN• Históricamente, los ordenadores se han programado utilizando
lenguajes muy cercanos a las peculiaridades de la propia máquina: operaciones aritméticas simples, instrucciones de acceso a memoria, etc. Un programa escrito de esta manera puede ocultar totalmente su propósito a la comprensión de un ser humano, incluso uno entrenado. Hoy día, estos lenguajes pertenecientes al paradigma de la programación imperativa han evolucionado de manera que ya no son tan crípticos.
• En cambio, la lógica matemática es la manera más sencilla, para el intelecto humano, de expresar formalmente problemas complejos y de resolverlos mediante la aplicación de reglas, hipótesis y teoremas. De ahí que el concepto de "programación lógica" resulte atractivo en diversos campos donde la programación tradicional es un fracaso.
CAMPOS DE APLICACIONES • La programación lógica encuentra su hábitat natural en aplicaciones de
inteligencia artificial o relacionadas:• Sistemas expertos, donde un sistema de información imita las
recomendaciones de un experto sobre algún dominio de conocimiento.
• Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una teoría existente.
• Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana.
• La programación lógica también se utiliza en aplicaciones más "mundanas" pero de manera muy limitada, ya que la programación tradicional es más adecuada a tareas de propósito general.
FUNDAMENTOS• La mayoría de los lenguajes de programación lógica se
basan en la teoría lógica de orden, aunque también incorporan algunos comportamientos de orden superior como la lógica difusa. En este sentido, destacan los lenguajes funcionales, ya que se basan en el calculo lambda, que es la única teoría lógica de orden superior que es demostradamente computable (hasta el momento).
LENGUAJES• El lenguaje de programación lógica por excelencia es prolog
que cuenta con diversas variantes. La más importante es la programación lógica con restricciones que posibilita la resolución de ecuaciones lineales además de la demostración de hipótesis.
LIBRERIAS
• Existen librerías que permiten aplicar estas técnicas de programación en otros lenguajes. En ese sentido, seguramente las más conocidas sean las basadas en miniKanren, un DSL que se ha portado a lenguajes como Clojure, Haskell, Javascript, Python, Ruby, etc., y permite utilizar este tipo de programación.
• Lógica de Programación. Base sobre la cual se sustenta la programación en si.
• Todo personas que pretenda construir un programa que de solución a determinada problemática, se enfrenta a dos grandes tareas:
• El QUÉ: acciones a realizar para poder resolver el problema. Esta tarea forma parte del trabajo de mesa previo a toda actividad de programación.
• El CÓMO: instrucciones de las que se va a valer para escribir el código que realice las acciones determinadas en el QUÉ, las cuales están determinadas por el lenguaje de programación seleccionado.
¿SABES ? EN LA LOGICA DE PROGRAMACION SE HACE MUCHO DE ALGORITMOS
• Cuando el objetivo está realmente claro. Siempre que en el desarrollo de la solución de un problema, en algún momento no sabe por donde coger, no sabe qué hacer o se siente perdido, no busque más, quiere decir simplemente que realmente usted no tenía tan claro el objetivo como había pensado.
• Algoritmo: Conjunto de pasos secuenciales y ordenados que permiten lograr un objetivo. Que sean secuenciales significa que deben ser ejecutados uno después de otro y que sean ordenados quiere decir que deben llevar un orden casi obligatorio.
¿QUE PODEMOS CONCLUIR?• Aunque a primera vista pueda parecer que este tipo de
programación está muy limitada a resolver puzzles y cosas por el estilo, lo cierto es que (teóricamente) puedes realizar cualquier tipo de programa con ellos.
• Aun así, lo lógico es utilizar programación lógica en las áreas en que más sentido tiene: inteligencia artificial, sistemas expertos, procesamiento de lenguajes, etc.
• El poder utilizar este paradigma a través de librerías hace sea mucho más atractivo, porque hace que sea más sencillo usarlo sólo en aquellas partes del problema que tiene sentido.
MUCHAS GRACIAS POR TU ATENCIÓN
Recommended