Sei sulla pagina 1di 14

CICLO DE GRADO SUPERIOR INFRMATICA DESARROLLO DE APLICACIONES MULTIPLATAFORMA

MDULO ENTORNOS DE DESARROLLO

TEMA 1 INTRODUCCIN AL DESARROLLO DE APLICACIONES INFORMTICAS

ENTORNOS DE DESARROLLO

Autor :Javier Tamargo Rodrguez


Este documento se publica bajo licencia Creative Commons No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribucin de las cuales se debe hacer con una licencia igual a la que regula la obra original.

ENTORNOS DE DESARROLLO

1. CONCEPTO DE ORDENADOR
Ordenador. Mquina que procesa la informacin de forma automtica. Procesar. Son las manipulaciones o transformaciones que debe hacerse con la informacin para resolver un problema determinado. Ejemplo: Calcular la media aritmtica de una serie de nmeros. La informacin son los nmeros. El procesamiento consta de dos operaciones: a. Sumar todos los nmeros. b. Dividir el resultado anterior entre la cantidad de nmeros que hay.

En un principio, los computadores utilizaban tecnologa mecnica y electrnica, pero actualmente slo se emplea la electrnica. No obstante, hay componentes, como los perifricos (discos, impresoras, etc), que todava utilizan elementos mecnicos. Tecnologa. Elementos fsicos con los que se construye un computador. La tecnologa del futuro parece ser la ptica, que actualmente se emplea en las comunicaciones de datos y en los dispositivos de almacenamiento de informacin (CD-ROM, etc).

1.1 Representacin de la informacin


La informacin se representa mediante sistemas de representacin digitales. Se suele usar el sistema binario, en el que cada dgito slo tiene dos estados lgicos posibles, denominados 1 y 0. Cada uno de estos dgitos se denomina bit. Al construirse con tecnologa electrnica, los valores de los dgitos binarios se representan mediante valores de tensin elctrica. As, los circuitos electrnicos pueden almacenar y procesar los bits de informacin. En la figura se muestran las zonas de tensin elctrica, que definen los dos estados posibles en los circuitos integrados del tipo TTL. o Electrnicamente, los dos estados se suelen denominar Alto (High) y Bajo (Low), segn correspondan a tensiones elevadas o a tensiones prximas a cero. La asignacin de los valores 1 y 0 a los estados H y L es arbitraria. Generalmente se suele asignar el valor 1 al estado H y el valor 0 al estado L.

ENTORNOS DE DESARROLLO

Para representar nmeros, letras y/o smbolos se utilizan cadenas de bits. El rango de los nmeros depende de la longitud de la cadena y del sistema de numeracin que utilice. Para el sistema de numeracin binario puro: ; 1 bit ; 4 bits ; 8 bits 0,1 0 , 24-1 => 0 , 15 0 , 28-1 => 0 , 255

Utilizando sistemas de codificacin se pueden representar letras y nmeros. Un ejemplo es el cdigo ASCII.

1.2. Arquitectura

von

neumann

del

computador digital
su de los un

Como se ver posteriormente, la arquitectura de un computador define comportamiento funcional. Von Neumann estableci en 1945 un modelo computador, que se considera todava como la arquitectura bsica de computadores digitales. En la figura se muestra la estructura general de computador con arquitectura Von Neumann.

ENTORNOS DE DESARROLLO

En general, la funcin esencial de la mquina de Von Neumann, como la de cualquier computador, es procesar informacin. Para ello, necesita saber el tipo de procesamiento y los datos que utilizar. El tipo se especifica mediante un programa, que es un conjunto de instrucciones u rdenes elementales, denominadas instrucciones mquina, que ejecuta el computador (Aritmticas: suma, resta, multiplicacin, divisin..., Lgicas: AND, OR, NOT, XOR ..., Transferencia de datos: cargar, almacenar, transferir ..., Saltos y Bifurcaciones condicionales, etc). Por tanto, se necesita un soporte que almacene tanto el programa como los datos. El bloque de Memoria Principal interna es el que realiza esta funcin. La mquina se compone de las siguientes unidades o bloques: Memoria Principal (M. P.)

