Vous êtes sur la page 1sur 15

Paradigmas de Programacin

Contenido
1 Programacin declarativa ............................................................................................... 1 1.1 Carctersticas de los lenguajes de programacin declarativos.............................. 2 1.2 Desventajas de la programacin declarativa .......................................................... 2 1.3 Ventajas de la programacin declarativa................................................................ 2 1.4 Ejemplos de lenguajes declarativos........................................................................ 3 1.5 Versiones de programacin declarativa.................................................................. 3 1.5.1 Programacin lgica....................................................................................... 3 1.5.2 Programacin funcional.................................................................................. 3 1.5.3 Programacin orientada a bases de datos ....................................................... 4 Programacin imperativa................................................................................................ 5 2.1 Algunos lenguajes imperativos............................................................................... 5 2.2 Versiones de programacin imperativa .................................................................. 5 2.2.1 Lenguajes imperativos procedurales .............................................................. 5 2.2.2 Programacin estructurada ............................................................................. 6 2.2.3 Programacin modular ................................................................................... 8 2.2.4 Programacin orientada a objetos................................................................. 10 Diferencia entre lenguajes declarativos y lenguajes imperativos................................. 13 Conclusin .................................................................................................................... 14 Referencias bibliogrficas ............................................................................................ 14

3 4 5

1 Programacin declarativa
Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programacin en los cuales se le indica a la computadora qu es lo que se desea obtener o qu es lo que se esta buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan ms de 32 aos. Eso se puede lograr con un lenguaje declarativo como SQL. La programacin declarativa es una forma de programacin que implica la descripcin de un problema dado en lugar de proveer una solucin para dicho problema, dejando la interpretacin de los pasos especficos para llegar a dicha solucin a un intrprete no especificado. La programacin declarativa adopta, por lo tanto, un enfoque diferente al de la programacin imperativa tradicional. En otras palabras, la programacin declarativa provee el "qu", pero deja el "cmo" liberado a la implementacin particular del intrprete. Por lo tanto se puede ver que la programacin declarativa tiene dos fases bien diferenciadas, la declaracin y la interpretacin. Es importante sealar que a pesar de hacer referencia a intrprete, no hay que limitarse a "lenguajes interpretados" en el sentido habitual del trmino, sino que tambin se puede estar trabajando con "lenguajes compilados".

1.1 Carctersticas de los lenguajes de programacin declarativos


Los lenguajes declarativos estn orientados a buscar la solucin del problema, sin preocuparse por la forma de llegar a ello; es decir, el programador debe concentrarse en la lgica del algoritmo, ms que en el control de la secuencia. Los programas estn 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 slo pueden tener asignado un solo valor a lo largo de la ejecucin del programa, lo cual implica que no puede existir asignacin destructiva. Debido a esto, cobra especial importancia el uso del anidamiento y la recursividad. Las listas representan la estructura fundamental de datos. El orden de la ejecucin no resulta importante debido a que no existen efectos colaterales; es decir, que al calcular un valor, resulta imposible afectar el clculo de otros y con esto se puede afirmar que cualquier secuencia de ejecucin deber 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 ejecucin no es responsabilidad del programador.

1.2 Desventajas de la programacin declarativa


La principal desventaja de la programacin declarativa es que no puede resolver cualquier problema dado, sino que est restringida al subconjunto de problemas para los que el intrprete o compilador fue diseado. Otra desventaja de la programacin declarativa est relacionada con la eficiencia. Dado que es necesaria una fase de interpretacin extra, en la cual se deben evaluar todas las consecuencias de todas las declaraciones realizadas, el proceso es relativamente ms lento que en la programacin imperativa, en que los cambios de estado del sistema estn dados por instrucciones particulares y no por un conjunto de condiciones arbitrariamente grande.

1.3 Ventajas de la programacin declarativa


