You are on page 1of 6

Nuevos paradigmas de la programación

Susana G. Patiño.
Calle Simón Plata Torres, diagonal al Club Union Esmeraldas, Ecuador susanapatinor@yahoo.es

Resumen. Los nuevos paradigmas de programación han permitido mejorar el desarrollo de sistemas informáticos aprovechando la tecnología disponible, dos de los paradigmas mayormente aceptados y determinados como nuevos son: el paradigma de la programación concurrente y el paradigma orientado a aspectos. El paradigma concurrente plantea ejecutar los procesos al mismo tiempo permitiendo que la ejecución se realice de forma rápida. El paradigma orientado a aspectos permite la separación de conceptos transversales dentro de las clases a través de la implementación de los aspectos, logrando habilitar la reutilización de las clases. Palabras clave. Nuevos Paradigma de Programación, Paradigma de Programación Concurrente, Paradigma de Programación Orientada a Aspecto.

1

Introducción.

Actualmente la Informática y las Telecomunicaciones sufren una evolución constante de su tecnología, lo que conlleva a que se apliquen nuevos paradigmas de programación que permitan desarrollar sistemas informáticos que aprovechen la tecnología creciente. Los paradigmas de programación han sufrido una evolución a partir de su inicio. En principio se realizaba la programación con variables globales y bloques de líneas de código continuas, lo que provocaba que el código sea poco legible, difícil de entender y por consiguiente difícil de mantener. Este ambiente provoco que se buscaran métodos para resolver los problemas y que además fueran aceptados por los profesionales de programación de aquellos días, por lo que nacen los paradigmas de programación. En este articulo se presentan dos nuevos paradigmas de programación que están siendo analizados actualmente e implementados en plataformas tecnológicas. El presente artículo se organizo de la siguiente forma: en la sección 2 se detallan los paradigmas de programación actuales, en la sección 3 se especifican los paradigmas concurrentes y orientados a aspectos, cada uno con un ejemplo para su mejor comprensión. Y finalmente las conclusiones.

se plantea mediante la ejecución secuencial de instrucciones que opera sobre valores almacenados en memoria. la concurrencia es la realización de varios sucesos al mismo tiempo. es el paradigma más aceptado actualmente. Lisp. Se basa en procedimientos. Es un paradigma que usa clases. que en algunos casos se los considera mejoras de los anteriores y en otros casos combinación de ellos. está constituido por una colección de objetos que se interrelacionan. cuyo objetivo primordial es la construcción y verificación de programas formados por múltiples actividades que se ejecutan concurrentemente para llevar a cabo una cierta tarea. Debido a que cada paradigma responde a una necesidad real de afrontar nuevos problemas. y dependiendo de la relación que existe entre los sucesos se pueden clasificar en: paralelismo.2 Paradigmas de programación Un paradigma de programación son métodos o técnicas de programación que han sido aceptadas por una comunidad de desarrolladores o profesionales. operaciones. han surgido nuevos paradigmas. Lenguajes de programación que tienen este paradigma son Scheme. Pero dentro de la programación.1 Nuevos paradigmas de programación El paradigma de la programación concurrente Con la evolución de las tecnologías han aparecido nuevos paradigmas de programación que plantean mejoras en la construcción de sistemas informáticos. En cualquiera de los tres casos es necesario un método eficiente que permita la coordinación de los procesos. Uno de los nuevos paradigmas propone ejecutar concurrentemente ciertas tareas. [1] Este paradigma se puede implementar tanto en un computador con un procesador. Algunos lenguajes que utilizan este paradigma son Pascal. El paradigma lógico. es tradicionalmente el paradigma de la programación estructurada. El paradigma que plantea este método es el Paradigma de la programación concurrente. se basa en reglas lógicas que a través de un motor de inferencias lógicas responde a preguntas y pretende resolver problemas. . a lo largo de la historia de la informática han surgido paradigmas que han mejorado a su antecesor y han logrado revolucionar el desarrollo de los sistemas informáticos. Cobol. etc. El paradigma funcional. Una clase es una descripción de un conjunto de objetos que comparten los mismos atributos. relaciones y semántica. 3 3. con varios procesadores o un conjunto de computadoras distribuidas en una red. concibe a la computación como la evaluación de funciones matemáticas y evita tanto declarar o cambiar datos. El lenguaje más conocido es el Prolog. El paradigma orientado a objeto. Los paradigmas mas conocidos actualmente son: El paradigma imperativo. El paradigma de la programación concurrente es un conjunto de teorías. métodos y herramientas. Haskell. C. los procesos suceden en un mismo intervalo de tiempo.

