Paradigmas de Programacin - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Paradigmas de Programacin

Description:

Un lenguaje de programaci n es un lenguaje artificial que puede ser usado para ... es el LISP y existen otros lenguajes similares m s modernos como GOFER y HASKELL. ... – PowerPoint PPT presentation

Number of Views:2156
Avg rating:3.0/5.0
Slides: 27
Provided by: claudi98
Category:

less

Transcript and Presenter's Notes

Title: Paradigmas de Programacin


1
Paradigmas de Programación
  • UNIVERSIDAD NACIONAL DE ASUNCIÓNFACULTAD
    POLITÉNICA
  • LICENCIATURA EN CIENCIAS INFORMÁTICASSECCIÓN
    C TURNO TARDE Lic. Claudio N. Barúa A.

2
Lenguajes de programación
  • Un lenguaje de programación es un lenguaje
    artificial que puede ser usado para controlar el
    comportamiento de una máquina, especialmente una
    computadora. Estos se componen de un conjunto de
    reglas sintácticas y semánticas que permiten
    expresar instrucciones que luego serán
    interpretadas.El programador es el encargado de
    utilizar un lenguaje de programación para crear
    un conjunto de instrucciones que, al final,
    constituirá un programa informático.
  • Un lenguaje de programación puede soportar
    distintos paradigmas de programación con el
    objetivo de que un programador utilice el más
    conveniente a la hora de resolver un problema.

3
Qué es un paradigma?
  • Modelo, ejemplo o patrón en cualquier disciplina
    científica u otro contexto epistemológico.
  • Según el historiador Thomas Kuhn es un conjunto
    de teorías, estándares y métodos que juntos
    representan una forma de organizar el
    conocimiento, es una forma de ver el mundo.
  • Un paradigma es un conjunto de reglas que "rigen"
    una determinada disciplina. Estas "reglas" se
    asumen normalmente como "verdades
    incuestionables", porque son "tan evidentes" que
    se tornan transparentes para los que están
    inmersos en ellas.

4
Paradigmas de Programación
  • Un paradigma de programación provee (y determina)
    la visión y métodos de un programador en la
    construcción de un programa o subprograma.
  • Diferentes paradigmas resultan en diferentes
    estilos de programación y en diferentes formas de
    pensar la solución de problemas (una aplicación
    se construye con la solución de múltiples
    problemas).
  • Los lenguajes de programación son basados en uno
    o más paradigmas Smalltalk es un lenguaje
    completamente basado en el paradigma orientado a
    objetos. Haskell, programación funcional. Visual
    Basic, programación imperativa. Prolog, paradigma
    lógico. Python, soporta múltiples paradigmas
    (orientado a objetos, imperativo, funcional). 

5
Clasificación de los lenguajes por paradigmas de
programación más relevantes(a los paradigmas se
los puede clasificar de diversas maneras según
los criterios que se prioricen)
6
Paradigma Imperativo
  • Describe la programación como una secuencia
    instrucciones o comandos que cambian el estado de
    un programa. El código máquina en general está
    basado en el paradigma imperativo.
  • La programación en el paradigma imperativo
    consiste en determinar qué datos son requeridos
    para el cálculo, asociar a esos datos unas
    direcciones de memoria, y efectuar paso a paso
    una secuencia de transformaciones en los datos
    almacenados, de forma que el estado final
    represente el resultado correcto.

7
Paradigma Imperativo
  • En su forma pura este paradigma sólo soporta
    sentencias simples que modifican la memoria y
    efectúan bifurcaciones condicionales e
    incondicionales. Incluso cuando se añade una
    forma simple de abstracción procedimental, el
    modelo permanece básicamente sin cambiar.
  • Los parámetros de los procedimientos son "alias"
    de las zonas de memoria, por lo que pueden
    alterar su valor, y no retorna ningún tipo de
    cálculo. La memoria también se puede actualizar
    directamente mediante referencias globales.