A pesar de lo anterior existen algunas ventajas en el uso de la programacin declarativa. Entre las ventajas se destaca que la solucin de un problema se puede realizar con un nivel de abstraccin considerablemente alto, sin entrar en detalles de implementacin irrelevantes, lo que hace a las soluciones ms fcil de entender por las personas. La resolucin de problemas complejos es resuelta por el intrprete a partir de la declaracin de las condiciones dadas.

La programacin declarativa es muy usada en la resolucin de problemas relacionados con inteligencia artificial, bases de datos, configuracin, y comunicacin entre procesos; sin embargo, ningn leguaje declarativo se aproxima en popularidad a los lenguajes imperativos.

1.4 Ejemplos de lenguajes declarativos


Algunos lenguajes declarativos que se pueden mencionar son: PROLOG SQL HTML WSDL (Web Services Description Language) XML Stylesheet Language for Transformation

1.5 Versiones de programacin declarativa


1.5.1 Programacin lgica
La idea fundamental de la programacin lgica consiste en emplear la lgica como lenguaje de programacin. La lgica no es imperativa porque no sirve para indicar cmo resolver un problema (rdenes). La lgica es declarativa porque sirve para especificar qu problema resolver (condiciones). En la programacin lgica, se especifican las condiciones que satisfacen las soluciones, se deducen las soluciones a partir de las condiciones y el nfasis de todo est en qu problema resolver. El problema se describe especificando qu caracteriza a sus posibles soluciones. La programacin lgica, junto con la funcional, forma parte de lo que se conoce como programacin declarativa. En los lenguajes tradicionales, la programacin consiste en indicar cmo resolver un problema mediante sentencias; en la programacin lgica, se trabaja de forma descriptiva, estableciendo relaciones entre entidades, indicando no cmo, sino qu hacer. Se establece entonces que la idea esencial de la programacin lgica es: algoritmos = lgica + control. Es decir, un algoritmo se construye especificando conocimiento en un lenguaje formal (lgica de primer orden), y el problema se resuelve mediante un mecanismo de inferencia (control) que acta sobre aqul. Al hacer un recorrido por la programacin lgica, aparece como uno de sus lenguajes ms representativos, Prolog, que es un clsico de la inteligencia artificial y que se aplica de mltiples formas en el desarrollo de software comercial.

1.5.2 Programacin funcional


La programacin funcional es un paradigma de programacin declarativa basado en la utilizacin de funciones matemticas. El objetivo de la programacin funcional es

conseguir lenguajes expresivos y matemticamente elegantes, en los que no sea necesario bajar al nivel de la mquina para describir el proceso llevado a cabo por el programa. Los programas escritos en un lenguaje funcional estn constituidos nicamente por definiciones de funciones, entendiendo stas no como subprogramas clsicos de un lenguaje imperativo (pues la programacin funcional es declarativa), sino como funciones puramente matemticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresin depende nicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales. Otras caractersticas propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracin (lo que obliga en la prctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas). Existen dos grandes categoras de lenguajes funcionales: los funcionales puros y los hbridos. La diferencia entre ambos estriba en que los lenguajes funcionales hbridos son menos dogmticos que los puros, al permitir conceptos tomados de los lenguajes imperativos, como las secuencias de instrucciones o la asignacin de variables. En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje hbrido.

1.5.3 Programacin orientada a bases de datos


