1. 1
DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA
INSTITUTO TECNOLÓGICO DE SALINA CRUZ
MATERIA
FUNDAMENTOS DE PROGRAMACIÓN
TEMA
PARADIGMAS DE LA PROGRAMACION
PROFESORA
SUSANA MÓNICA ROMÁN NÁJERA
ALUMNO
FERNANDO RODRIGUEZ TORRES
CARRERA
INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y DE LAS
COMUNICACIONES
SEMESTRE I
GRUPO E2
2. 2
INDICE
INTRODUCCION…………………………………………………….3
PARADIGMA DE PROGRAMACION……………………………...4
CLASIFICACIÓN DE PARADIGMAS……………………………...4
LENGUAJE DE PROGRAMACION………………………………..5
TIPOS DE LENGUAJES DE PROGRAMACION………………....6
LENGUAJE DE BAJO NIVEL………………………………………6
LENGUAJE DE ALTO NIVEL ……………………………………...6
LENGUAJE DE MEDIO NIVEL…………………………………….7
GENERACIONES……………………………………………………7
CRONOLOGIA……………………………………………………….8, 9
CONCLUSIÓN………………………………………………………..9
FUENTES CONSULTADAS……………………………..………....10
3. 3
INTRODUCCIÓN
Los paradigma de programación son la forma que determinan los métodos de un
programador en la elaboració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.
Los lenguajes de programación son basados en uno o más paradigmas Por ejemplo:
Smalltalk y Java son lenguajes basados en el paradigma orientado a objetos. El
Lenguaje de programación Scheme, en cambio, soporta sólo programación funcional.
En cambio Python, soporta múltiples paradigmas. La programación Orientada a
objetos (POO) es una forma especial de programar, más cercana a como
expresaríamos las cosas en la vida real que otros tipos de programación.
4. 4
PARADIGMA DE PROGRACION
Un paradigma de programación determina la visión y métodos de un
programador en la elaboració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 (con la solución de múltiples “problemas” se
construye una aplicación).
Los lenguajes de programación son basados en uno o más paradigmas Por ejemplo:
Smalltalk y Java son lenguajes basados en el paradigma orientado a objetos. El
lenguaje de programación Scheme, en cambio, soporta sólo programación funcional.
En cambio Python, soporta múltiples paradigmas. La programación Orientada a
objetos (POO) es una forma especial de programar, más cercana a como
expresaríamos las cosas en la vida real que otros tipos de programación.
CLASIFICACIÓN POR PARADIGMAS DE PROGRAMACIÓN
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. Su contrario es el paradigma declarativo.
En este paradigma se incluye el paradigma procedimental (procedural) entre otros.
Paradigma Declarativo: No se basa en el cómo se hace algo (cómo se logra un
objetivo paso a paso), sino que describe (declara) cómo es algo. En otras palabras,
se enfoca en describir las propiedades de la solución buscada, dejando
indeterminado el algoritmo (conjunto de instrucciones) 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.
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. Es contrario al paradigma
inestructurado, de poco uso, que no tiene ninguna estructura, es simplemente un
“bloque”, como por ejemplo, los archivos batch (.bat).
Paradigma Orientado a Objetos: está basado en la idea de encapsular estado y
operaciones en objetos. En general, la programación se resuelve comunicando
dichos objetos a través de mensajes (programación orientada a mensajes). Se puede
incluir -aunque no formalmente- dentro de este paradigma, el paradigma basado en
5. 5
objetos, que además posee herencia y subtipos entre objetos. Ej.: Simula, Smalltalk,
C++, Java, Visual Basic .NET, etc.
Paradigma Funcional: este paradigma concibe a la computación como la evaluación
de funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace
hincapié en la aplicación de las funciones y composición entre ellas, más que en los
cambios de estados y la ejecución secuencial de comandos (como lo hace el
paradigma procedimental). Permite resolver ciertos problemas de forma elegante y
los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro
tipo de programaciones.
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. Ej.: prolog.
Otros paradigmas y subparadigmas son: paradigma orientado al sujeto, paradigma
reflectante, programación basada en reglas, paradigma basado en restricciones,
programación basada en prototipos, etc.
LENGUAJE DE PROGRAMACIÓN
·
¿Qué es el lenguaje de programación?
Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de
acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de
programación es un modo práctico para que los seres humanos puedan dar
instrucciones a un equipo.
Por otro lado, el término "lenguaje natural" define un medio de comunicación
compartido por un grupo de personas (por ejemplo: inglés o francés).
Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que
ver con los lenguajes de programación; se los conoce como protocolos de
comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de
programación es muy estricto:
A cada instrucción le corresponde una acción de procesador.
El lenguaje utilizado por el procesador se denomina lenguaje máquina.
El lenguaje de programación tiene varias ventajas:
Es mucho más fácil de comprender que un lenguaje máquina:
6. 6
·
Permite mayor portabilidad, es decir que puede adaptarse fácilmente para
ejecutarse en diferentes tipos de equipos.
TIPOS DE LENGUAJE DE PROGRAMACIÓN
El ordenador sólo entiende un lenguaje conocido como código binario o código
máquina, consistente en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar
cualquier acción.
Los lenguajes más próximos a la arquitectura hardware se denominan lenguajes de
bajo nivel y los que se encuentran más cercanos a los programadores y usuarios se
denominan lenguajes de alto nivel.
·
·
LENGUAJES DE BAJO NIVEL
Son lenguajes totalmente dependientes de la máquina, es decir que el programa que
se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras
máquinas.
Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las
características del mismo.
Dentro de este grupo se encuentran:
El lenguaje maquina: este lenguaje ordena a la máquina las operaciones
fundamentales para su funcionamiento. Consiste en la combinación de 0's y 1's para
formar las ordenes entendibles por el hardware de la máquina. Este lenguaje es
mucho más rápido que los lenguajes de alto nivel. La desventaja es que son
bastantes difíciles de manejar y usar, además de tener códigos fuente enormes
donde encontrar un fallo es casi imposible.
El lenguaje ensamblador es un derivado del lenguaje máquina y está formado por
abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este
lenguaje se crearon los programas traductores para poder pasar los programas
escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al
código máquina es que los códigos fuentes eran más cortos y los programas creados
ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo
7. 7
prácticamente las mismas que las del lenguaje ensamblador, añadiendo la dificultad
de tener que aprender un nuevo lenguaje difícil de probar y mantener.
LENGUAJES DE ALTO NIVEL
Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje
máquina.
Están dirigidos a solucionar problemas mediante el uso de EDD's.
Nota: EDD's son las abreviaturas de Estructuras Dinámicas de Datos, algo muy
utilizado en todos los lenguajes de programación. Son estructuras que pueden
cambiar de tamaño durante la ejecución del programa. Nos permiten crear
estructuras de datos que se adapten a las necesidades reales de un programa.
Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que,
en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de
una máquina a otra sin ningún tipo de problema.
Estos lenguajes permiten al programador olvidarse por completo del funcionamiento
interno de la maquina/s para la que están diseñando el programa. Tan solo necesitan
un traductor que entiendan el código fuente como las características de la máquina.
Suelen usar tipos de datos para la programación y hay lenguajes de propósito
general (cualquier tipo de aplicación) y de propósito específico (como FORTRAN
para trabajos científicos).
LENGUAJES DE MEDIO NIVEL
Se trata de un término no aceptado por todos, pero que seguramente habrás oído.
Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de
estos lenguajes podría situarse C ya que puede acceder a los registros del sistema,
trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo
nivel y a la vez realizar operaciones de alto nivel.
·
·
·
·
GENERACIONES
La evolución de los lenguajes de programación se puede dividir en 5 etapas o
generaciones.
Primera generación: lenguaje máquina.
Segunda generación: se crearon los primeros lenguajes ensambladores.
Tercera generación: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal,
Cobol…
Cuarta generación. Son los lenguajes capaces de generar código por si solos, son
los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto
en el lenguaje. Aquí también se encuentran los lenguajes orientados a objetos,
8. 8
·
haciendo posible la reutilización d partes del código para otros programas. Ej. Visual,
Natural Adabes…
Quinta generación: aquí se encuentran los lenguajes orientados a la inteligencia
artificial. Estos lenguajes todavía están poco desarrollados. Ej. LISP
CRONOLOGIA
FECHA
LENGUAJE
ACONTECIMIENTO
1953
FORTRAN
Job Backus propone el desarrollo de un nuevo lenguaje
1954
FORTRAN
Un equipo de IBM comienza a trabajar en el FORTRAN
1957
FORTRAN
IBM desarrolla la primera versión
1959
LISP
El profesor John McCarthy y sus alumnos desarrolla el LISP
1960
ALGOL
Se reúnen representantes europeos y de EEUU para la creación de
un nuevo lenguaje
1960
COBOL
Fue creado COBOL
1962
APL
Se publica el libro de Kenneth Iverson “A Programming Language
Mediado de
los 60
APL
El APL es implantado por IBM en una versión conocida como
APL/360
1965
BASIC
Aparece BASIC
1966
FORTRAN
Aparece el FORTRA IV
1968
ALGOL
Se implemento una nueva versión multi-proposito
Finales de los
60
APL
Está disponible para el mercado en general
9. 9
1970
PASCAL
Niklaus Wirth diseña PASCAL
1972
PROLOG
Se desarrolla en la Universidad de Aix-Marsailles en Francia.
1972
C
Dennis Ritchie crea el lenguaje C.
1977
FORTRAN
Aparece el FORTRAN 77
Finales de los
70
MODULA-2
Niklaus Wirth dirige el desarrollo de MODULA-2
Principio de
los 80
C++
Se desarrolla el lenguaje C++
1985
CLIPPER
Se crea CLIPPER
1986
CLIPPER
Aparece CLIPPER AUTUMN'86
1987
CLIPPER
CLIPPER SUMMER'87
1990
FORTRAN
Aparece el FORTRAN 90
Principios 90
JAVA
James Gosling y su equipo comienzan a desarrollar JAVA
1993
Visual C++
Se desarrolla el lenguaje Visual C++
1994
DELPHI
Aparece la primera versión
1995
JAVA
Se lanza al mercado JAVA
1999
DELPHI
Aparece Delphi 5.0 para windows 98 NT/2000
CONCLUSION
En conclusión podemos decir que los paradigmas en la programación se pueden
definir como la forma de pensar de cada individuo ya que seria muy difícil encontrar a
una persona con el mismo paradigma que nosotros ya que esa persona podría tener
otra forma de ver la resolución del problema ya que es un modelo o patrón en
cualquier disciplina científica.
10. 10
Un paradigma de programación representa un enfoque particular o filosofía para la
construcción del software. También hay situaciones donde un paradigma resulta más
apropiado que otro modelo básico de diseño y desarrollo de programas, que permite
producir programas con unas directrices específicas. Para entender cómo funciona el
paradigma de la programación orientada a objetos es necesario ver un programa
como una colección de objetos que interactúan entre sí enviándose mensajes y
cambiando su estado durante la ejecución.
FUENTES CONSULTADAS
http://html.rincondelvago.com/evolucion-historica-de-los-lenguajes-de-programacion.html
http://www.slideshare.net/yamili7/paradigmas-de-programacion
http://es.scribd.com/doc/9174723/Paradigmas-de-Programacion
http://es.wikipedia.org/wiki/Paradigma