8
Características fundamentales
  • Concepto de celda de memoria ("variable") para
    almacenar valores. El componente principal de la
    arquitectura es la memoria, compuesto por un gran
    número de celdas donde se almacenan los datos.
    Las celdas tienen nombre (concepto de variable)
    que las referencian, y sobre los que se producen
    efectos de lado y definiciones de alias.
  • Operaciones de asignación. Estrechamente ligado a
    la arquitectura de la memoria, se encuentra la
    idea de que cada valor calculado debe ser
    "almacenado", es decir asignado a una celda. Esta
    es la razón de la importancia de la sentencia de
    asignación en el paradigma imperativo.
  • Repetición. Un programa imperativo, normalmente
    realiza su tarea ejecutando repetidamente una
    secuencia de pasos elementales, ya que en este
    modelo computacional la única forma de ejecutar
    algo complejo es repitiendo una secuencia de
    instrucciones.

9
Paradigma Imperativo
  • Historia
  • Los primeros programas fueron escritos en código
    de máquina.
  • Los primeros en surgir fueron los denominados de
    bajo nivel (assembler)
  • Los primeros de alto nivel fueron Fortran y
    Cobol.
  • Posteriormente aparecen lenguajes como Pascal,
    Algol-68.
  • La aparición de Lenguaje C, luego de lenguajes
    que no llegaron a distribuirse en forma comercial
    como A y B, marco un hito importante en los
    lenguajes imperativos.
  • La programación imperativa fue sin duda la
    dominante hasta mediados de los 90.
  • Lenguajes
  • PASCAL, C, FORTRAN, ALGOL, COBOL, ADA, CLIPPER,
    FOX, PL/1, etc.

10
Paradigma Estructurado
  • La programación se divide en bloques
    (procedimientos y funciones) que pueden o no
    comunicarse entre sí. Además la programación se
    controla con secuencia, selección e iteración.
    Permite reutilizar código programado y otorga una
    mejor compresión de la programación.

11
Programación Estructurada
  • Fue la primera manera universalmente aceptada de
    organizar un programa que cumpliera los
    siguientes objetivos
  • Deber ser fácil de leer y de comprender leyendo
    el propio código
  • Debe ser fácil de depurar
  • Debe ser fácil de mantener
  • Permitir el trabajo en equipo sobre un mismo
    programa.

12
Paradigma Orientado a Objetos
  • Está basado en la idea de encapsular estado y
    comportamiento en objetos.
  • Considera al mundo como un conjunto de entidades
    u objetos que se comunican entre sí a través de
    mensajes.
  • Objetos y clases son los conceptos fundamentales.
  • Se puede incluir -aunque no formalmente- dentro
    de este paradigma, los lenguajes basado en
    objetos, que además posee herencia y subtipos
    entre objetos.
  • Su principal ventaja es la reutilización de
    códigos y su facilidad para pensar soluciones a
    determinados problemas (un programa es un mundo
    que representa un subconjunto del mundo real).

13
Paradigma Orientado a Objetos
  • Historia.
  • Surge en base al paradigma imperativo, provocando
    un giro importante en sus principios y
    consideraciones básicas.
  • Smaltalk es considerado el primero de los
    lenguajes orientados a objetos. Este no lleno a
    ser un lenguaje popular debido a la poca
    aceptación de lenguajes interpretados en los años
    80.
  • En 1995 se lanzó Java.
  • Lenguajes
  • El lenguaje originario y paradigmático de la
    programación en objetos es SMALLTALK. Actualmente
    existen otros lenguajes más conocidos, como JAVA
    y C.
  • C, DELPHI, EIFFEL, VISUAL BASIC son extensiones
    de otros lenguajes que fueron diseñados
    básicamente como imperativos, pero que tienen
    extensiones que incorporan, en mayor o menor
    medida, los principios del paradigma de objetos.