Las bases de datos son programas que administran informacin y hacen ms ordenada la informacin, aparte de hacer la fcil de buscar y por supuesto de encontrar. Las caractersticas de las bases de datos pueden ser ventajosas o desventajosas: pueden ayudar a almacenar, organizar, recuperar, comunicar y manejar informacin en formas que seran imposibles sin las computadoras, pero tambin afecta de alguna manera ya que existen enormes cantidades de informacin en bases de datos de las que no se tiene control del acceso. Las bases de datos tienen muchos usos: facilitan el almacenamiento de grandes cantidades de informacin; permiten la recuperacin rpida y flexible de informacin, con ellas se puede organizar y reorganizar la informacin, as como imprimirla o distribuirla en formas diversas. Es claro que los lenguajes orientados a bases de datos son declarativos y no imperativos, pues el problema es "qu" se quiere hacer o "qu" se necesita buscar y encontrar en la base de datos, y no se enfatiza el "cmo". Una base de datos tambin se puede definir como un banco de datos o conjunto de datos que pertenecen al mismo contexto, almacenados sistemticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y gracias al desarrollo tecnolgico de campos como la informtica y la electrnica, la mayora de las bases de datos tienen formato electrnico, que ofrece un amplio rango de soluciones al problema de almacenar datos. Los sistemas gestores de bases de datos (SGBD) permiten almacenar y posteriormente acceder a los datos de forma rpida y estructurada.

2 Programacin imperativa
En ciencias de la computacin se llama lenguajes imperativos a aquellos en los cuales se le ordena a la computadora cmo realizar una tarea siguiendo una serie de pasos o instrucciones, por ejemplo: Paso 1, solicitar nmero. Paso 2, multiplicar nmero por dos. Paso 3, imprimir resultado de la operacin. Paso 4, etc, El proceso anterior se puede realizar con un lenguaje imperativo como por ejemplo BASIC, C, C++, Java, Clipper, Dbase, C#, PHP, Perl, etc. Dentro de la programacin imperativa, se tiene un conjunto de instrucciones que le indican al computador cmo realizar una tarea. Los lenguajes imperativos se basan en comandos u rdenes que se le dan a la computadora para que haga algo, con el fin de organizar o cambiar valores en ciertas partes de la memoria. La ejecucin de estos comandos se realiza, en la mayor parte de ellos, secuencialmente, es decir, hasta que un comando no ha sido ejecutado no se lee el siguiente. Segn el dominio, o mejor dicho con el propsito que se utiliza el programa, se puede hablar de lenguajes de dominio especfico y de dominio general.

2.1 Algunos lenguajes imperativos


Algunos lenguajes de programacin imperativos que se pueden mencionar son: BASIC C C++ Java C# PHP Perl

2.2 Versiones de programacin imperativa


2.2.1 Lenguajes imperativos procedurales
En los lenguajes tradicionales o procedurales, es la aplicacin quien controla qu porciones de cdigo se ejecuta, y la secuencia en que este se ejecuta. La ejecucin de la aplicacin se

inicia con la primera lnea de cdigo, y sigue una ruta predefinida a travs de la aplicacin, llamando procedimientos segn sea necesario. Los lenguajes procedurales estn fundamentados en la utilizacin de variables para almacenar valores y en la realizacin de operaciones con los datos almacenados. Algunos ejemplos son: FORTRAN, PASCAL, C, ADA, ALGOL, En este tipo de lenguajes, la arquitectura consta de una secuencia de celdas, llamadas memoria, en las cuales se pueden guardar en forma codificada, lo mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de manera secuencial una serie de operaciones, principalmente aritmticas y booleanas, llamadas comandos. En general, un lenguaje procedural ofrece al programador conceptos que se traducen de forma natural al modelo de la mquina. El programador tiene que traducir la solucin abstracta del problema a trminos muy primitivos, cercanos a la mquina. Con un lenguaje procedural el usuario (normalmente ser un programador) especifica qu datos se necesitan y cmo obtenerlos. Esto quiere decir que el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la informacin requerida. Estos lenguajes acceden a un registro, lo procesan y basndose en los resultados obtenidos, acceden a otro registro, que tambin deben procesar. As se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un lenguaje procedural deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener y procesar cada registro individual.

2.2.2 Programacin estructurada


La programacin estructurada es un estilo de programacin con el cual el programador elabora programas, cuya estructura es la ms clara posible, mediante el uso de tres estructuras bsicas de control lgico, a saber : Secuencia. Seleccin. Iteracin

