22
1 Dirección General de Educación Superior Tecnológica INSTITUTO TECNOLÓGICO DE SALINA CRUZ TEMA: PARADIGMAS DE LA PROGRAMACIÓN MATERIA: FUNDAMENTOS DE LA INVESTIGACIÓN NOMBRE DE ALUMNO: NOE SANCHEZ SANTIAGO. SEMESTRE Y GRUPO: 1 E1 CARRERA ING. TECNOLOGIAS DE INFORMACION Y COMUNICACIONES. SALINA CRUZ, OAXACA A 7 DE SEPTIEMBRE DEL 2012 Subsecretaría de Educación Superior

Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

Embed Size (px)

Citation preview

Page 1: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

1

Dirección General de Educación Superior Tecnológica

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

TEMA: PARADIGMAS DE LA PROGRAMACIÓN

MATERIA: FUNDAMENTOS DE LA INVESTIGACIÓN

NOMBRE DE ALUMNO: NOE SANCHEZ SANTIAGO.

SEMESTRE Y GRUPO: 1 E1

CARRERA

ING. TECNOLOGIAS DE INFORMACION Y COMUNICACIONES.

SALINA CRUZ, OAXACA A 7 DE SEPTIEMBRE DEL 2012

Subsecretaría de Educación Superior

Page 2: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

2

INDICE

INTRODUCCIÓN .........................................................................3

PARADIGMAS DE LA PROGRAMACIÓN ......................................4

PROGRAMACIÓN IMPERATIVA…………………………………….…..6

PROGRAMACIÓN FUNCIONAL…………………………………...........7

VENTAJAS DE USAR UN PARADIGMA FUNCIONAL………….........9

LENGUAJES FUNCIONALES……………………………………………….9

PROGRAMACIÓN DECLARATIVA………………………………….....10

PROGRAMACIÓN LÓGICA…………………………………………..….10

CAMPOS DE APLICACIÓN……………………………………………...11

FUNDAMENTOS…………………………………………………………....11

LENGUAJES…………………………………………………………….…..12

PROGRAMACION ORIENTADA A OBJETOS………………………...12

ORIGEN………………………………………………………………………14

CONCEPTOS FUNDAMENTALES………………………………….…….15

CARACTERÍSTICAS DE LA POO (PROGRAMACIÓN ORIENTADA A

OBJETOS)…………………………………………………………………..17

PROGRAMACIÓN DIRIGIDA POR EVENTOS……………………….18

PROGRAMACIÓN MODULAR ………………………………………….20

CONCLUSION……………………………………………………………….21

BIBLIOGRAFIA…………………………………………………………….22

Page 3: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

3

INTRODUCCIÓN

En la siguiente investigación abordaremos el tema de paradigmas de la

programación, que clasifica a los distintos tipos de programación como lo es la

programación lógica, programación imperativa, programación funcional,

programación estructurada, programación declarativa, programación modular,

programación dirigida por evento.

Estos tipos de programación se clasifican de acuerdo al lenguaje y forma en que se

desarrollan, dentro de esta variedad de programación se encuentran algunos de los

programas o también algunos autores lo definen como sub-paradigmas que son

utilizados para el desarrollo de otros programas y algunos de estos son conocidos,

aunque hay otros que no son tan familiares pero de igual manera lo iremos

adaptando para nuestro conocimiento ya que nos es de gran importancia conocer los

tipos de programación para que cuando podamos o queramos desarrollar algún

programa sabremos donde clasificarlo de acuerdo a los conocimientos adquiridos en

esta investigación que mas adelante nos mostrara su contenido, espero que sea de

agrado para cualquier lector y que le proporcione información útil.

Page 4: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

4

PARADIGMA DE PROGRAMACIÓN

Un paradigma de programación es una propuesta tecnológica que es adquirida por

una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a

que unívocamente trata de resolver uno o varios problemas claramente delimitados.

La resolución de estos problemas debe suponer consecuentemente un avance

significativo en al menos un parámetro que afecte a la ingeniería de software. Tiene

una estrecha relación con la formalización de determinados lenguajes en su momento

de definición. Un paradigma de programación está delimitado en el tiempo en cuanto

a aceptación y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones

que la sustituyen parcial o totalmente.

Ejemplo:

Probablemente el paradigma de programación que actualmente es el más usado a

todos los niveles es la orientación a objeto. El núcleo central de este paradigma es la