14
Paradigma Declarativo
  • No se basa en el cómo se hace algo (cómo se logra
    un objetivo paso a paso), sino que describe o
    "declara" un conjunto de condiciones,
    proposiciones, afirmaciones, restricciones,
    ecuaciones o transformaciones que describen el
    problema y detallan su solución.
  • Se enfoca en describir las propiedades de la
    solución buscada, dejando indeterminado el
    algoritmo usado para encontrar esa solución.
  • Es más complicado de implementar que el paradigma
    imperativo, tiene desventajas en la eficiencia,
    pero ventajas en la solución de determinados
    problemas.
  • Dentro de este paradigma están el lógico y el
    funcional

15
Paradigma Declarativo
  • Buscan la solución del problema, sin preocuparse
    por la forma de llegar a ello, es decir, el
    programador deberá de concentrarse en la lógica
    del algoritmo, más que en el control de la
    secuencia.
  • Los programas están formados por un conjunto de
    definiciones o ecuaciones, las cuales describen
    lo que debe ser calculado, no en sí la forma de
    hacerlo.
  • Las variables sólo pueden tener asignado un solo
    valor a lo largo de la ejecución del programa, lo
    cual implica que no puede existir asignación
    destructiva. Debido a esto, cobra especial
    importancia el uso del anidamiento y la
    recursividad.

16
Paradigma Declarativo
  • Las listas representan la estructura fundamental
    de datos.
  • El orden de ejecución no resulta importante,
    debido a que no existen efectos colaterales, es
    decir que al calcular un valor, resulta imposible
    afectar el cálculo de otros y con esto se puede
    afirmar, que cualquier secuencia de ejecución
    deberá de conducir al mismo resultado.
  • Las expresiones o definiciones, pueden ser usadas
    como valores y por lo tanto se pueden tratar como
    argumentos de otras definiciones.
  • El control de la ejecución, no es responsabilidad
    del programador.

17
Paradigma Funcional
  • Este paradigma concibe a la computación como la
    evaluación de funciones matemáticas y evita
    declarar y cambiar datos.
  • La programación funcional incorpora el concepto
    de función como objeto de primera clase, lo que
    significa que las funciones se pueden tratar como
    datos (pueden pasar como parámetros, calculadas y
    devueltas como valores normales, y mezcladas en
    el cálculo con otras formas de datos).

18
Paradigma Funcional
  • El paradigma funcional está basado en el modelo
    matemático de composición funcional. Es decir, el
    resultado de un cálculo es la entrada del
    siguiente, y así sucesivamente hasta que una
    composición produce el valor deseado.
  • No existe el concepto de celda de memoria que es
    asignada o modificada. Más bien, existen valores
    intermedios que son el resultado de cálculos
    anteriores y las entradas a cálculos
    subsiguientes. Tampoco existen sentencias
    imperativas y todas las funciones tienen
    transparencia referencial.

19
Paradigma Funcional
  • Historia.
  • Surge como propuesta de un modelo de computación
    diferente al modelo imperativo tradicional.
  • Su objetivo describir los problemas mediante
    funciones matemáticas puras.
  • La programación funcional ha tenido éxito a la
    hora de remplazar a los lenguajes convencionales
    en ciertas áreas de aplicación, pero no ha
    logrado ubicarse masivamente en aplicaciones de
    uso general.
  • Lenguajes.
  • El lenguaje más típico del paradigma funcional es
    el LISP y existen otros lenguajes similares más
    modernos como GOFER y HASKELL.

20
Paradigma lógico
  • Se basa en la definición de reglas lógicas para
    luego, a través de un motor de inferencias
    lógicas, responder preguntas planteadas al
    sistema y así resolver los problemas.
  • Los programas construidos un lenguaje lógico
    están construidos únicamente por expresiones
    lógicas, es decir, que son ciertas o falsas, en
    oposición a un expresión interrogativa (una
    pregunta) o expresiones imperativas (una orden).
  • Prolog, utilizado en Inteligencia Artificial