Un programa estructurado se compone de funciones,segmentos, mdulos y/o subrutinas, cada una con una sola entrada y una sola salida. Cada uno de estos mdulos (an en el mismo programa completo), se denomina programa apropiado cuando, adems de estar compuesto slamente por las tres estructuras bsicas, tiene slo una entrada y una salida y en ejecucin no tiene partes por las cuales nunca pasa ni tiene ciclos infinitos. La PE tiene un teorema estructural o teorema fundamental, el cual afirma que cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando nicamente las tres estructuras bsicas ( secuencia, seleccin, iteracin ). Estructuras bsicas de control 1.- Secuencia

Indica que las instrucciones de un programa se ejecutan una despus de la otra, en el mismo orden en el cual aparecen en el programa. Se representa grficamente como una caja despus de otra, ambas con una sola entrada y una nica salida.

Las cajas A y B pueden ser definidas para ejecutar desde una simple instruccin hasta un mdulo o programa completo, siempre y cuando que estos tambin sean programas apropiados. 2.- Seleccin Tambin conocida como la estructura SI-CIERTO-FALSO, plantea la seleccin entre dos alternativas con base en el resultado de la evaluacin de una condicin o predicado; equivale a la instruccin IF de todos los lenguajes de programacin y se representa grficamente de la siguiente manera :

En el diagrama de flujo anterior, C es una condicin que se evala; A es la accin que se ejecuta cuando la evaluacin de este predicado resulta verdadera y B es la accin ejecutada cuando indica falso. La estructura tambin tiene una sola entrada y una sola salida; y las funciones A y B tambin pueden ser cualquier estructura bsica o conjunto de estructuras. 3.- Iteracin Tambin llamada la estructura HACER-MIENTRAS-QUE, corresponde a la ejecucin repetida de una instruccin mientras que se cumple una determinada condicin. El diagrama de flujo para esta estructura es el siguiente :

Aqu el bloque A se ejecuta repetidamente mientras que la condicin C se cumpla o sea cierta. Tambin tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura bsica o conjunto de estructuras. Ventajas de la Programacin estructurada Con la programacin estructurada, elaborar programas sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas: Los programas son ms fciles de entender. Un programa estructurado puede ser ledo en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lgica, lo cual es tpico de otros estilos de programacin. La estructura del programa es ms clara puesto que las instrucciones estn ms ligadas o relacionadas entre si, por lo que es ms fcil comprender lo que hace cada funcin. Reduccin del esfuerzo en las pruebas. El programa se puede tener listo para produccin normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas o depuracin (debugging) se facilita debido a la lgica ms visible, de tal forma que los errores se pueden detectar y corregir ms fcilmente. Reduccin de los costos de mantenimiento. Programas ms sencillos y ms rpidos. Aumento en la productividad del programador. Se facilita la utilizacin de las otras tcnicas para el mejoramiento de la productividad en programacin. Los programas quedan mejor documentados internamente.

2.2.3 Programacin modular


En programacin se suele mezclar dos conceptos relacionados pero no sinnimos (ni mucho menos excluyentes): programacin estructurada y programacin modular. La programacin estructurada se mencion en el punto anteriory ahora se tratrar el concepto de programacin modular y a relacionarlo con el de programacin estructurada. Una definicin de programacin modular Podemos definir la programacin modular como aqulla que afronta la solucin de un problema descomponindolo en subproblemas ms simples, cada uno de los cuales se