Se compone de un conjunto de celdas del mismo tamao (nmero de bits). Cada celda est identificada por un nmero binario nico, denominado direccin. Una vez seleccionada una celda pueden hacer dos operaciones: mediante su correspondiente direccin, se

Lectura. Permite conocer el valor almacenado anteriormente. Escritura. Almacena un nuevo valor.

En la arquitectura Von Neumann, la M. P. almacena tanto las instrucciones mquina como los datos. Unidad Aritmtico-Lgica (U. A. L.). como lgicas, que

Realiza las operaciones elementales, tanto aritmticas implementa el computador: suma, resta, AND, OR, NOT, etc.

Los datos con los que opera se leen de la M. P., y pueden almacenarse temporalmente en los registros que contiene la U. A. L. Unidad de Control (U. C.). Ejecuta las instrucciones mquina almacenadas en la M. P. Para ello: Captura las instrucciones de la MP y las decodifica. Segn el tipo de instruccin, genera las seales de control a todas las unidades del computador para poder realizar su ejecucin. En la figura estas seales se indican mediante trazos. Si la instruccin opera con datos deber acceder a la MP para transferirlos a la UAL. Proporciona las seales necesarias a la UAL para que realice la operacin correspondiente a la instruccin.

ENTORNOS DE DESARROLLO

