0% encontró este documento útil (0 votos)
62 vistas39 páginas

U1 Diapositivas PPR2024

Diapositiva de la unidad 1 de la materia PPR
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
62 vistas39 páginas

U1 Diapositivas PPR2024

Diapositiva de la unidad 1 de la materia PPR
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 39

Introducción a los Lenguajes y

Paradigmas de Programación
Objetivo
 Evidenciar y valorar las características constitutivas de
cada uno de los lenguajes y paradigmas de
programación y asociarlos con los problemas tipos que
son factibles de resolver por cada uno de estos.
¿Qué es un Paradigma?
 Un modelo o ejemplo a seguir por una comunidad
científica, de los problemas que tiene que resolver y del
modo como se van a dar las soluciones.
 Determina una manera especial de entender el mundo,
explicarlo y manipularlo.
¿Qué es un Paradigma de Programación?

• Un enfoque particular o filosofía para la construcción


del software.
• Es un modelo básico de diseño e implementación de
programas, que permite desarrollar software conforme
a ciertos principios o fundamentos específicos que se
aceptan como válidos.
• Son la forma de pensar y entender un problema y su
solución, y por lo tanto, de enfocar la tarea de la
programación.

Programa
 Un programa de computadoras, también llamado
software, es un conjunto de códigos, instrucciones,
declaraciones, proposiciones, etc. que describen,
definen o caracterizan la realización de una acción en
la computadora.
Lenguajes de programación
 Un lenguaje de programación es una técnica estándar
de comunicación que permite expresar las
instrucciones o declaraciones que pueden ser
interpretadas en una computadora
Programación
 La programación es el proceso de diseñar, codificar,
depurar y mantener el código fuente de programas
computacionales. El código fuente es escrito en un
Lenguaje de Programación. El propósito de la
programación es crear programas que exhiban un
comportamiento deseado.
Criterios de una buena programación
 Plantear modelos cercanos a la realidad que
permitan abstraerse de las especificaciones
computacionales y lograr una relación lo más fluida
posible entre el dominio de aplicación y el programa.
 Diseñar implementaciones de manera que puedan ser
extendidas y modificadas con el mínimo impacto en
el resto de su estructura, ante cambios en la realidad o
nuevos requerimientos.
 Dar flexibilidad a las soluciones para que puedan ser
reutilizadas en múltiples contextos, incluso
diferentes a los que les dieron origen.

 Diseñar una articulación funcional adecuada de las


diferentes entidades que conforman el sistema.
 Desarrollar un código claro, simple y compacto.
 Construir soluciones genéricas que permitan
abstraerse de las particularidades propias de cada tipo
de entidad de software y a la vez atender a la
especificidad de cada una de ellas.
 Focalización de las funcionalidades y componentes
del sistema para poder trabajar sobre eficiencia.
Tipos de Paradigmas
Clasificación y Evolución
Histórica
 Los orígenes imperativos.
 La ruptura declarativa.
 El mundo de objetos.
Paradigma Imperativo
 Describe paso a paso un conjunto de instrucciones que
deben ejecutarse para variar el estado del programa y
hallar la solución, es decir, un algoritmo en el que se
describen los pasos necesarios para solucionar el
problema.
Paradigma Estructurado

Algoritmo + Estructura de Datos = programa


Paradigma Estructurado
Ventajas
 Se hace hincapié en la modularización del programa, existen niveles,
puede distribuirse la codificación siguiendo un diseño Top Down. (La
codificación distribuida en módulos va de un nivel general al de máximo
detalle).
 La cantidad de niveles que usamos para modularizar es la adecuada(No
está limitada por los lenguajes).
 Los nombres de los módulos (Procedimientos, funciones), definidos por
el programador, son representativos de lo que el módulo realiza.
 Hay suficiente documentación adjunta al código.
Paradigma Estructurado
Limitaciones
 La complejidad de muchos sistemas actuales hace que
sea complicado definir la distribución del código en
módulos. Este paradigma posibilita modularizar la
codificación, pero no define cual es el criterio a seguir.
(Como si lo hace el paradigma Programación orientada a
Objetos)
 No se adapta a todos los tipos de problemas.
Paradigma Estructurado
Aplicaciones

 Sistemas de bajo nivel


 Sistemas de tiempo real
 Programación de micro controladores
 Máquinas de estado
 Desarrollo de video juegos de consola
 Aplicaciones que deben manejar recursos limitados
Paradigma Orientado a Objetos

Objetos + Mensajes = Programa


Paradigma Orientado a Objetos
Ventajas

 Facilita el mantenimiento del software.


 Permite crear sistemas más complejos.
 Agiliza el desarrollo de software.
 Facilita la creación de programas visuales.
 Facilita el trabajo en equipo.
 Se basa en lenguajes que soportan sintáctica y
semánticamente la unión entre los tipos abstractos de
datos y sus operaciones a través de las clases.
 La programación orientada a objetos incorpora en su
entorno de ejecución mecanismos tales como el
polimorfismo y el envío de mensajes entre objetos.
Paradigma Orientado a Objetos
Desventajas

 Tamaño de las aplicaciones

 Velocidad de ejecución
Paradigma Orientado a Objetos
Aplicaciones

 Ampliamente usado en aplicaciones de negocios y


tecnología Web
 Modelado y simulación
 Bases de datos orientadas a objetos
 Programación en paralelo
 Sistemas grandes que requieren la administración de
estructuras complejas
Paradigma Declarativo
 Está basado en el desarrollo de programas
especificando o "declarando" un conjunto de
condiciones, proposiciones, afirmaciones,
restricciones, ecuaciones o transformaciones que
describen el problema y detallan su solución.
 La solución es obtenida mediante mecanismos
internos de control, sin especificar exactamente cómo
encontrarla.
Paradigma Funcional

Funciones + control = programa


Paradigma Funcional
Ventajas

 Fácil de formular matemáticamente.


 Administración automática de la memoria
 Simplicidad en el código
 Rapidez en la codificación de los programas
Paradigma Funcional
Desventajas

 No es fácilmente escalable
 Difícil de integrar con otras aplicaciones
 No es recomendable para modelar lógica de negocios o
para realizar tareas de índole transaccionales
Paradigma Funcional
Aplicaciones

 Programas de Inteligencia Artificial


 Sistemas distribuidos de control (NCS) tolerante a fallos de
software (por ejemplo, control de tráfico aéreo, mensajería
instantánea, servicios basados en Web)
 Aplicaciones académicas de gran complejidad matemática.
 Telecomunicaciones y telefonía
Paradigma Lógico

Lógica + control = programa


Paradigma Lógico
Ventajas

 Simplicidad
 Cercanía a las especificaciones del problema realizada con
lenguajes formales
 Sencillez, potencia y elegancia
 Sencillez en la implementación de estructuras complejas
Paradigma Lógico
Desventajas

 Poco utilizado en aplicaciones de gestión


Paradigma Lógico
Aplicaciones

 Sistemas expertos
 Sistemas de soporte a decisiones (DSS)
 Definiciones de reglas de negocio (Drools)
 Sistemas de conocimiento y aprendizaje
 Creación de lenguajes de consulta para análisis semántico
 Procesamiento de lenguaje natural
 Robótica
 Compilación de lenguajes funcionales.
 Especificar semántica a lenguajes imperativos.
 Formalismo para definir otras teorías.
Diferencia entre Paradigmas y
Lenguajes de Programación
 El Paradigma de Programación condiciona la forma en
que se expresa la solución a un problema.

 El Lenguaje de Programación (que se encuadra en un
determinado paradigma) es la herramienta que
permite expresar la solución a un problema
¿Cómo elegir un paradigma en base
a un problema?

*Cuando la solución tiende a lo procedimental


(imperativo)
 tenemos secuencia
 decimos cómo resolver un problema
 tenemos mayor control sobre el algoritmo (decidimos
más cosas definimos más cosas)
*Cuando la solución tiende a lo declarativo

 expresamos características del problema


 alguien termina resolviendo el algoritmo para la
máquina (necesitamos de alguna “magia”, algún
mecanismo externo)
 tenemos menor control sobre el algoritmo (pero hay
que pensar en menos cosas)
Declaratividad y expresividad

 Una solución es más expresiva que otra si resuelve un


problema en forma más clara y menos compleja (y por
consiguiente es más fácil de entender).
 Una solución es más declarativa que otra en tanto se tiene
menor grado de información sobre los detalles algorítmicos
de cómo se resuelve y donde la idea de secuencia pierde
relevancia.
Sintaxis, semántica y gramática

 Sintaxis: es el conjunto de reglas que gobiernan la


construcción o formación de sentencias (instrucciones)
válidas en un lenguaje.
 Semántica: es el conjunto de reglas que proporcionan el
significado de una sentencia o instrucción del lenguaje.
 Gramática: es la definición formal de la sintaxis de un
lenguaje de programación se conoce como gramática, en
analogía con la terminología común para los lenguajes
naturales.
Lenguajes híbridos y puros
 Lenguajes puros son los que mantienen las
características propias del paradigma, son estrictos en
su implementación.
 Lenguaje híbrido combina características de varios
paradigmas.

También podría gustarte