resuelve mediante un algoritmo o mdulo ms o menos independiente del resto (de ah su nombre: programacin modular). Las ventajas de la programacin modular son varias: Facilita la comprensin del problema y su resolucin escalonada Aumenta la claridad y legibilidad de los programas Permite que varios programadores trabajen en el mismo problema a la vez, puesto que cada uno puede trabajar en uno o varios mdulos de manera bastante independiente Reduce el tiempo de desarrollo, reutilizando mdulos previamente desarrollados Mejora la fiabilidad de los programas, porque es ms sencillo disear y depurar mdulos pequeos que programas enormes Facilita el mantenimiento de los programas Es virtualmente imposible escribir un programa de grandes dimensiones si no procedemos a dividirlo en fragmentos ms pequeos, abarcables por nuestro pobre intelecto humano. La programacin modular y la estructurada no son tcnicas incompatibles, sino ms bien complementarias. La mayora de los programas que se desarrollan con lenguajes estructurados son, de hecho, estructurados y modulares al mismo tiempo. El mtodo consiste en dividir un problema complejo en subproblemas, y tratar cada subproblema del mismo modo, es decir, dividindolo a su vez en subproblemas. As sucesivamente hasta que obtengamos problemas lo suficientemente sencillos como para escribir algoritmos que los resuelvan. Llamaremos mdulo a cada uno de estos algoritmos que resuelven los problemas sencillos. Una vez resueltos todos los subproblemas, es decir, escritos todos los mdulos, es necesario combinar de algn modo las soluciones para generar la solucin global del problema. Esta forma de disear una solucin se denomina diseo descendente o top-down. No es la nica tcnica de diseo que existe, pero s la ms utilizada. El diseo descendente debe tener dos fases: La identificacin de los subproblemas ms simples y la construccin de algoritmos que los resuelvan (mdulos) La combinacin de las soluciones de esos algoritmos para dar lugar a la solucin global La mayora de lenguajes de programacin estructurada permiten aplicar tcnicas de diseo descendente mediante un proceso muy simple: independizando fragmentos de cdigo en subprogramas o mdulos denominados procedimientos y funciones En general, el problema principal se resuelve en un algoritmo que denominaremos algoritmo o mdulo principal, mientras que los subproblemas sencillos se resolvern en subalgoritmos, tambin llamados mdulos a secas. Los subalgoritmos estn subordinados al algoritmo principal, de manera que ste es el que decide en qu orden deben ejecutarse los subalgoritmo y con qu conjunto de datos.

El algoritmo principal realiza llamadas o invocaciones a los subalgoritmos, mientras que stos devuelven resultados a aqul. As, el algoritmo principal va recogiendo todos los resultados y puede generar la solucin al problema global

2.2.4 Programacin orientada a objetos


En la Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) se definen los programas en trminos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) comportamiento (esto es, procedimientos o mtodos) e identidad (propiedad del objeto que lo diferencia del resto). La programacin orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas mdulos ms fciles de escribir, mantener y reutilizar. De esta forma, un objeto contiene toda la informacin, (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de la misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interaccin (los llamados mtodos) que favorecen la comunicacin entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) informacin (datos) y procesamiento (mtodos). Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie de atributos definitorios, requiere de unos mtodos para poder tratarlos (lo que hace que ambos conceptos estn ntimamente entrelazados), el programador debe pensar indistintamente en ambos trminos, ya que no debe nunca separar o dar mayor importancia a los atributos a favor de los mtodos, ni viceversa. Hacerlo puede llevar al programador a seguir el hbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen esa informacin por otro (llegando a una programacin estructurada camuflada en un lenguaje de programacin orientada a objetos). Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes imperativos escriben funciones y despus les pasan los datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y mtodos y despus envan mensajes a los objetos diciendo que realicen esos mtodos por s mismos. Un objeto se puede definir como un grupo de procedimientos que comparten un estado. Se define al conjunto de datos como "estado", y "mtodos" como el conjunto de procedimientos que pueden alterar ese estado. Un programa orientado a objetos es un mtodo de implementacin en el que los programas estn organizados como colecciones de objetos, donde cada uno es una instancia de alguna clase, y donde todas las clases son miembros de una jerarqua de clases conectadas por relaciones de herencia. Este tipo de

lenguajes son muy recientes en comparacin a los primeros lenguajes de programacin que aparecieron.