n1. process type max(var max. end.n1. en el lenguaje PascalFC que esta orientado a la enseñanza de la concurrencia.n1. [3] .n2). los procesos suceden en intervalos de tiempo sobrepuestos. simultaneidad. Se hace la llamada con el nombre de la variable dentro del bloque cobegin coend. coend. es decir puede recibir parámetros y contener declaraciones de variables locales. begin n1:=3. Este bloque permite que se ejecuten concurrentemente todos los procesos. cobegin pMin(nmin. Termina el bloque cuando todos los procesos hayan finalizado. pMax(nmax.solapamiento.n2:real). pMax:max.n2:real).n2. No importa en que orden se declaren las llamadas. pMin:min. end. var n1. tecnología de componentes y sistemas embebidos. process type min(var min. El ejemplo anterior es una forma sencilla de presentar el paradigma de la programación concurrente.nmin:real. Los dos procesos tanto el min y el max se ejecutaran en cualquier orden es decir concurrentemente. Se lo denomina tipo de proceso y es similar a la declaración de un procedimiento en Pascal.nmax.n2). Un ejemplo sencillo de un programa concurrente [2] es encontrar el máximo y el mínimo.nmin) . actualmente en los servicios web. n2:=5. La programación concurrente esta presente dentro de los sistemas operativos. Dentro del bloque principal se debe declarar variables del tipo de proceso por ejemplo pMax:max. Algoritmo 1. La declaración de un proceso concurrente se realiza por medio de las palabras reservadas process type. end. pero es importante mencionar que ha estado presente en proyectos como en el que se descifró la secuencia completa del genoma humano en el año 2000. los procesos suceden en el mismo instante de tiempo. control y monitoreo de sistemas físicos. begin if n1<n2 then min:=n1 else min:=n2. se ejecutan los procesos de forma concurrente. Ejemplo de un programa concurrente. writeln(nmax.n1. program maxmincon. es decir una variable pMax del tipo de proceso max. begin if n1>n2 then max:=n1 else max:=n2.

3.escribir(). Ejemplo de una metodos de una clase orientado a objeto bajo el lenguaje base Java.2 Paradigma de la programación orientado a aspectos. el método estaría realizando un proceso que no corresponde a la clase Punto. } Se puede resolver a través de la implementación de un Lenguaje orientado a Aspectos. por lo que propone la implementación de aspectos. Registro. quedarían de la siguiente forma: .escribir() . El paradigma orientado a aspecto plantea resolver estos “conceptos transversales”. Registro. Regresando al problema de registro de procesos dentro de la clase Punto. Los LOA por lo general son una extensión del lenguaje base. Se lo ha determinado como una extensión del paradigma orientado a objeto. En este caso. Dentro de la Programación Orientada a Aspectos se determina a la programación OO. Al incluírsele código que no corresponde es probable que no se pueda reutilizar la clase e incluso sea difícil de mantener. Un aspecto es un concepto que no es posible encapsularlo claramente y que esta diseminado por todo el código. Liberamos a los métodos del concepto transversal de registro de acciones Registro. sería necesario colocar dentro del método una sentencia para guardar la acción en el registro como Registro. para que los aspectos puedan ser combinados con la implementación de la funcionalidad del sistema final. Y si una aplicación es difícil de mantener simplemente será costosa. //Clase Punto public void CambiarX(int i) { x = i. Pero al ejecutarse el método es necesario que se lleve un registro de las acciones que se realiza. Como concepto se puede citar como ejemplo si se tiene una clase Punto que posee un método CambiarX el cual actualiza la posición del punto en el sistema.escribir("Cambio posición Punto: "+toString()). Se puede observar codificado en el Algoritmo 2. Algoritmo 2. sin embargo puede ser aplicado al paradigma procedimental y estructural.escribir("Cambio posición Punto: "+toString()). Los métodos de la clase Punto. estructural y procedimental como Lenguajes de Programación Generalizados y los Lenguajes Orientados a Aspecto son aquellos que permiten capturar los elementos que se diseminan por todo el sistema. } public void CambiarY(int i) { y = i. Estos lenguajes orientados a aspectos deben ser compatibles con el lenguaje base. El paradigma orientado a aspecto nace debido a la dificultad que se origina al momento de encapsular una entidad que esta presente en distintas partes del sistema. El paradigma de programación orientado a aspectos permite separar el concepto que se encuentra entrelazado en varias clases.

