Want to make creations as awesome as this one?

More creations to inspire you

Transcript

INGENERIA EN SISTEMAS.

ASIGNATURA.

PROGRAMACIÓN LÓGICA Y FUNCIONAL

ACTIVIDADA DE APRENDISAJE. NO.

A1.2

TEMA DESARROLLADO.

TEMA 1 : Conceptos Fundamentales.

PARTICIPANTES

NOMBRE: No. DE CONTROLAMAYRANI CASTRO MONTOYA. 21271033.MARCO ARTURO AGUILAR MEDINA. 21271026.GERARDO FAVIO NAVARRETE PEREZ. 21270258.

NOMBRE DEL PROFESOR.

Ing. Grissel Anahi Cruz Arriaga.

LUGAR:

virtual

FECHA:

09/09/2024

Las características de los paradigmas y lenguajes de la programación representativa.

¿Qué son los paradigmas de programación?

Programacion Funcional.

Programacion Logica.

Programacion Reactiva.

Programacion Orientada a Objetos.

Programacion Procedural.

Programacion Estructurada.

¿QUE SON LOS PARADIGMAS DE PROGRAMACION? Los paradigmas de programación son estilos o enfoques para resolver problemas mediante la programación, organizando el código de diferentes maneras, como el paradigma imperativo, orientado a objetos, funcional, lógico y declarativo.

  • Libro:
    • Smith, J. (2020). Introducción a la programación estructurada. Editorial Tecnología Global.
  • Capítulo de libro:
    • González, P. (2019). Principios de la programación orientada a objetos. En L. Martínez (Ed.), Lenguajes de programación modernos (pp. 45-67). Editorial Informática Avanzada.
  • Artículo de revista:
    • Pérez, A., & Torres, M. (2021). El impacto de la programación funcional en el desarrollo de software. Revista de Tecnología Computacional, 28(3), 115-130. https://doi.org/10.1234/rtc.2021.0115
  • Página web:
    • Instituto de Ciencias de la Computación. (2022). Historia de la programación lógica. https://www.cienciascomputacion.edu/historia-logica
  • Tesis:
    • Fernández, C. (2018). Implementación de algoritmos en lenguajes procedurales (Tesis de licenciatura, Universidad Nacional). Repositorio de Tesis. https://repositorio.unal.edu.co/tesis-algoritmos
  • Conferencia:
    • López, J. (2019, octubre). Nuevos enfoques en programación reactiva. Congreso Internacional de Computación y Sistemas, Bogotá, Colombia. https://doi.org/10.1016/j.compsi.2019.0042
  • Informe técnico:
    • Organización para el Desarrollo Tecnológico. (2020). Evaluación de lenguajes de programación emergentes (Informe técnico No. 145). Editorial Informática Global.

  • ReactiveX (RxJS): Una librería que facilita la programación reactiva en JavaScript mediante el uso de observables, muy utilizada en desarrollo frontend.
  • Akka (Scala): Un conjunto de herramientas para crear sistemas concurrentes y distribuidos en el entorno de JVM con programación reactiva.
  • React (JavaScript): Aunque no es puramente reactivo, usa el enfoque reactivo en la creación de interfaces de usuario, donde los componentes se actualizan automáticamente en función de los cambios de estado.
  • Cycle.js: Un framework JavaScript basado en la programación reactiva para construir interfaces de usuario con RxJS.

Lenguajes y Librerías Utilizados:

Programación Reactiva.

La programación orientada a objetos (POO) es un paradigma de programación que organiza el software en objetos, que representan entidades del mundo real o conceptos abstractos. Cada objeto contiene datos (atributos o propiedades) y comportamientos (métodos o funciones) que lo definen. El objetivo es modelar sistemas complejos de manera modular y reutilizable.

Programacion Orientada a Objetos.

Herencia: Permite que una clase (subclase) herede atributos y métodos de otra clase (superclase). Fomenta la reutilización del código y la organización jerárquica de las clases.Polimorfismo: Permite que diferentes objetos respondan de manera distinta a la misma operación, adaptando el comportamiento según el objeto específico que está siendo manipulado.Abstracción: Define solo los aspectos esenciales de los objetos, ocultando los detalles innecesarios para simplificar el diseño y la implementación.Clases y Objetos: Las clases son plantillas que definen las propiedades y comportamientos de los objetos. Un objeto es una instancia de una clase.Composición: Los objetos pueden contener otros objetos, permitiendo la creación de sistemas complejos mediante la combinación de objetos más simples.

Definición:

Características:

Encapsulamiento: Agrupa datos y métodos en una sola unidad (el objeto) y oculta los detalles internos, exponiendo solo una interfaz externa. Esto mejora la seguridad y la modularidad.

  • C: Considerado uno de los lenguajes más representativos de la programación estructurada, ampliamente utilizado en programación de sistemas.
  • Pascal: Diseñado específicamente para enseñar programación estructurada y fomentar el uso de buenas prácticas de desarrollo.
  • ALGOL: Un lenguaje que influyó significativamente en el desarrollo de la programación estructurada, precursor de muchos otros lenguajes.
  • Ada: Utilizado en sistemas críticos donde la claridad y la estructura del código son esenciales.
  • Modula-2: Un lenguaje que promueve la programación estructurada y la modularidad.

Lenguajes Utilizados:

Programación Estructurada.

La programación reactiva es un paradigma basado en flujos de datos y la propagación de cambios. En lugar de ejecutarse secuencialmente, los programas reaccionan a eventos o cambios en el entorno, ajustando su comportamiento automáticamente.

Programacion Reactiva.

Flujos de Datos: Los valores cambian en el tiempo, y los cambios en una variable se propagan automáticamente a todas las dependencias, similar a cómo las celdas de una hoja de cálculo se actualizan automáticamente cuando cambia un valor.Asincronía: La programación reactiva maneja tareas asíncronas, como entradas del usuario, actualizaciones de redes o temporizadores, de manera eficiente, sin bloquear el flujo principal del programa.Manejo de Eventos Continuos: En lugar de procesar un solo evento y finalizar, el sistema permanece "reactivo" continuamente, listo para responder a múltiples eventos a lo largo del tiempo.Modelado en Funciones: Las transformaciones y combinaciones de eventos se modelan a menudo con funciones de alto nivel, lo que permite abstraer el manejo de eventos.Observables y Observadores: Los "observables" son fuentes de datos o eventos, y los "observadores" son los componentes que reaccionan a los cambios.

Definición:

Características:

Orientada a Eventos: Los sistemas reactivos responden automáticamente a eventos externos o cambios en el estado de los datos.

La programación estructurada es un paradigma que busca mejorar la claridad, calidad y tiempo de desarrollo de los programas mediante el uso de estructuras de control bien definidas, como secuencias, bucles y condicionales. Se basa en la idea de evitar el uso de saltos arbitrarios (como el uso de la instrucción goto), promoviendo un flujo de control claro y predecible.

Programacion estructural.

Modularidad: Promueve la división del programa en módulos o subrutinas (procedimientos y funciones) independientes, lo que facilita la organización y el mantenimiento del código.Evita el Uso de goto: Se prohíbe o minimiza el uso del comando goto, ya que puede complicar el flujo de ejecución al crear saltos incontrolados.Legibilidad y Mantenimiento: Al seguir un flujo de control estructurado, el código se vuelve más fácil de leer, depurar y mantener, ya que se evita la complejidad innecesaria de flujos arbitrarios.Reutilización de Código: Al dividir el programa en funciones y subrutinas, el código se puede reutilizar fácilmente en diferentes partes del programa.Enfoque Top-Down: Se sigue un enfoque de arriba hacia abajo, donde se define el problema en términos generales y luego se descompone en partes más pequeñas y manejables.

Definición:

Características:

Estructuras de Control Básicas:Secuencia: Las instrucciones se ejecutan en el orden en que aparecen.Selección (Condicionales): Usa estructuras como if-else para tomar decisiones en el flujo del programa.Iteración (Bucles): Se utilizan bucles como for, while y do-while para repetir bloques de código.

La programación funcional es un paradigma de programación basado en funciones matemáticas. Se enfoca en la evaluación de funciones y evita cambios de estado y datos mutables, lo que la hace declarativa.

Programación Funcional.

Ausencia de Estado Global: Evita variables globales o cambios de estado que puedan afectar otras partes del programa, lo que mejora la predictibilidad y facilita la depuración.Transparencia Referencial: Las funciones siempre producen el mismo resultado dado el mismo conjunto de entradas, sin efectos secundarios.Evaluación Perezosa (Lazy Evaluation): Las expresiones no se evalúan hasta que su resultado es necesario, lo que permite optimizar el rendimiento y manejar estructuras infinitas.Composición de Funciones: Se crean programas complejos combinando funciones simples.Funciones Puras: Las funciones puras no tienen efectos secundarios y solo dependen de sus parámetros de entrada.

Definición:

Características:

Funciones como Ciudadanos de Primera Clase: Las funciones pueden ser pasadas como argumentos, retornadas como resultados y almacenadas en estructuras de datos.Inmutabilidad:Los datos no cambian después de ser creados. En lugar de modificar datos, se crean nuevas versiones.