unión de datos y procesamiento en una entidad llamada "objeto", relacionable a su

vez con otras entidades "objeto".

Tradicionalmente datos y procesamiento se han separado en áreas diferente del

diseño y la implementación de software. Esto provocó que grandes desarrollos

tuvieran problemas de fiabilidad, mantenimiento, adaptación a los cambios y

escalabilidad. Con la orientación a objetos y características como el encapsulado,

polimorfismo o la herencia se permitió un avance significativo en el desarrollo de

software a cualquier escala de producción.

La orientación a objeto parece estar ligado en sus orígenes con lenguajes como Lisp y

Simula aunque el primero que acuño el título de programación orientada a objetos

fue Smalltalk

Page 5: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

5

Tipos de paradigmas de programación

más comunes

Imperativo o por

procedimiento

Funcional Lógico Declarativo Orientado a objetos

C,BASIC, PASCAL

SCHEME, HASKELL

PROLOG

CONVINACION LOGICO -

FUNCIONAL

SMALLTALK

Representado por

Page 6: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

6

PROGRAMACIÓN IMPERATIVA

La programación imperativa, en contraposición a la programación declarativa es un

paradigma de programación que describe la programación en términos del estado del

programa y sentencias que cambian dicho estado. Los programas imperativos son un

conjunto de instrucciones que le indican al computador cómo realizar una tarea.

La implementación de hardware de la mayoría de computadores es imperativa;

prácticamente todo el hardware de los computadores está diseñado para ejecutar

código de máquina, que es nativo al computador, escrito en una forma imperativa.

Esto se debe a que el hardware de los computadores implementa el paradigma de las

Máquinas de Turing. Desde esta perspectiva de bajo nivel, el estilo del programa está

definido por los contenidos de la memoria, y las sentencias son instrucciones en el

lenguaje de máquina nativo del computador (por ejemplo el lenguaje ensamblador).

Los lenguajes imperativos de alto nivel usan variables y sentencias más complejas,

pero aún siguen el mismo paradigma. Las recetas y las listas de revisión de procesos,

a pesar de no ser programas de computadora, son también conceptos familiares

similares en estilo a la programación imperativa; cada paso es una instrucción, y el

mundo físico guarda el estado (Zoom).

Los primeros lenguajes imperativos fueron los lenguajes de máquina de los

computadores originales. En estos lenguajes, las instrucciones fueron muy simples, lo

cual hizo la implementación de hardware fácil, pero obstruyendo la creación de

programas complejos. Fortran, cuyo desarrollo fue iniciado en 1954por John

Backusen IBM, fue el primer gran lenguaje de programación en superar los

obstáculos presentados por el código de máquina en la creación de programas

complejos

ALGUNOS LENGUAJES IMPERATIVOS: BASIC,C,Fortran,Pascal,Perl,PHP.

Page 7: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

7

PROGRAMACIÓN FUNCIONAL

En ciencias de la computación, la programación funcional es un paradigma de

programación declarativa basado en la utilización de funciones aritméticas que no

maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste

con el estilo de programación imperativa, que enfatiza los cambios de estado. La

programación funcional tiene sus raíces en el cálculo lambda, un sistema formal

desarrollado en los 1930 para investigar la definición de función, la aplicación de las

funciones y la recursión. Muchos lenguajes de programación funcionales pueden ser

vistos como elaboraciones del cálculo lambda.

En la práctica, la diferencia entre una función matemática y la noción de una

"función" utilizada en la programación imperativa es que las funciones imperativas

pueden tener efectos secundarios, al cambiar el valor de cálculos realizados

previamente. Por esta razón carecen de transparencia referencial, es decir, la misma

expresión sintáctica puede resultar en valores diferentes en diferentes momentos

dependiendo del estado del programa siendo ejecutado. Con código funcional, en

contraste, el valor generado por una función depende exclusivamente de los

argumentos alimentados a la función. Al eliminar los efectos secundarios se puede

entender y predecir el comportamiento de un programa mucho más fácilmente, y

esta es una de las principales motivaciones para utilizar la programación funcional.

Los lenguajes de programación funcional, especialmente los que son puramente

funcionales, han sido enfatizados en el ambiente académico principalmente y no

tanto en el desarrollo de software comercial. Sin embargo, lenguajes de

programación importantes tales como Scheme, Erlang, Objective Caml 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 (matemáticas simbólicas), J

