Paradigma de programacion

Description

Mapa mental de Programacion
Camilo Jurado
Mind Map by Camilo Jurado, updated more than 1 year ago
Camilo Jurado
Created by Camilo Jurado about 4 years ago
33
1

Resource summary

Paradigma de programacion
  1. POP (Programación orientada a procedimiento)
    1. En un lenguaje de programación orientado a procedimientos las instrucciones se usan para crear unidades o módulos que se conocen como procedimientos o subrutinas.
      1. Los procedimientos aceptan como entrada los datos y transforman estos datos para producir como salida unos resultados específicos. Los lenguajes orientados a objetos surgen por el desarrollo de pantallas gráficas y apoyo a interfaces gráficas de usuario o GUI, por sus siglas en inglés, capaces de desplegar ventanas múltiples. El lenguaje C++ contiene elementos de ambos tipos de programación.
        1. Utilizar este tipo de programación puede resultar muy útil a la hora de programar grandes proyectos, ya que se crea una inmensa biblioteca de funciones especiales para procedimientos utilizados con frecuencia dentro del programa. Por contrapartida, es muy difícil determinar cuál es el número mínimo de instrucciones consecutivas, y el mínimo número que esta secuencia se debe repetir para considerar declarar un procedimiento o una función.
        2. La programación procedimental o programación por procedimientos es un paradigma de la programación. Muchas veces es aplicable tanto en lenguajes de programación de bajo nivel como en lenguajes de alto nivel.
        3. POO (Programación orientada a objetos)
          1. La programación Orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.
            1. La programación orientada a objetos es un enfoque de programación que combina datos y acciones asociadas (métodos) en estructuras lógicas (objetos). Este enfoque aumenta la capacidad para administrar la complejidad del software, lo cual resulta especialmente importante cuando se desarrollan y mantienen aplicaciones y estructuras de datos de gran tamaño.
              1. La programación orienta a objetos es una forma especial de pensar, nos permite modelar nuestra realidad dentro de un entorno de programación, partiendo de la primicia de que todo en esta vida es un objeto programable.
              2. Algunas de las ventajas de la programación orientada a objetos son los siguientes:
                1. Los componentes se pueden reutilizar.
                  1. Facilidad de mantenimiento y modificación de los objetos existentes.
                    1. Una estructura modular clara se puede obtener, la cual no revelará el mecanismo detrás del diseño.
                      1. Se proporciona un buen marco que facilita la creación de rica interfaz gráfica de usuario aplicaciones (GUI).
                        1. Se acopla bien a la utilización de bases de datos, debido a la correspondencia entre las estructuras.
                        2. Desventajas
                          1. Limitaciones del programador: Es posible el programador desconozca algunas características del paradigma y de hecho siga utilizando el paradigma estructurado.
                            1. No hay una forma única de resolver los problemas. Esto puede llevar a que diferentes interpretaciones de la solución planteada emerjan.
                              1. Se requiere una documentación amplia para determinar la solución planteada.
                          2. Programación funcional
                            1. En informática, la programación funcional es un paradigma de programación declarativa basado en el uso de verdaderas funciones matemáticas. En este estilo de programación las funciones son ciudadanas de primera clase, porque sus expresiones pueden ser asignadas a variables como se haría con cualquier otro valor; además de que pueden crearse funciones de orden superior.
                              1. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado en los años 1930 para investigar la naturaleza de las funciones, la naturaleza de la computabilidad y su relación con la recursión. Los lenguajes funcionales priorizan el uso de recursividad y aplicación de funciones de orden superior para resolver problemas que en otros lenguajes se resolverían mediante estructuras de control (por ejemplo, ciclos). Muchos lenguajes de programación funcionales pueden ser vistos como elaboraciones del cálculo lambda.
                                1. Los lenguajes de programación funcional, especialmente los puramente funcionales, han sido enfatizados en el ambiente académico y no tanto en el desarrollo comercial o industrial. Sin embargo, lenguajes de programación funcional como Lisp (Scheme, Common Lisp, etc.), Erlang, Rust, Objective Caml, Scala, F# y Haskell, han sido utilizados en aplicaciones comerciales e industriales por muchas organizaciones. La programación funcional también es utilizada en la industria a través de lenguajes de dominio específico como R (estadística), Mathematica (cómputo simbólico), J y K (análisis financiero).
                              2. Utilidad
                                1. El objetivo es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa, y evitar el concepto de estado del cómputo. La secuencia de computaciones llevadas a cabo por el programa se rige única y exclusivamente por la reescritura de definiciones más amplias a otras cada vez más concretas y definidas.
                                2. Funciones de primera clase y de orden superior
                                  1. Funciones de orden superior son funciones que pueden tomar otras funciones como argumentos o devolverlos como resultados. En cálculo , un ejemplo de una función de orden superior es el operador diferencial d / dx , que devuelve la derivada de una función f .
                                    1. Las funciones de orden superior están estrechamente relacionadas con las funciones de primera clase en las cuales las funciones de orden superior y las funciones de primera clase pueden recibir como argumentos y resultados otras funciones. La distinción entre los dos es sutil: "de orden superior", describe un concepto matemático de funciones que operan sobre otras funciones, mientras que la "primera clase" es un término informático que describe las entidades del lenguaje de programación que no tienen ninguna restricción de su utilización (por lo tanto funciones de primera clase pueden aparecer en cualquier parte del programa que otras entidades de primer nivel como los números pueden, incluidos como argumentos a otras funciones y como sus valores de retorno).
                                      1. Las funciones de orden superior permiten la aplicación parcial, una técnica en la que se aplica una función a sus argumentos uno a la vez, con cada aplicación devolver una nueva función que acepta el siguiente argumento. Esto le permite a uno expresar, por ejemplo, la función sucesor como el operador de suma aplicada parcialmente al número natural uno.
                                  2. Funciones puras
                                    1. Las funciones puramente funcionales (o expresiones) no tienen efectos secundarios (memoria o E/S). Esto significa que las funciones puras tienen varias propiedades útiles, muchas de las cuales pueden ser utilizadas para optimizar el código:
                                      1. Si no se utiliza el resultado de una expresión pura, se puede eliminar sin afectar a otras expresiones.
                                        1. Si una función pura se llama con parámetros que no causan efectos secundarios, el resultado es constante con respecto a la lista de parámetros (a veces llamada transparencia referencial), es decir, si la función pura se llama de nuevo con los mismos parámetros, el mismo resultado será devuelto (esto puede habilitar las optimizaciones de almacenamiento en caché).
                                          1. Si no hay una dependencia de datos entre dos expresiones puras, entonces su orden puede ser invertido, o pueden llevarse a cabo en paralelo y que no pueda interferir con los otros.
                                            1. Si el lenguaje no permite efectos secundarios, entonces cualquier estrategia de evaluación se puede utilizar, lo que da la libertad al compilador para reordenar o combinar la evaluación de expresiones en un programa (por ejemplo, usando la poda).
                                          2. Características
                                            1. Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo estas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos colaterales.
                                              1. Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).
                                                1. Existen dos grandes categorías de lenguajes funcionales: los funcionales puros y los híbridos. La diferencia entre ambos estriba en que los lenguajes funcionales híbridos son menos dogmáticos que los puros, al admitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignación de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje funcional híbrido.
                                            2. Ventajas de usar un paradigma funcional
                                              1. Ausencia de efectos colaterales.
                                                1. Proceso de depuración menos problemático.
                                                  1. Pruebas de unidades más confiables.
                                                    1. Mayor facilidad para la ejecución concurrente.
                                                  2. Programación lógica
                                                    1. 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 con restricciones, 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.
                                                      1. 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.
                                                      2. Campos de aplicación
                                                        1. Sistemas expertos, donde un sistema de información imita las recomendaciones de un experto sobre algún dominio de conocimiento.
                                                          1. Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una teoría existente.
                                                            1. Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana.
                                                            2. Conceptos
                                                              1. Un concepto importante de programación lógica es la descomposición de programas en sus componentes lógicos y sus componentes de control. Con lenguajes de programación lógica de bajo nivel, estos componentes determinan la solución del problema, por eso los componentes de control pueden variar para proporcionar alternancia de ejecución de un programa lógico. Estos conceptos son capturados con el eslogan
                                                                1. Algoritmo= lógica + control
                                                                  1. Donde "lógica" representa un programa lógico y "control" diferentes estrategias de demostración del teorema.
                                                                  2. Solución del Problema
                                                                    1. El caso proposicional simplificado en el cual un programa lógico a un nivel superior de reducción atómica no contiene variables compuestas es un razonamiento que determina un árbol lógico, el cual constituye un espacio de búsqueda para resolver el problema. El nivel superior es la raíz del árbol. Dado algún nodo en el árbol y alguna cláusula cuya cabecera esta marcada por un nodo, existe un conjunto de nuevas ramas correspondientes con los objetivos del cuerpo de las cláusulas, aún por reducir. Estas nuevas ramas son agrupadas juntas por el "y" lógico. El conjunto alternativo correspondiente de estas nuevas ramas está agrupado por el "o" lógico.
                                                                      1. Alguna estrategia de búsqueda puede ser usada para la búsqueda del conjunto de proposiciones a resolver. Prolog es un lenguaje de programación que usa una secuencia, último en entrar primero en salir, para una estrategia de agrietamiento, en la cual la alternativa y el objetivo son considerados a la vez. Otras estrategias de búsqueda son por ejemplo la búsqueda paralela o la búsqueda primero-mejor para encontrar una solución óptima.
                                                                        1. En el caso más general, donde los objetivos comparten variables, otras estrategias pueden ser usadas, como por ejemplo puede ser escogido el objetivo más altamente instanciado o el suficientemente instanciado para lo que implica un procedimiento. Una estrategia actualmente usada es la programación de lógica concurrente.
                                                                2. Ejemplos
                                                                      1. Obsérvese que el programa lógico no solamente es capaz de responder si una determinada hipótesis es verdadera o falsa. También es capaz de determinar que valores de la incógnita hacen cierta la hipótesis.
                                                                        1. Este ejemplo es claramente académico. Sin embargo, consideremos el siguiente ejemplo: el sistema de control de semáforos de una ciudad.
                                                                          1. El estado de cada uno de los semáforos (verde, rojo o ámbar) constituye los hechos del mundo real. El programa en sí consiste en unas pocas reglas de sentido común: determinados semáforos no pueden permanecer simultáneamente en verde, un semáforo solamente puede transitar de verde a ámbar y de ámbar a rojo, etc. La hipótesis es el estado en el que deberían estar cada uno de los semáforos en el siguiente instante de tiempo.
                                                                            1. Éste es un ejemplo imposible de resolver mediante programación tradicional, ya que la lógica subyacente al comportamiento de los semáforos en su conjunto queda enmascarada por simples órdenes imperativas del tipo "cambiar color de tal o cual semáforo".
                                                                Show full summary Hide full summary

                                                                Similar

                                                                Mapas mentales con ExamTime
                                                                Nazareth Olivo
                                                                fichas de estudio
                                                                Guadalupe Reyes Soriano
                                                                Esquemas
                                                                Ximena Barrera
                                                                Music and its most prominent types
                                                                Elina Sandoval
                                                                Vertebrate animals
                                                                Eliana Sandoval
                                                                Biochimie 101-120
                                                                Rodion Stoev
                                                                Bulbul rahidian, puntea, cerebelul – conformație externă, structură
                                                                T Adela
                                                                Tejidos básicos
                                                                Andrea Celedón
                                                                INTERPRETAR FUNCIONES Y ECUACIONES APLICADAS A LA ADMINISTRACIÓN
                                                                Danny Aguilar
                                                                Factores bióticos
                                                                DENNY WILLIAM MORENO CASTRO