2.2.4.1 Conceptos bsicos de la programacin orientada objetos


La programacin orientada a objetos es una nueva forma de programar que trata de encontrar la solucin a problemas de una forma que ofrece muchas ventajas y facilidades que no se tenan anteriormente. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. Entro ellos destacan los siguientes: OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad ("mtodos"). Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). CLASE: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas. Una clase es una coleccin de objetos similares o la implementacin, declaracin o definicin de un tipo de objeto. Cada vez que se construye un objeto de una clase se crea una instancia de esa clase. Por ejemplo en Visual Basic, se tiene la clase Form, y se pueden crear instancias de esa clase al tener Form1, Form2, etc. As se est creando una instancia de la clase Form. MTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en lar propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema. EVENTO: un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. MENSAJE: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros 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 cuyo valor puede ser alterado por la ejecucin de algn mtodo. ESTADO INTERNO: es una propiedad invisible de los objetos, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). En comparacin con un lenguaje imperativo, una "variable no es ms que un contenedor interno del atributo del objeto o de un estado interno, as como la "funcin" es un procedimiento interno del mtodo del objeto.

2.2.4.2 Caractersticas de la programacin orientada a objetos


Las caractersticas ms importantes de la programacin orientada a objetos son las siguientes: ABSTRACCIN: Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin. ENCAPSULAMIENTO: tambin llamado "ocultacin de la informacin". Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos. Esta caracterstica o propiedad permite por tanto ejecutar la informacin al resto de los objetos, impidiendo as accesos incorrectos o conflictos. POLIMORFISMO: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del objeto referenciado. Por ejemplo en Visual Basic, el polimorfismo se da al tener diferentes tipos de objetos (Form, Label, etc.) HERENCIA: las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto pertenece a ms de una clase se dice que hay herencia mltiple; esta caracterstica no est soportada por algunos lenguajes (como Java). Con esta propiedad, los objetos heredan comportamientos dentro de una jerarqua de clases.

2.2.4.3 Principales diferencias entre la programacin imperativa y la programacin orienyada a objetos


La programacin orientada a objetos es ms moderna, es una evolucin de la programacin imperativa plasmada en el diseo de una familia de lenguajes conceptos que existan previamente, con algunos nuevos. La programacin orientada a objetos se basa en lenguajes que soportan sintctica y semnticamente la unin entre los tipos abstractos de datos y sus operaciones (a esta unin se la suele llamar clase). La programacin orientada a objetos incorpora en su entorno de ejecucin mecanismos tales como el polimorfismo y el envo de mensajes entre objetos.

2.2.4.4 Algunos lenguajes orientados a objetos


Entre los lenguajes orientados a objetos ms importantes que se pueden mencionar, aparecen los siguientes: Ada C++ C# VB.NET Clarion Delphi Eiffel Java Lexico Objective-C Ocaml Oz PHP PowerBuilder Pitn (Python) Ruby Smalltalk

3 Diferencia entre lenguajes declarativos y lenguajes imperativos


En los lenguajes declarativos las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto ltimo se realizar mediante mecanismos internos de inferencia de informacin a partir de la descripcin realizada.

Los lenguajes imperativos describen paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado un programa y hallar la solucin, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar un problema.

