LOGICA DE PROGRAMACION

Post on 12-Jan-2017

48 views 1 download

Transcript of LOGICA DE PROGRAMACION

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