y K (análisis financiero), F# en Microsoft.NET y XSLT (XML). Lenguajes de uso

específico usados comúnmente como SQL y Lex/Yacc, utilizan algunos elementos de

Page 8: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

8

programación funcional, especialmente al procesar valores mutables. Las hojas de

cálculo también pueden ser consideradas lenguajes de programación funcional.

La programación funcional también puede ser desarrollada en lenguajes que no están

diseñados específicamente para la programación funcional. En el caso de Perl, por

ejemplo, que es un lenguaje de programación imperativo, existe un libro que describe

como aplicar conceptos de programación funcional. JavaScript, uno de los lenguajes

más ampliamente utilizados en la actualidad, también incorpora capacidades de

programación funcional.

En el siguiente esquema podemos observar la clasificación de los lenguajes funcionales.

TIENEN MAYOR CONSERVA SU

PUROS POTENCIA EXPRESIVA TRANSPARENCIA

REFERENCIAL

LENGUAJES

FUNCIONALES

SON MENOS ADMITE CONCEPTOS

HIBRIDOS DOGMATICOS DE LENJUAJES

IMPERATIVOS

Page 9: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

9

VENTAJAS DE USAR UN PARADIGMA FUNCIONAL

Entre las ventajas que suelen citarse de usar un paradigma funcional en la

programación de computadoras, están las siguientes:

Ausencia de efectos colaterales

Proceso de depuración menos problemático

Pruebas de unidades más confiables

Mayor facilidad para la ejecución concurrente

LENGUAJES FUNCIONALES

Entre los lenguajes funcionales puros, cabe destacar a haskell y miranda. los

lenguajes funcionales híbridos más conocidos son scala, Lisp, Scheme, ocaml, sap y

standard ml (estos dos últimos, descendientes del lenguaje ml). Erlang es otro

lenguaje funcional de programación concurrente. Mathematica permite la

programación en múltiples estilos, pero promueve la programación funcional.

También es un lenguaje funcional dedicado a la estadística.2 recientemente Microsoft

research está trabajando en el lenguaje f# (functional#).

entre otros lenguajes que se podrían utilizar para programación funcional se podrían

incluir a Perl, pues, aunque es un lenguaje de propósito muy general, se pueden

realizar programas usando exclusivamente funciones definidas por el usuario; así

como python, como lenguaje que incorpora el paradigma funcional; o ruby.

Page 10: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

10

PROGRAMACIÓN DECLARATIVA

La Programación Declarativa, es un paradigma de programación que 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 (tan

sólo se le indica a la computadora que es lo que se desea obtener o que es lo que se

está buscando).

PROGRAMACIÓN LÓGICA

La programación lógica consiste en la aplicación del corpus de conocimiento sobre

lógica para el diseño de lenguajes de programación; no debe confundirse con la

disciplina de la lógica computacional.

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 basada en restricciones, programas DSL (de dominio específico) e

híbridos. La programación lógica gira en torno al concepto de predicado, o relación

entre elementos. 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.

.

Page 11: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

11

CAMPOS DE APLICACIÓN

La programación lógica encuentra su hábitat natural en aplicaciones de inteligencia

artificial o relacionada: Sistemas expertos, donde un sistema de información imita las

recomendaciones de un experto sobre algún dominio de conocimiento.

Demostración automática de teoremas, donde un programa genera nuevos

teoremas sobre una teoría existente.

Reconocimiento de lenguaje natural, donde un programa es capaz de

comprender (con limitaciones) la información contenida en una expresión

lingüística humana.

Etc.

La programación lógica también se utiliza en aplicaciones más "mundanas" pero de

manera muy limitada, ya que la programación tradicional es más adecuada a tareas

de propósito general.

FUNDAMENTOS

La mayoría de los lenguajes de programación lógica se basan en la teoría lógica de

primer orden, aunque también incorporan algunos comportamientos de orden

superior como la lógica difusa. En este sentido, destacan los lenguajes funcionales,

ya que se basan en el cálculo lambda, que es la única teoría lógica de orden superior

que es demostradamente computable (hasta el momento).

Page 12: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

12

LENGUAJES

El lenguaje de programación lógica por excelencia es Prolog, que cuenta con diversas

variantes. La más importante es la programación lógica con restricciones (véase

artículo sobre programación con restricciones), que posibilita la resolución de

ecuaciones lineales además de la demostración de hipótesis.

PROGRAMACIÓN ORIENTADA A OBJETOS

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un