La programación lógica es un paradigma declarativo que se basa en la lógica formal. Los programas consisten en un conjunto de hechos y reglas, y las soluciones a los problemas se obtienen mediante un proceso de inferencia lógica.

Definición:

Hechos y Reglas: Los programas se componen de hechos que definen verdades y reglas que describen cómo se relacionan esos hechos.Inferencia y Unificación: El motor de inferencia deduce nuevas verdades a partir de los hechos y reglas mediante unificación, que compara y relaciona términos.Backtracking (retroceso): Si no se encuentra una solución en un camino, el sistema retrocede para probar otras posibles rutas de solución.Basada en Consultas: Los usuarios formulan consultas sobre los datos, y el sistema intenta verificar su verdad usando las reglas y hechos.Ausencia de Estado y Control de Flujo: No hay control explícito de flujo (como bucles o condicionales), ya que el motor lógico se encarga de buscar la solución.

Programación Logica.

Características:

Declarativa: En lugar de especificar cómo se realiza una tarea, el programador declara relaciones y el motor lógico las utiliza para resolver consultas.

  • C: Un lenguaje clásico y de bajo nivel, conocido por su eficiencia en la programación procedural.
  • Pascal: Diseñado para la enseñanza de la programación estructurada y procedural.
  • Fortran: Uno de los primeros lenguajes de programación, muy utilizado en cálculos científicos y numéricos.
  • BASIC: Un lenguaje procedural sencillo diseñado para ser fácil de aprender.
  • Ada: Un lenguaje estructurado utilizado en sistemas críticos, como los aeroespaciales.

Lenguajes Utilizados:

Programación Procedural.

La programación procedural es un paradigma de programación que se basa en la división del programa en procedimientos o funciones. Cada procedimiento contiene una serie de pasos secuenciales que resuelven un problema específico. Este enfoque sigue un flujo lógico y controlado de ejecución, donde los procedimientos interactúan para lograr el objetivo del programa.

Programacion Procedural.

Descomposición en Procedimientos: Se divide el código en módulos o subrutinas reutilizables (funciones o procedimientos), lo que facilita la organización y mantenimiento.Uso de Variables Globales y Locales: Las funciones pueden acceder a variables globales o definir variables locales, con un flujo controlado del uso de datos.Estructuras de Control:Utiliza bucles (como for, while), condicionales (if-else) y otras estructuras de control para manejar el flujo del programa.Enfoque Imperativo: Al igual que el paradigma imperativo, describe cómo se debe realizar una tarea, especificando los pasos detallados para obtener un resultado.Reutilización de Código: Los procedimientos o funciones se pueden invocar varias veces en diferentes partes del programa, promoviendo la reutilización y reducción de código duplicado.

Definición:

Características:

Secuencial: El programa sigue un orden específico de ejecución, de principio a fin, con instrucciones que se ejecutan en secuencia.

  • Haskell: Lenguaje puramente funcional, conocido por su evaluación perezosa y su uso académico.
  • Lisp: Aunque no es puramente funcional, es uno de los primeros lenguajes en apoyar este paradigma.
  • Erlang: Enfocado en la concurrencia, utiliza programación funcional para manejar sistemas distribuidos.
  • F#: Combina programación funcional y orientada a objetos, utilizado en la plataforma .NET.
  • Scala: Soporta programación funcional y orientada a objetos, utilizado en entornos empresariales.

Lenguajes Utilizados:

Programación Funcional.

  • Java: Uno de los lenguajes más populares para la POO, ampliamente utilizado en aplicaciones empresariales, móviles y sistemas distribuidos.
  • C++: Un lenguaje que extiende C con POO, utilizado en sistemas de alto rendimiento y videojuegos.
  • Python: Soporta POO y es conocido por su simplicidad y versatilidad en múltiples dominios.
  • Ruby: Un lenguaje orientado a objetos, usado comúnmente para desarrollo web (ej. Ruby on Rails).
  • C#: Un lenguaje orientado a objetos usado en la plataforma .NET, ideal para aplicaciones Windows y desarrollo web.

Lenguajes Utilizados:

Programación Orientada a Objetos (POO).

  • Prolog: El lenguaje más representativo de la programación lógica, ampliamente utilizado en inteligencia artificial y procesamiento de lenguaje natural.
  • Datalog: Una variante simplificada de Prolog, usada principalmente en bases de datos y análisis de datos.
  • Answer Set Programming (ASP): Un lenguaje que se utiliza para problemas de optimización y planificación, basado en la lógica de conjuntos de respuesta.nt ut.

Lenguajes Utilizados:

Programación Lógica.