Controlar las Unidades de Control de E/S si la instruccin accede a alguno de estos dispositivos. Tiene un registro apuntador, denominado Contador de Programa, que en cada instante contiene la direccin de la prxima instruccin a ejecutar. Unidad de Entrada/Salida (U. E/S.). Realiza la transferencia de informacin con las unidades externas, denominadas Perifricos: unidades de almacenamiento secundario (disco duro, impresoras, teclado, pantalla, etc, . Generalmente los programas y los datos tienen un tamao elevado por lo que no se pueden almacenar por completo en la MP. Por otra parte, el usuario de un computador tiene la necesidad de ejecutar varios programas, simultneamente. Por ello, se utiliza la memoria secundaria (MS), que se considera como un perifrico. La MS es ms lenta que la principal, pero tiene una mayor capacidad de almacenamiento. (disco duro, Pen Drive, etc.) Como para ejecutar un programa este debe estar en la M.P., la U. C. genera las seales necesarias a la U. E/S. para transferir los datos y los programas desde la M.S. a la M.P. Adems la U. E/S. Permite otras operaciones, como visualizar en una pantalla (terminal) o imprimir en papel (impresora) los resultados obtenidos. Adems de las 4 unidades bsicas, en un computador existen conjuntos de seales, que se denominan buses, y cuya funcin es transferir las instrucciones y los datos entre las distintas unidades. Estos buses se representan en la figura mediante flechas de trazo continuo. Se suelen distinguir tres tipos de buses: Bus de direcciones. Bus de datos. Bus de control. Al conjunto formado por la U.C., los registros y la U.A.L., se le suele llamar Unidad Central de Proceso (U.C.P.). Es el bloque encargado de ejecutar las instrucciones. Con la aparicin de los circuitos integrados, y en concreto a partir de los aos 70, cuando la tecnologa alcanz el nivel de integracin adecuado, se integr en una sola pstilla la U.C.P. A este circuito integrado se le denomina Microprocesador.

ENTORNOS DE DESARROLLO

La forma de determinar el rendimiento de un computador es por el nmero de instrucciones que ejecuta por segundo (MIPS). As, generalmente un computador con un nmero MIPS elevado, equivale a decir, que tiene una gran capacidad de procesamiento. Al ser la UCP el bloque encargado de la ejecucin del programa, tiene que funcionar a la mayor velocidad posible. Por ello, se implementa con dispositivos semiconductores, que por los avances tecnolgicos actuales, pueden trabajar a frecuencias muy elevadas Como la MP suministra las instrucciones y los datos a la UCP, tiene que ser tambin lo ms rpida posible, por lo que se implementa igualmente con dispositivos semiconductores. Ejemplo: Vamos a realizar el recorrido que efecta una instruccin de un modo conceptual.Imaginemos que tenemos un programa extremadamente sencillo que pide por teclado dos nmeros y los suma. la instruccin que realizar la operacin de nuestro programa se podra corresponder con la siguiente lnea: c = a + b; El ordenador tendr reservada una cantidad de posiciones de memoria definidas por el tipo de variable que se corresponden con las variables de nuestra instruccin. Es decir, nuestras variables a, b y c tendrn unas posiciones de memoria definidas que es donde el sistema almacenar los valores de las variables. No obstante, el procesador no puede ejecutar esa instruccin por sencilla que sea de un solo golpe, la ALU (Aritmetic Logic Unit) tiene un nmero muy limitado de operaciones que puede realizar.. Si definimos (para simplificar el modelo) que las posiciones de memoria de a, b y c se corresponden con los registros r1, r2 y r3, las microinstrucciones que tendra que realizar nuestra mquina seran las siguientes: R1 Bus ; Bus ALU-Temp ; R2 Bus ; ALU_SUMAR ; ALU Bus ; Bus R3

ENTORNOS DE DESARROLLO

2. EL PROGRAMA INFORMTICO
Definicin de programa informtico: Un programa informtico es un conjunto de instrucciones escritas en un lenguaje de programacin que se ejecutan de manera secuencial con el objetivo de realizar una o varias tareas en un sistema. Un programa informtico es creado por un programador en un lenguaje determinado, que ser compilado y ejecutado por un sistema. Cuando un programa es llamado para ser ejecutado, el procesador ejecuta el cdigo compilado del programa instruccin por instruccin. Como hemos comentado brevemente, el procesador ejecutar las instrucciones una a una, pero no solo eso, para cada instruccin realizar una serie de microinstrucciones para llevarla a cabo.vamos a realizar el recorrido que efecta una instruccin de un modo conceptual, nada tcnico, profundizando ms y ms dentro de la interpretacin que hace el sistema de nuestro programa. Desde el nivel ms bsico de instrucciones que puede ejecutar directamente la CPU, se van construyendo lenguajes cada vez ms complejos que son capaces de ser traducidos al nivel inferior. Esto nos permite realizar nuestros programas con entornos y lenguajes ms amigables que el cdigo mquina que en ejecuta la CPU. Desde este punto de vista podemos ver en el grfico la clasificacin de Levy, que pretende establecer los diferentes niveles de complejidad del software.

La clasificacin de Levy se hace desde un punto de vista funcional. Cada nivel se considera como un intrprete que recibe unas instrucciones de un cierto tipo y acta de acuerdo a ellas: Logica digital. Es el hardware del semiconductor.

ENTORNOS DE DESARROLLO

Nivel de microinstrucciones. Es el Firmware asociado al hardware Nivel de instrucciones de mquina. El conjunto limitado de operaciones que puede ejecutar la CPU. Nivel de sistema operativo (conjunto de programas que ayudan al usuario en la explotacin del computador. Nivel de cdigo objeto Es una codificacin intermedia realizada por el compilador del lenguaje de alto nivel que emplea los recursos y bibliotecas del sistema operativo Nivel de lenguaje de alto nivel. Conjunto de lenguajes disponibles para crear nuestro cdigo fuente de forma amigable e intuitiva para el ser humano. Nivel de paquetes de programas de aplicacin. Entornos de desarrollo que facilitan el trabajo y realizan por nosotros operaciones que de otra forma deberamos realizar manualmente en un editor de lenguajes de alto nivel,

3. LENGUAJES DE PROGRAMACIN
Definicin de lenguaje de programacin: Un lenguaje de programacin es un conjunto de instrucciones, operadores y reglas de sintaxis y semnticas, que se ponen a disposicin del programador para que ste pueda comunicarse con los dispositivos de hardware y software existentes. El idioma artificial que constituyen los operadores, instrucciones y reglas tiene el objetivo de facilitar la tarea de crear programas, permitiendo con un mayor nivel de abstraccin realizar las mismas operaciones que se podran realizar utilizando cdigo mquina. En un principio, todos los programas eran creados por el nico cdigo que el ordenador era capaz de entender: el cdigo mquina, un conjunto de 0s y 1s de grandes proporciones. Este mtodo de programacin, aunque absolutamente efectivo y sin restricciones, converta la tarea de programacin en una labor sumamente tediosa, hasta que se tom la solucin de establecer un nombre a las secuencias de programacin ms frecuentes, establecindolas en posiciones de memoria concretas, a cada una de estas secuencias nominadas se las llam instrucciones, y al conjunto de dichas instrucciones, lenguaje ensamblador. Ms adelante, empezaron a usar los ordenadores cientficos de otras ramas, con muchos conocimientos de fsica o qumica, pero sin nociones de informtica, por lo que les era sumamente complicado el uso del lenguaje ensamblador; como un modo de facilitar la tarea de programar, y no como un modo de facilitar el trabajo al programador informtico, nace el concepto de lenguaje de alto nivel con Fortran (FORmula TRANslation) como primer debutante. Los lenguajes de alto nivel son aquellos que elevan la abstraccin del cdigo mquina lo ms posible, para que programar sea una tarea ms liviana, entendible e intuitiva. no

ENTORNOS DE DESARROLLO

10

obstante, nunca hay que olvidar que, usemos el lenguaje que usemos, el compilador har que de nuestro cdigo solo lleguen 1s y 0s a la mquina. La cantidad de lenguajes de programacin es sencillamente abrumadora, cada uno con unas caractersticas y objetivos determinados, tal abrumador elenco de lenguajes de programacin hace necesario establecer unos criterios para clasificarlos. Huelga decir que los criterios que clasifican los lenguajes de programacin se corresponden con sus caractersticas principales. Lenguajes de programacin segn su nivel de abstraccin Llamamos nivel de abstraccin al modo en que los lenguajes se alejan del cdigo mquina y se acercan cada vez ms a un lenguaje similar a los que utilizamos diariamente para comunicarnos. Cuanto ms alejado est del cdigo mquina, de mayor nivel ser el lenguaje. dicho de otro modo, podra verse el nivel de abstraccin como la cantidad de capas de ocultacin de cdigo mquina que hay entre el cdigo que escribimos y el cdigo que la mquina ejecutar en ltimo trmino. Lenguajes de bajo nivel Primera generacin: solo hay un lenguaje de primera generacin: el cdigo mquina. Cadenas interminables de secuencias de 1s y 0s que conforman operaciones que la mquina puede entender sin interpretacin alguna. Lenguajes de medio nivel Segunda generacin: los lenguajes de segunda generacin tienen definidas unas instrucciones para realizar operaciones sencillas con datos simples o posiciones de memoria. El lenguaje clave de la segunda generacin es sin duda el lenguaje ensamblador.. Lenguajes de alto nivel Tercera generacin: la gran mayora de los lenguajes de programacin que se utilizan hoy en da pertenecen a este nivel de abstraccin, en su mayora, los lenguajes del paradigma de programacin orientada a objetos, son lenguajes de propsito general que permiten un alto nivel de abstraccin y una forma de programar mucho ms entendible e intuitiva, donde algunas instrucciones parecen ser una traduccin directa del lenguaje humano. Por ejemplo, nos podramos encontrar una lnea de cdigo como sta: IF contador = 10 THEN STOP. no parece que esta sentencia est muy alejada de cmo expresaramos en nuestro propio lenguaje Si el contador es 10, entonces para. Cuarta generacin: son lenguajes creados con un propsito especfico, al ser un lenguaje tan especfico permite reducir la cantidad de lneas de cdigo que tendramos que hacer con otros lenguajes de tercera generacin mediante procedimientos especficos. Por ejemplo, si tuvisemos que resolver una ecuacin en un lenguaje de tercera generacin, tendramos que crear diversos y complejos mtodos para poder

ENTORNOS DE DESARROLLO

11

resolverla, mientras que un lenguaje de cuarta generacin dedicado a este tipo de problemas ya tiene esas rutinas incluidas en el propio lenguaje, con lo que solo tendramos que invocar la instruccin que realiza la operacin que necesitamos. Quinta generacin: tambin llamados lenguajes naturales, pretenden abstraer ms an el lenguaje utilizando un lenguaje natural con una base de conocimientos que produce un sistema basado en el conocimiento. Pueden establecer el problema que hay que resolver y las premisas y condiciones que hay que reunir para que la mquina lo resuelva. Este tipo de lenguajes los podemos encontrar frecuentemente en inteligencia artificial y lgica...

Lenguajes de programacin segn su forma de ejecucin Dependiendo de cmo un programa se ejecute dentro de un sistema, podramos definir tres categoras de lenguajes: Lenguajes compilados: un programa traductor (compilador) convierte el cdigo fuente en cdigo objeto y otro programa (enlazador) unir el cdigo objeto del programa con el cdigo objeto de las libreras necesarias para producir el programa ejecutable. Lenguajes interpretados: ejecutan las instrucciones directamente, sin que se genere cdigo objeto, para ello es necesario un programa intrprete en el sistema operativo o en la propia mquina donde cada instruccin es interpretada y ejecutada de manera independiente y secuencial. la principal diferencia con el anterior es que se traducen a tiempo real solo las instrucciones que se utilicen en cada ejecucin, en vez de interpretar todo el cdigo, se vaya a utilizar o no. Lenguajes virtuales: los lenguajes virtuales tienen un funcionamiento muy similar al de los lenguajes compilados, pero, a diferencia de stos, no es cdigo objeto lo que genera el compilador, sino un bytecode que puede ser interpretado por cualquier arquitectura que tenga la mquina virtual que se encargar de interpretar el cdigo bytecode generado para ejecutarlo en la mquina; aunque de ejecucin lenta (como los interpretados), tienen la ventaja de poder ser multisistema y as un mismo cdigo bytecode sera vlido para cualquier mquina. Lenguajes de programacin segn su paradigma de programacin El paradigma de programacin es un enfoque particular para la construccin de software, un estilo de programacin que facilita la tarea de programacin o aade mayor funcionalidad al programa dependiendo del problema que haya que abordar. todos los paradigmas de programacin pertenecen a lenguajes de alto nivel, y es comn que un lenguaje pueda usar ms de un paradigma de programacin Una primera divisin de los paradigmas sera:

ENTORNOS DE DESARROLLO

12

Paradigma imperativo: describe la programacin como una secuencia de instrucciones que cambian el estado del programa, indicando cmo realizar una tarea. C, BASIC o Pascal Paradigma declarativo: especifica o declara un conjunto de premisas y condiciones para indicar qu es lo que hay que hacer y no necesariamente cmo hay que hacerlo. Prolog

Dentro de los lenguajes de paradigma declarativo tenemos: Paradigma funcional: evala el problema realizando funciones de manera recursiva, evita declarar datos haciendo hincapi en la composicin de las funciones y en las interacciones entre ellas. Scheme o Haskell. Paradigma lgico: define un conjunto de reglas lgicas para ser interpretadas mediante inferencias lgicas. Permite responder preguntas planteadas al sistema para resolver problemas. Prolog Dentro de los lenguajes de paradigma imperativo tenemos: Paradigma procedural o estructurado: el programa se divide en partes ms pequeas, llamadas funciones y procedimientos, que pueden comunicarse entre s. Permite reutilizar cdigo ya programado .Lenguaje C, Pascal, etc Paradigma orientado a objetos y eventos: encapsula el estado y las operaciones en objetos, creando una estructura de clases y objetos que emula un modelo del mundo real, donde los objetos realizan acciones e interactan con otros objetos. Permite la herencia e implementacin de otras clases, pudiendo establecer tipos para los objetos y dejando el cdigo ms parecido al mundo real con esa abstraccin conceptual. SmallTalk, Java, C#, C++

4. OBTENCIN DE CDIGO EJECUTABLE


Como se ha venido comentando, nuestro programa, est programado en el lenguaje que est y se quiera ejecutar en la arquitectura que sea, necesita ser traducido para poder ser ejecutado (con la excepcin del lenguaje mquina). Por lo que, aunque tengamos el cdigo de nuestro programa escrito en el lenguaje de programacin escogido, no podr ser ejecutado a menos que lo traduzcamos a un idioma que nuestra mquina entienda El cdigo de nuestro programa es manejado mediante programas externos comnmente asociados al lenguaje de programacin en el que est escrito nuestro programa, y a la arquitectura en donde queremos ejecutar dicho programa.

ENTORNOS DE DESARROLLO

13

Para ello, deberemos definir los distintos tipos de cdigo por los que pasar nuestro programa antes de ser ejecutado por el sistema. Cdigo fuente: el cdigo fuente de un programa informtico es un conjunto de instrucciones escritas en un lenguaje de programacin determinado. Es decir, es el cdigo en el que nosotros escribimos nuestro programa. Cdigo objeto: el cdigo objeto es el cdigo resultante de compilar el cdigo fuente. si se trata de un lenguaje de programacin compilado, el cdigo objeto ser cdigo mquina, mientras que si se trata de un lenguaje de programacin virtual, ser cdigo bytecode. Cdigo ejecutable: el cdigo ejecutable es el resultado obtenido de enlazar nuestro cdigo objeto con las libreras. Este cdigo ya es nuestro programa ejecutable, programa que se ejecutar directamente en nuestro sistema o sobre una mquina virtual en el caso de los lenguajes de programacin virtuales. Cabe destacar que, si nos encontrsemos programando en un lenguaje de programacin interpretado, nuestro programa no pasara por el compilador y el enlazador, sino que solo tendramos un cdigo fuente que pasara por un intrprete interno del sistema operativo o de la mquina que realizara la compilacin y ejecucin lnea a lnea en tiempo real. Aunque el proceso de obtener nuestro cdigo ejecutable pase tanto por un compilador como por un enlazador, se suele llamar al proceso completo compilacin.todo este proceso se lleva a cabo mediante dos programas: el compilador y el enlazador. Mientras que el enlazador solamente une el cdigo objeto con las libreras, el trabajo del compilador es mucho ms completo. Fases de compilacin

Anlisis lexicogrfico: se leen de manera secuencial todos los caracteres de nuestro cdigo fuente, buscando palabras reservadas, operaciones, caracteres de puntuacin y agrupndolos todos en cadenas de caracteres que se denominan lexemas. Anlisis sintctico-semntico: agrupa todos los componentes lxicos estudiados en el anlisis anterior en forma de frases gramaticales. Con el resultado del proceso del anlisis sintctico, se revisa la coherencia de las frases gramaticales, si su significado es correcto, si los tipos de datos son correctos, si los arrays tienen el tamao y tipo adecuados, y as consecutivamente con todas las reglas semnticas de nuestro lenguaje. Generacin de cdigo intermedio: una vez finalizado el anlisis, se genera una representacin intermedia a modo de pseudoensamblador con el objetivo de facilitar la tarea de traducir al cdigo objeto.

ENTORNOS DE DESARROLLO

14

Optimizacin de cdigo: revisa el cdigo pseudoensamblador generado en el paso anterior optimizndolo para que el cdigo resultante sea ms fcil y rpido de interpretar por la mquina. Generacin de cdigo: genera el cdigo objeto de nuestro programa en un cdigo de lenguaje mquina relocalizable, con diversas posiciones de memoria sin establecer, ya que no sabemos en qu parte de la memoria voltil se va a ejecutar nuestro programa. Enlazador de libreras: como se ha comentado anteriormente, se enlaza nuestro cdigo objeto con las libreras necesarias, produciendo en ltimo trmino nuestro cdigo final o cdigo ejecutable. Aqu podemos ver una ilustracin que muestra el proceso de compilacin de un modo grfico ms claro.

Potrebbero piacerti anche