paradigma de programación que usa los objetos en sus interacciones, para diseñar

aplicaciones y programas informáticos. Está basado 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 los años 1990. En la actualidad, existe

variedad de lenguajes de programación que soportan la orientación a objetos.

Los objetos son entidades que tienen un determinado estado, comportamiento

(método) e identidad:

El estado está compuesto de datos o informaciones, será uno o varios

atributos a los que se habrán asignado unos valores concretos (datos).

El comportamiento está definido por los métodos o mensajes a los que sabe

responder dicho objeto, es decir, qué operaciones se pueden realizar con él.

La identidad es una propiedad de un objeto que lo diferencia del resto, dicho

con otras palabras, es su identificador (concepto análogo al de identificador de

una variable o una constante).

Un objeto contiene toda la información que permite definirlo e identificarlo frente a

otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma

clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos

Page 13: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

13

disponen de mecanismos de interacción llamados métodos, que favorecen la

comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado

en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles,

en las que no se separa el estado y el comportamiento.

Los métodos (comportamiento) y atributos (estado) están estrechamente

relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase

requiere de métodos para poder tratar los atributos con los que cuenta. El

programador debe pensar indistintamente en ambos conceptos, sin separar ni darle

mayor importancia a alguno de ellos. Hacerlo podría producir el hábito erróneo de

crear clases contenedoras de información por un lado y clases con métodos que

manejen a las primeras por el otro. De esta manera se estaría realizando una

programación estructurada camuflada en un lenguaje de programación

orientado a objetos.

La POO difiere de la programación estructurada tradicional, en la que los datos y los

procedimientos están separados y sin relación, ya que lo único que se busca es el

procesamiento de unos datos de entrada para obtener otros de salida. La

programación estructurada anima al programador a pensar sobre todo en términos

de procedimientos o funciones, y en segundo lugar en las estructuras de datos que

esos procedimientos manejan. En la programación estructurada solo se escriben

funciones que procesan datos. Los programadores que emplean POO, en cambio,

primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus

métodos por sí mismos.

Page 14: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

14

Origen

Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un

lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen

Nygaard del Centro de Cómputo Noruego en Oslo. En este centro, se trabajaba en

simulaciones de naves, que fueron confundidas por la explosión combinatoria de

cómo las diversas cualidades de diferentes naves podían afectar unas a las otras. La

idea surgió al agrupar los diversos tipos de naves en diversas clases de objetos,

siendo responsable cada clase de objetos de definir sus propios datos y

comportamientos. Fueron refinados más tarde en Smalltalk, desarrollado en Simula

en Xerox PARC (cuya primera versión fue escrita sobre Basic) pero diseñado para ser

un sistema completamente dinámico en el cual los objetos se podrían crear y

modificar "sobre la marcha" (en tiempo de ejecución) en lugar de tener un sistema

basado en programas estáticos.

La programación orientada a objetos se fue convirtiendo en el estilo de programación

dominante a mediados de los años ochenta, en gran parte debido a la influencia de

C++, una extensión del lenguaje de programación C. Su dominación fue consolidada

gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación

orientada a objetos está particularmente bien adaptada. En este caso, se habla

también de programación dirigida por eventos.

Las características de orientación a objetos fueron agregadas a muchos lenguajes

existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, entre otros. La

adición de estas características a los lenguajes que no fueron diseñados inicialmente

para ellas condujo a menudo a problemas de compatibilidad y en la capacidad de

mantenimiento del código. Los lenguajes orientados a objetos "puros", por su parte,

carecían de las características de las cuales muchos programadores habían venido a

depender. Para saltar este obstáculo, se hicieron muchas tentativas para crear

nuevos lenguajes basados en métodos orientados a objetos, pero permitiendo

algunas características imperativas de maneras "seguras". El Eiffel de Bertrand Meyer

Page 15: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

15

fue un temprano y moderadamente acertado lenguaje con esos objetivos pero ahora

ha sido esencialmente remplazado por Java, en gran parte debido a la aparición de

Internet, y a la implementación de la máquina virtual de Java en la mayoría de

navegadores. PHP en su versión 5 se ha modificado, soporta una orientación

completa a objetos, cumpliendo todas las características propias de la orientación a

objetos.

Conceptos fundamentales

La programación orientada a objetos es una forma de programar que trata de

encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan

y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase: definiciones de las propiedades y comportamiento de un tipo de objeto