4 Conclusin
Los lenguajes de programacin no son simplemente un detalle ms del amplio mundo de la informtica, y por lo tanto deben ser vistos como el fundamento y la base del desarrollo y avance de la computacin. Estudiar los conceptos bsicos, clasificacin, diferencias, propiedades y funcionamiento de los lenguajes de programacin es elemental para cualquier estudiante o profesional dedicado a la computacin, pues de esa manera se logra tener una perspectiva global y mucho ms amplia que tendr mucho peso al estar bien documentados y al conocer qu son, cmo se clasifican y de qu manera trabajan los lenguajes de programacin. Luego del desarrollo de esta investigacin resulta fcil comprender los tipos y la clasificacin que se les da a los lenguajes de programacin en base a sus funcionalidades y caractersticas. Este estudio tambin permite desarrollar un sentido crtico de los lenguajes de programacin, de forma que el programador no seleccione ni emita un juicio respecto a determinado lenguaje basado simplemente en su limitado conocimiento ni basado en la popularidad de la que goza cierto lenguaje, sino que el programador est capacitado para dar razones contundentes y certeras del por qu un lenguaje es mejor que otro para determinada tarea, qu ventajas tiene uno respecto del otro, y que as tambin el programador sea capaz de seleccionar el lenguaje que ms le convenga para la resolucin de un problema determinado. Esta investigacin servir para evaluar correctamente los lenguajes de programacin, determinando las ventajas y desventajas que cada uno de ellos presenta.

5 Referencias bibliogrficas
Cejas, C.B; Crespillo, O.G.; Jimnez F., M.J.; Ramrez G., C.; Snchez G., C.; Snchez N., C. Tipos de Lenguajes de Programacin. Extrado el 29 de agosto, 2006 de Wikipedia. La enciclopedia libre. Programacin declarativa. Extrado el 29 de agosto, 2006 de http://es.wikipedia.org/wiki/Programaci%C3%B3n_declarativa Concept&Development. Programacin declarativa. Extrado el 29 de agosto, 2006 de http://pviojo.net/posts/programacion-declarativa Sanders, Donald H.; Informtica Presente y Futuro. Tercera Edicin. McGrawHill; Naucalpn de Jurez, Mxico; 1990. Wikipedia. La enciclopedia libre. Programacin imperativa. Extrado el 29 de agosto, 2006 de http://es.wikipedia.org/wiki/Lenguajes_imperativos

Universidad Tecnolgica Nacional. Facultad Regional Tucuman. Lenguajes de Programacin. Extrado el 29 de agosto, 2006 de http://www.frt.utn.edu.ar/sistemas/paradigmas/lenguajes.htm Matta G., D.A. Tutorial Introduccin al Desarrollo de Aplicaciones con Visual Basic. Wikipedia. La enciclopedia libre. Programacin orientada a objetos. Extrado el 30 de agosto, 2006 de http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos#La_Progra maci.C3.B3n_Orientada_a_Objetos_.28POO.29_como_soluci.C3.B3n Introduccin a la Programacin Lgica. Ingeniera Tcnica en Informtica de Sistemas. Departamento de Lenguajes y Ciencias de la Computacin. Universidad de Mlaga. Extrado el 30 de agosto, 2006 de http://72.14.209.104/search?q=cache:doHkGvx7wQIJ:www.lcc.uma.es/~lopez/apun tes/declasis/apuntes/introduccion/intro_sis4pp.pdf+programacion+declarativa+logic a&hl=es&gl=sv&ct=clnk&cd=6 Rossel, G. Programacin lgica. Extrado el 30 de agosto, 2006 de http://www.amzi.com/articles/code07_whitepaper.pdf#search=%22programacion% 20%20logica%22 Wikipedia. La enciclopedia libre. Programacin funcional. Extrado el 30 de agosto, 2006 de http://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional Wikipedia. La enciclopedia libre. Base de datos. Extrado el 30 de agosto, 2006 de http://es.wikipedia.org/wiki/Base_de_datos#Tipos_de_bases_de_datos Wikipedia. La enciclopedia libre. Normalizacin de una base de datos. Extrado el 30 de agosto, 2006 de: http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_una_base_de_datos

Autor: Edilberto Abdulio Baos Martnez. Jennifer Esmeralda Chacn Carranza. Jos Amilcar Chign Chegn Glenda Maritza Espaa Canalez. Jaime Oswaldo Montoya Guzmn http://jaimemontoya.googlepages.com El Salvador Santa Ana, 4 de septiembre de 2006.

Vous aimerez peut-être aussi