que lo que hace es armar un código complementando el código base con el código de aspectos. [4] 4 Conclusiones Se ha presentado en el artículo los dos nuevos paradigmas más relevantes actualmente.escribir("Cambio posición Punto:"+p. } public void CambiarY(int i) { y = i. Se realizara después debido a la que se declaro after el tipo de aviso. El paradigma de programación concurrente el cual se plantea para la realización de varios procesos al mismo tiempo. no se puede usar el compilador de java. se ejecutara el punto de corte cambioPosicionPunto. Es decir después que se llame al método Cambiar o incluso a los métodos que al estar declarados contentan la palabra Cambiar dentro de la clase Punto. Una vez que esta herramienta genera el código final. logrando que el proceso de registro de cambio de posición sea implementado como un aspecto y no este esparcido por todo el código del sistema. Para compilar aspectos. esto lo realiza por medio del descriptor de punto call que captura la llamada a un método. ahí si se puede correr sobre la máquina virtual de java. Clase Aspecto. permitiendo ejecutar las aplicaciones en menor tiempo y ampliando la gama de posibilidades de respuesta. para eso es necesario el compilador AspectJ. public aspect LogCambiosPosicion { pointcut cambioPosicionPunto(Punto p): call( * Punto. //Clase Punto public void CambiarX(int i) { x = i. after(Punto p): cambioPosicionPunto(p) { Registro.toString()). Aplicando el paradigma se divide el proceso propio de la clase y queda totalmente encapsulada en una sola entidad.Cambiar*(int) ) && target(p). Clase Punto encapsulada. .Algoritmo 3. } Y se implementaría una clase de tipo Aspecto llamada LogCambiosPosicion como la siguiente: Algoritmo 4. } } En donde pointcut es un punto de corte que captura la llamada a los métodos Cambiar de la clase Punto.

slidefinder. Implementando un Aspecto.com/2011/04/programacionorientada-aspectos. Carrillo Castro J. (Parte 3). Accedido 22 de marzo del 2013. Delegación de Alumnos EUI Repositorio de apuntes.. Anónimo. Ania Briseño I.http://includeblogh. Ambos han surgido de la necesidad de buscar métodos eficientes para la resolución de problemas y han logrado llevar a un nivel superior los paradigmas generalmente conocidos. Mendoza I. .es/apuntes/tecnicas/LPSI/programacion_2/concurrente. Introducción a la Programación Concurrente. 3. Referencias 1. Cohaila Barrios E.eui.upm.dalum. pero los presentados en este artículos se han establecido como nuevos paradigmas por su aceptación y popularidad en la comunidad de desarrolladores. SlideFinder. Programacion Concurrente. Programación Orientada a Aspectos.net/r/relaciones_procesos_competencia_cooperaci%C3%B3n/3250 8737 . 2.blogspot. Cengage Learning Editores. http://www. Blog de Ignacio Mendoza . Actualmente han surgido varias tecnologías que se han denominado nuevos paradigmas de programación. Accedido 22 de marzo del 2013. 4. a través de los aspectos. que permite la separación de conceptos transversales de las clases. Accedido 23 de marzo del 2013. .pdf. 2008. Software Introducción a la Computación.html. http://www.Además se presento el paradigma orientado a aspectos. Gómez de Silva Garza A.