concreto. La instanciación es la lectura de estas definiciones y la creación de

un objeto a partir de ellas.

Herencia: (por ejemplo, herencia de la clase C a la clase D) Es la facilidad

mediante la cual la clase D hereda en ella cada uno de los atributos y

operaciones de C, como si esos atributos y operaciones hubiesen sido

definidos por la misma D. Por lo tanto, puede usar los mismos métodos y

variables públicas declaradas en C. Los componentes registrados como

"privados" (prívate) también se heredan, pero como no pertenecen a la clase,

se mantienen escondidos al programador y sólo pueden ser accedidos a través

de otros métodos públicos. Esto es así para mantener hegemónico el ideal de

OOP.

Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y

de comportamiento o funcionalidad (métodos) los mismos que

Page 16: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

16

consecuentemente reaccionan a eventos. Se corresponde con los objetos

reales del mundo que nos rodea, o a objetos internos del sistema (del

programa). Es una instancia a una clase.

Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya

ejecución se desencadena tras la recepción de un "mensaje". Desde el punto

de vista del comportamiento, es lo que el objeto puede hacer. Un método

puede producir un cambio en las propiedades del objeto, o la generación de

un "evento" con un nuevo mensaje para otro objeto del sistema.

Evento: Es un suceso en el sistema (tal como una interacción del usuario con

la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento

enviando el mensaje adecuado al objeto pertinente. También se puede definir

como evento, a la reacción que puede desencadenar un objeto, es decir la

acción que genera.

Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute

uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto

(o a una clase de objetos), que hace los datos visibles desde fuera del objeto y

esto se define como sus características predeterminadas, y cuyo valor puede

ser alterado por la ejecución de algún método.

Estado interno: es una variable que se declara privada, que puede ser

únicamente accedida y alterada por un método del objeto, y que se utiliza

para indicar distintas situaciones posibles para el objeto (o clase de objetos).

No es visible al programador que maneja una instancia de la clase.

Componentes de un objeto: atributos, identidad, relaciones y métodos.

Identificación de un objeto: un objeto se representa por medio de una

tabla o entidad que esté compuesta por sus atributos y funciones

correspondientes.

Page 17: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

17

En comparación con un lenguaje imperativo, una "variable", no es más que un

contenedor interno del atributo del objeto o de un estado interno, así como la

"función" es un procedimiento interno del método del objeto.

CARACTERÍSTICAS DE LA POO (PROGRAMACIÓN ORIENTADA A

OBJETOS)

Existe un acuerdo acerca de qué características contempla la "orientación a objetos",

las siguientes características que podemos observar en la figura son las más

importantes:

FIG.NO.1 CARACTERISTICAS DE LA PROGRAMACION ORIENTADA A OBJETOS

Page 18: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

18

PROGRAMACIÓN DIRIGIDA POR EVENTOS

La programación dirigida por eventos es un paradigma de programación en el que

tanto la estructura como la ejecución de los programas van determinados por los

sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos

provoquen.

Para entender la programación dirigida por eventos, podemos oponerla a lo que no

es: mientras en la programación secuencial (o estructurada) es el programador el que

define cuál va a ser el flujo del programa, en la programación dirigida por eventos

será el propio usuario o lo que sea que esté accionando el programa el que dirija el

flujo del programa. Aunque en la programación secuencial puede haber intervención

de un agente externo al programa, estas intervenciones ocurrirán cuando el

programador lo haya determinado, y no en cualquier momento como puede ser en el

caso de la programación dirigida por eventos.

El creador de un programa dirigido por eventos debe definir los eventos que

manejarán su programa y las acciones que se realizarán al producirse cada uno de

ellos, lo que se conoce como el administrador de evento. Los eventos soportados

estarán determinados por el lenguaje de programación utilizado, por el sistema

operativo e incluso por eventos creados por el mismo programador.

En la programación dirigida por eventos, al comenzar la ejecución del programa se

llevarán a cabo las inicializaciones y demás código inicial y a continuación el

programa quedará bloqueado hasta que se produzca algún evento. Cuando alguno de

los eventos esperados por el programa tenga lugar, el programa pasará a ejecutar el

código del correspondiente administrador de evento. Por ejemplo, si el evento

consiste en que el usuario ha hecho click en el botón de play de un reproductor de

películas, se ejecutará el código del administrador de evento, que será el que haga

que la película se muestre por pantalla.

Un ejemplo claro lo tenemos en los sistemas de programación Léxico y Visual Basic,

en los que a cada elemento del programa (objetos, controles, etcétera) se le asignan

Page 19: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

19

una serie de eventos que generará dicho elemento, como la pulsación de un botón

del ratón sobre él o el redibujado del control.

La programación dirigida por eventos es la base de lo que llamamos interfaz de

usuario, aunque puede emplearse para desarrollar interfaces entre componentes de

Software como módulos del núcleo también.

En los primeros tiempos de la computación, los programas eran secuenciales,

también llamados Batch. Un programa secuencial arranca, lee parámetros de

entrada, procesa estos parámetros, y produce un resultado, todo de manera lineal y

sin intervención del usuario mientras se ejecuta.

Con la aparición y popularización de los pc, el software empezó a ser demandado

para usos alejados de los clásicos académicos y empresariales para los cuales era

necesitado hasta entonces, y quedó patente que el paradigma clásico de

programación no podía responder a las nuevas necesidades de interacción con el

usuario que surgieron a raíz de este hecho.

PROGRAMACIÓN MODULAR

La programación modular es un paradigma de programación que consiste en dividir

un programa en módulos o subprogramas con el fin de hacerlo más legible y

manejable.

Se presenta históricamente como una evolución de la programación estructurada

para solucionar problemas de programación más grandes y complejos de lo que ésta

puede resolver.

Al aplicar la programación modular, un problema complejo debe ser dividido en

varios sub-problemas más simples, y estos a su vez en otros subproblemas más

simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples

como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta

técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente

Page 20: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

20

(Top-Down).

Un módulo es cada una de las partes de un programa que resuelve uno de los

subproblemas en que se divide el problema complejo original. Cada uno de estos

módulos tiene una tarea bien definida y algunos necesitan de otros para poder

operar. En caso de que un módulo necesite de otro, puede comunicarse con éste

mediante una interfaz de comunicación que también debe estar bien definida.

Si bien un modulo puede entenderse como una parte de un programa en cualquiera

de sus formas y variados contextos, en la práctica es común representarlos con

procedimientos y funciones. Adicionalmente, también pueden considerarse módulos

las librerías que pueden incluirse en un programa o, en programación orientada a

objetos, la implementación de un tipo de dato abstracto.

Page 21: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

21

CONCLUSION

Los paradigmas de la programación es un tema con mucha información no solo en la

red sino en libros y otras fuentes donde podemos adquirir conocimiento útil en

nuestra preparación.

Dentro de los paradigmas de la programación se encuentra la programación

imperativa que nos dice que en esta los programas te indican los procesos paso por

paso o te habla de como operarlos ejemplos de este tipo es c, pascal, Basic.

La programación funcional como su nombre lo dice son programas que tratan de

resolver funciones matemática y un ejemplo de este tipo de programación es la hoja

de calculo o Excel.

La Programación Declarativa, se apoya en el desarrollo de programas especificando

o "declarando" un conjunto de condiciones, afirmaciones, restricciones.

Luego la programación orientada a objetos nos habla que hace uso de objetos u

cosas ya sea para diseñar o hacer algún programa.

Bueno hay otros tipos de programación como la estructurada que es una forma de

escribir programas de ordenadores también esta la programación modular que divide

al programa en módulos en fin es algo amplia la temática de paradigmas.

En fin cada uno de estos paradigmas tiene sus características particulares que los

diferencia de otros aun que hay programas que hacen uso de dos o más paradigmas

aunque el resultado no es el mismo.

Page 22: Dirección General de Educación Superior Tecnológica ... · PDF fileLos lenguajes imperativos de alto nivel usan variables y sentencias más complejas, ... En estos lenguajes, las

22

BIBLIOGRAFÍA

Las siguientes referencias bibliográficas corresponden a literatura en inglés:

Foundations of Logic Programming, J.W. Lloyd, Springer-Verlag, 1991.

Essentials of Logic Programming, C. Hogger, Clarendon Press, Oxford,

1990.

Logic for Computer Science: Foundations of Automatic Theorem

Proving, J.H. Gallier, John Wiley and Sons, 1987.

REFERENCIAS

1. ↑http://ademirar.wordpress.com/2010/08/28/programacion-funcional-para-el-resto-

de-nosotros/

2. ↑Barrapunto | Programación funcional para el resto de nosotros

: