Beruflich Dokumente
Kultur Dokumente
13/09/2011
3 Cuatrimestre
Grupo 34
TAREA DE INVESTIGACION
13/09/2011
INDICE
1. ntroduccion.. 2 2. Desarrollo ...3 3. Paradigmas de la programacin.. .4 4. Paradigmas de la programacin estructurada...5 5. Paradigmas de la programacin orientada a objetos...6,7 6. Java ....8,9,10,11,12,13 7. conclusiones 14 8. Bibliografa anexos y referencias15
13/09/2011
INTRODUCCION
En este trabajo de investigacin vamos a observar los paradigmas de la programacin y vamos a aprender de JAVA, por lo que veremos en varios puntos del documento basados a Metodologas de programacin, observaremos que paradigma se refiere a proceso y en este caso (informtica), a modelos de procesos. Esta afirmacin da a entender que el paradigma OO es independiente de otros paradigmas y el hecho es que usar OOP implica usar automticamente al menos dos paradigmas que conozco: el de Programacin Estructurada y Programacin Modular.
El estudio de los lenguajes de programacin, es llamado a veces lingstica de la programacin, por analoga con la lingstica de los lenguajes naturales. La analoga se basa en el hecho en que ambos; lenguajes naturales y lenguajes de programacin, poseen sintaxis (forma) y semntica (significado). La analoga no puede tomarse en todo el contexto, Los lenguajes de programacin no pueden ser comparados con los lenguajes naturales en trminos de su rango de expresividad y subjetividad. Por otro lado, un lenguaje natural no es ms ni menos que un grupo de personas que hablan y escriben, as que la lingstica natural est restringida al anlisis de los lenguajes existentes; mientras que los lenguajes de programacin son concienzudamente diseados y se pueden implementar en computadoras.
13/09/2011
DESARROLLO
1.- Paradigmas de la programacin
Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que unvocamente trata de resolver uno o varios problemas claramente delimitados. La resolucin de estos problemas debe suponer consecuentemente un avance significativo en al menos un parmetro que afecte a la ingeniera de software. Tiene una estrecha relacin con la formalizacin de determinados lenguajes en su momento de definicin. Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.
Para que una computadora realice una tarea, debe programrsela para que lo haga colocando en la memoria principal un algoritmo apropiado el cual es expresado en lenguaje mquina. En los inicios de la programacin, esta tarea era onerosa por lo laborioso y difcil de disear cada algoritmo (sin contar los errores en que se podra incurrir). El gran paso se dio cuando se empez a dar mnemnicos a los diversos cdigos de operacin y a los operandos del lenguaje de mquina. Con esto, los programadores pudieron aumentar considerablemente la comprensibilidad de las secuencias de instrucciones mquina. El paradigma por procedimientos, es tal vez el ms conocido y utilizado en el proceso de programacin, donde los programas se desarrollan a travs de procedimientos. Pascal C y BASIC son tres de los lenguajes imperativos ms importantes. La palabra latina imperare significa "dar instrucciones". El paradigma se inici al principio del ao 1950 cuando los diseadores reconocieron que las variables y los comandos o instrucciones de asignacin constituan una simple pero til abstraccin del acceso a memoria y actualizacin del conjunto de instrucciones mquina. Debido a la estrecha relacin con la arquitectura de la mquina, los lenguajes de programacin imperativa pueden ser implementados muy eficientemente, al menos en principio. El paradigma imperativo an tiene cierto dominio en la actualidad. Una buena parte del software actual ha sido desarrollado y escrito en lenguajes imperativos. La gran mayora de programadores profesionales son principalmente o exclusivamente programadores imperativos (Hay que aadir que los paradigmas de la programacin concurrente y orientada al objeto son en realidad sub-paradigmas de la programacin imperativa, as que sus adeptos tambin son programadores imperativos). El paradigma declarativo o paradigma de programacin lgica se basa en el hecho que un programa implementa una relacin antes que una correspondencia. Debido a que las relaciones son ms generales que las correspondencias (identificador direccin de memoria), la programacin lgica es potencialmente de ms alto nivel que la programacin funcional o la imperativa. El lenguaje ms popular enmarcado dentro de este paradigma es el lenguaje PROLOG. El auge del paradigma
13/09/2011
declarativo se debe a que el rea de la lgica formal de las matemticas ofrece un sencillo algoritmo de resolucin de problemas adecuado para, usarse en un sistema de programacin declarativo de propsito general.
13/09/2011
13/09/2011
- Modularidad: Con este trmino se conoce la propiedad de todo sistema de ser dividido en varias partes de estudio a fin de comprenderlo mejor, trabajarlo eficazmente y no abrumarse con tanta informacin. De esta manera se puede extraer, mediante abstraccin, una parte de este, comprenderla y, al codificar y correr el programa, se puede hacer por mdulos. - Jerarquizacin: Proceso que consiste en agrupar jerrquicamente las clases que se obtuvieron de las abstracciones realizadas. Esta agrupacin consiste en identificar clases que contengan a otras; as se llega al concepto de Sper-Clase y Sub-Clase, de donde una sper-clase es una clase que contiene a una o mas clases (por ejemplo: La clase Medios de trasporte es una sper-clase que contiene otras, como Medios terrestres, Medios Acuticos. As mismo la clase Medios terrestres contiene otras como: Automviles, Trenes, etc.) y las sub-clases son aquellas contenidas en clases mayores (como en el caso de la clase Automvil en el ejemplo). Cuando se da aplica en concepto de Jerarqua en las clases, aparecen otros como Herencia simple (cuando una sub-clase hereda los mtodos, estructura y comportamiento de una sper-clase), Herencia mltiple (cuando una sub-clase hereda los mtodos, estructura y comportamiento de varias sper-clases) y Agregacin (el concepto de herencia pero visto en sentido inverso; es decir que una sub-clase es parte de [est agregada a] una sper-clase), conceptos que tienen mucho que ver con los tipos de relaciones que hay entre las clases. En los objetos tambin puede observarse la relacin de agregacin que en este caso es como un objeto puede estar formado por otros (otra relacin de los objetos es la de enlace con la que se percibe envo de mensajes entre los objetos que es algo parecido a las relaciones de uso entre las clases). Para establecer cuanto puede heredar una sub-clase de una superior se ha determinado que la creacin de clases valla acompaada de una especificacin de permisos de acceso. Esto puede notarse el construir clases de tipo privado (solo tiene acceso la clase), pblico (puede tener acceso cualquiera) y protegido (tambin tienen acceso las sub-clases). - Tipificado: A grosso modo esta expresin hace referencia a la coaccin de una clase referente determinado objeto. Todo objeto pertenece a una clase, por lo que: en todo objeto se encontrarn caractersticas que lo identifican y lo asocian a un grupo de semejantes. Lo antedicho puede hacerse gracias a una de las propiedades de los objetos: la identidad. Esta propiedad nos indica que todo objeto acta en un escenario determinado (con fronteras), es decir: si hablamos de un objeto de la clase autos (mi_auto), este tendr cosas en particular que lo diferenciarn de otros como mi_barco (de la clase barcos). - Concurrencia y Persistencia: Con estos trminos se desea trasmitir la idea de cmo en la POO se puede hacer uso de hilos de control para realizar operaciones simultneas sin que el sistema se concentre sobre determinado objeto, as diferentes objetos actuarn al mismo tiempo. Adems los objetos tienen la propiedad de ser persistentes con el paro del tiempo, con eso consiguen existir aunque su creador ya no. Como puede observarse la POO no es en s una forma de programar, no es un lenguaje de programacin, ms bien es todo un Paradigma que se orienta a la localizacin de entidades, su clasificacin y su funcionamiento dentro del sistema analizado.
13/09/2011
4.JAVA
Java es toda una tecnologa orientada a la programacin de software con el cual podemos realizar cualquier tipo de programas. Hoy en da, la tecnologa Java ha cobrado mucha importancia en el mbito de Internet gracias a su plataforma J2EE. Pero Java no se queda ah, ya que en la industria para la programacin dispositivos mviles tambin usa en gran medida este lenguaje. La tecnologa Java est compuesta bsicamente por 2 elementos: el lenguaje Java y su plataforma. Con plataforma nos referimos a la mquina virtual de Java (Java Virtual Machine). Una de las principales caractersticas que favoreci el crecimiento y difusin del lenguaje Java es su capacidad de que el cdigo fuente funcione sobre cualquier plataforma de software y hardware, es decir, un mismo programa puede ejecutarse en varios sistemas sin tocar el cdigo fuente. Por ejemplo: Unos programas en java escritos para Linux pueden ser ejecutados en Windows sin ningn problema. Adems es un lenguaje orientado a objetos que resuelve los problemas en la complejidad de los sistemas, entre otras. Finalmente concluimos que Java nos brinda una solucin para la programacin de en todo tipo de plataformas. Cuando se programa en Java, se coloca todo el cdigo en mtodos, de la misma forma que se escriben funciones en lenguajes como C.
Comentarios
En Java hay tres tipos de comentarios: // comentarios para una sola lnea
/** comentario de documentacin, de una o ms lneas */ Los dos primeros tipos de comentarios son los que todo programador conoce y se utilizan del mismo modo. Los comentarios de documentacin, colocados inmediatamente antes de una declaracin (de variable o funcin), indican que ese comentario ha de ser colocado en la documentacin que se genera automticamente cuando se utiliza la herramienta de Java, javadoc. Dichos comentarios sirven como descripcin del elemento declarado permitiendo generar una documentacin de nuestras clases escrita al mismo tiempo que se genera el cdigo.
13/09/2011
En este tipo de comentario para documentacin, se permite la introduccin de algunos tokens o palabras clave, que harn que la informacin que les sigue aparezca de forma diferente al resto en la documentacin. Identificadores Los identificadores nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar. En Java, un identificador comienza con una letra, un subrayado (_) o un smbolo de dlar ($). Los siguientes caracteres pueden ser letras o dgitos. Se distinguen las maysculas de las minsculas y no hay longitud mxima. Seran identificadores vlidos: identificador nombre_usuario Nombre_Usuario _variable_del_sistema $transaccion y su uso sera, por ejemplo: int contador_principal; char _lista_de_ficheros; float $cantidad_en_Ptas;
Palabras
clave Las siguientes son las palabras clave que estn definidas en Java y que no se pueden utilizar como indentificadores: abstract boolean break byte byvalue case catch char class const continue default do double else extends false final finally float if for goto new null package switch synchronized this threadsafe throw transient true try void while
instanceof public int interface long native return short static super
13/09/2011
Palabras Reservadas Adems, el lenguaje se reserva unas cuantas palabras ms, pero que hasta ahora no tienen un cometido especfico. Son: cast future operator generic inner outer rest var
Literales
Un valor constante en Java se crea utilizando una representacin literal de l. Java utiliza cinco tipos de elementos: enteros, reales en coma flotante, booleanos, caracteres y cadenas, que se pueden poner en cualquier lugar del cdigo fuente de Java. Cada uno de estos literales tiene un tipo correspondiente asociado con l. Enteros: byte short int long Por ejemplo: 32 bits 64 bits 21 077 8 bits 16 bits complemento a dos complemento a dos complemento a dos complemento a dos 0xDC00
Reales en coma flotante: float double Por ejemplo: Booleanos: true false Caracteres: Por ejemplo: Cadenas: Por ejemplo: "Esto es una cadena literal" a \t \u???? [????] es un nmero unicode 32 bits 64 bits 3.14 2e12 IEEE 754 IEEE 754 3.1E12
10
13/09/2011
Los lmites de los arrays se comprueban en tiempo de ejecucin para evitar desbordamientos y la corrupcin de memoria. En Java un array es realmente un objeto, porque tiene redefinido el operador []. Tiene una funcin miembro: length. Se puede utilizar este mtodo para conocer la longitud de cualquier array. int a[][] = new int[10][3]; a.length; a[0].length; /* 10 */ /* 3 */
Para crear un array en Java hay dos mtodos bsicos. Crear un array vaco: int lista[] = new int[50]; o se puede crear ya el array con sus valores iniciales: String nombres[] = { "Juan","Pepe","Pedro","Maria" }; Esto que es equivalente a: String nombres[]; nombres = new String[4]; nombres[0] = new String( "Juan" ); nombres[1] = new String( "Pepe" ); nombres[2] = new String( "Pedro" ); nombres[3] = new String( "Maria" ); No se pueden crear arrays estticos en tiempo de compilacin: int lista[50]; // generar un error en tiempo de compilacin Tampoco se puede rellenar un array sin declarar el tamao con el operador new: int lista[]; for( int i=0; i < 9; i++ ) lista[i] = i;
11
13/09/2011
Es decir, todos los arrays en Java son estticos. Para convertir un array en el equivalente a un array dinmico en C/C++, se usa la clase vector, que permite operaciones de insercin, borrado, etc. en el array.
Operadores
Los operadores de Java son muy parecidos en estilo y funcionamiento a los de C. En la siguiente tabla aparecen los operadores que se utilizan en Java, por orden de precedencia: . ++ ! * + << < & && ? : = op= (*= /= %= += -= etc.) , ~ / >> > ^ || >>> <= | >= == != [] -instanceof % ()
Los operadores numricos se comportan como esperamos: int + int = int Los operadores relacionales devuelven un valor booleano. Para las cadenas, se pueden utilizar los operadores comparaciones adems de + y += para la concatenacin: String nombre = "nombre" + "Apellido"; El operador = siempre hace copias de objetos, marcando los antiguos para borrarlos, y ya se encargar el garbage collector de devolver al sistema la memoria ocupada por el objeto eliminado. Separadores Slo hay un par de secuencias con otros caracteres que pueden aparecer en el cdigo Java; son los separadores simples, que van a definir la forma y funcin del cdigo. Los separadores admitidos en Java son: relacionales para
12
13/09/2011
() - parntesis. Para contener listas de parmetros en la definicin y llamada a mtodos. Tambin se utiliza para definir precedencia en expresiones, contener expresiones para control de flujo y rodear las conversiones de tipo. {} - llaves. Para contener los valores de matrices inicializadas automticamente. Tambin se utiliza para definir un bloque de cdigo, para clases, mtodos y mbitos locales. [] - corchetes. Para declarar tipos matriz. Tambin se utiliza cuando se referencian valores de matriz. ; - punto y coma. Separa sentencias. , - coma. Separa identificadores consecutivos en una declaracin de variables. Tambin se utiliza para encadenar sentencias dentro de una sentencia for. . - punto. Para separar nombres de paquete de subpaquetes y clases. Tambin se utiliza para separar una variable o mtodo de una variable de referencia.
13
13/09/2011
CONCLUSIONES
Se debe recordar que estos 3 paradigmas se complementan y fueron resultado de la evolucin, por lo que cuando se programa con el paradigma Modular se usan las tcnicas de la programacin estructurada y cuando se programa OO se usan las tcnicas de la programacin modular. En el fondo es lgico pensar que haya 3 paradigmas de programacin, ya que son 3 las principales fuerzas que modelan la computacin. Estos son datos, procesos y procesador. El paradigma declarativo se decanta por pensar en los datos como aquello verdaderamente importante, el paradigma imperativo en cambio lo hara por los procesos (del diseo descendente y la funcin principal o cima), por ltimo el orientado a objeto encapsula datos y procesos como un algo (objeto) inseparable, por lo que es el procesador lo verdaderamente importante (es ms un objeto se podra ver como un procesador de nivel de abstraccin superior y ms especfico a cierta rea del problema.
14
13/09/2011
15