21
Paradigma lógico
  • Historia.
  • La base conceptual de la lógica preposicional es
    desarrollada por Alfred Horn, en los años 50, en
    forma independiente al desarrollo computacional.
  • En la primera mitad de los 70, en base a las
    cláusulas de Horn, surgen las primeras versiones
    de lenguajes lógicos (PROLOG).
  • Lenguajes.
  • El PROLOG es el lenguaje emblemático del
    paradigma. Existen diferentes versiones y
    variantes, pero todas basadas en la misma raíz.

22
Otros paradigmas
  • Existen otras clasificaciones, (de acuerdo a cada
    autor) orientada a eventos, orientada a
    aspectos, basada en restricciones, basada en
    reglas, etc.
  • Para otros autores algunos son sólo subparadigmas.

23
Multiparadigmas
  • Ningún paradigma es capaz de resolver todos los
    problemas de forma sencilla y eficiente, por lo
    tanto es útil poder elegir entre distintos
    estilos de programación dependiendo del tipo de
    problema.
  • Por otra parte, hay lenguajes que permiten
    mezclar distintos paradigmas. Por ejemplo, el
    lenguaje Oz emplea programación lógica, funcional
    y orientada a objeto.

24
Multiparadigmas
  • Otros lenguajes como Delphi, C y Visual Basic
    combinan el paradigma imperativo, el procedural y
    el orientado a objetos.
  • Lenguajes más puros en sus paradigmas como Prolog
    (paradigma lógico) o Scheme (paradigma funcional)
    poseen estructuras iterativas típicas de los
    lenguajes de paradigma imperativos.

25
Temas de Trabajos Prácticos
  • Investigar sobre la Programación imperativa,
    declarativa (lógica, funcional), orientada a
    objetos, orientada a eventos, orientada a
    aspectos, basada en restricciones, basada en
    reglas. Breve historia, características más
    resaltantes. Ventajas y desventajas. Lenguajes de
    programación.
  • Investigar sobre los Lenguajes Scheme, Haskell,
    ML, Lisp, Prolog, Algol, Fortran, RPG, Cobol,
    Pascal, Ada, Visual Basic, VisualFox, Form
    (Report) Oracle, C, C, C, Delphi, Modula-2,
    Java, Javascript, Eiffel, Smalltalk, Perl, PHP,
    Python, Oz. Breve historia, características.
    Ventajas y desventajas. Paradigmas al que
    pertenece.
  • Por lo menos 3 fuentes confiables. Entre 3 y 4
    páginas de contenido (incluido ejemplo de
    código). Agregar portada, bibliografía, etc. Bien
    elaborado. Sin carpeta.

26
Bibliografía
  • http//www.haskell.org/haskellwiki/Haskell_en_5_pa
    sos
  • http//www.uhu.es/18214/temas/pd-tema5.pdf
  • Lenguajes de programación http//www.levenez.com/l
    ang/
  • Prácticas de Lenguaje y paradigmas de
    programación http//rua.ua.es/dspace/handle/10045
    /4051
  • http//www.wikilearning.com/curso_gratis/metodolog
    ias_usadas_en_ingenieria_del_software-paradigma_im
    perativo/3618-4
  • Teoría de los paradigmas. http//wilucha.com.ar/Pa
    radigma/A_Paradigma.html
  • Paradigmas de programación http//www.frt.utn.edu
    .ar/sistemas/paradigmas/index.html
  • Introducción a la programación estructurada en C.
    Martínez, F y Martin Quetglás, G.
  • Conceptos de Lenguajes de Programación. Ghezzi,
    Carlo y Jazayeri, Mehdi.
  • Paradigmas de programación. Héctor Zárate Rea.
    http//www.scribd.com/doc/9174723/Paradigmas-de-Pr
    ogramacion
  • Fundamentos teóricos de los Paradigmas de
    Programación. Ing. Lucas Spigariol.
    http//tadp.no-ip.org/paradigmas/uploads/Fundament
    os20teoricos20de20los20Paradigmas20de20Progr
    amacion.pdf
Write a Comment
User Comments (0)
About PowerShow.com