Академический Документы
Профессиональный Документы
Культура Документы
en
Lenguaje
Java
Tema
1.
Introduccin
a
los
lenguajes
de
programacin
Los lenguajes de programacin de alto nivel han sido definidos como una solucin intermedia entre los
lenguajes naturales humanos y los lenguajes mquina de los computadores. Estn bien definidos,
en el sentido de que la tarea que se puede expresar con ellos no es ambigua y por lo tanto pueden ser
traducidos en un programa mquina concreto, de forma automatizada y por el propio (aunque no
necesariamente) computador que va a realizar la tarea.
FORTRAN (FORmula TRANslation). Su nombre evidencia la orientacin matemtica de uno de los lenguajes
de alto nivel mas antiguos, que an perduran. J. Backus lo desarroll en 1956. Aunque ha perdido terreno
frente a los lenguajes mas modernos, todava es ampliamente utilizado en aplicaciones cientficas de
grandes clculos numricos, porque probablemente, es el lenguaje con mayor nmero de libreras,
desarrolladas y comprobadas por mucha gente, a lo largo de su historia.
COBOL (COmmon Business Oriented Language). Se trata del lenguaje que ha alcanzado una mayor
resonancia en las tareas de gestin. Su desarrollo fue promovido por el Departamento de Defensa de Los
EEUU, en 1960. El lenguaje ha sufrido muchas extensiones, y ha sido actualizado recientemente.
LISP (LISt Processing). El Massachusetts Institute of Technology cre, en 1959, este lenguaje de alto nivel
orientado a aplicaciones de inteligencia artificial. La programacin de procesos recurrentes (edificados sobre
datos procesados en los pasos anteriores) es uno de los puntos fuertes del LISP.
BASIC (Beginners All-purpose Symbolic Instruction Code). Naci entre 1964 y 1965 en el Dartmouth
College como una herramienta para la enseanza. Con el tiempo han ido proliferando los dialectos y
versiones, hasta el punto de que es raro el fabricante que no desarrolla un dialecto para sus propios equipos.
Fue muy popular por su sencillez, pero tiene carencias importantes.
C. Es un lenguaje de programacin desarrollado por la Bell Laboratories, en principio para trabajar con el
sistema operativo UNIX. Quizs por ello, la popularidad del 'C' es muy alta. Es un lenguaje que, al mismo
tiempo que permite una programacin en alto nivel, permite una gran aproximacin a la mquina. Muchos
lo consideran un lenguaje intermedio entre alto y bajo nivel. Como estos ltimos, presenta alta eficiencia y
escasa fiabilidad. Es fcil cometer errores en C.
JAVA: Lenguaje derivado del C en cuanto a sintaxis, pero ms parecido al Ada 95 en cuanto a las
comprobaciones que hace el compilador y soporte de la programacin concurrente. Est pensado para su
ejecucin en sistemas distribuidos (internet). Existe un cdigo intermedio, bien definido, que puede
intercambiarse entre computadores diferentes para luego ser traducido y ejecutado.
C++: Extensin del lenguaje C que mejora algunos de sus inconvenientes, y aade construcciones de
programacin orientada a objetos. Entre las mejoras destacan una mayor comprobacin de los tipos de
datos por parte del compilador, las excepciones, y las plantillas genricas.
ADA (En honor de Lady Augusta ADA Byron). El ADA es un lenguaje inspirado en el PASCAL, que fue
promovido por el Departamento de Defensa de Los EEUU. El objetivo de su desarrollo era conseguir un
lenguaje con posibilidades de convertirse en un estndar universal y que facilitara la ingeniera de software
y el mantenimiento de los programas. Entre sus campos de aplicacin se incluyen los sistemas de tiempo
real y los sistemas de alta integridad. El 1995 se revis el lenguaje para mejorarlo y para aadirle
construcciones de programacin orientada al objeto. En 2005 se finaliz una nueva versin y en 2012 se
est completando una nueva.
Un lenguaje con tipos dinmicos es aquel en el que la comprobacin del tipo de dato que se est utilizando
se hace durante la ejecucin, en lugar de hacerse de manera esttica durante la compilacin.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
Front-end
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
de 010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010 Enlazador
texto
010010101010101010000010101000101010101010101010
Back-end
Cdigo ensamblador
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
Ensamblador
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
Cdigo objeto
Ficheros de Ficheros de Programa
cdigo fuente Compilador cdigo objeto Ejecutable
La variedad de compiladores que pueden aparecer es muy alta. Existen miles de lenguajes fuente.
Igualmente ocurre con los lenguajes objeto: pueden ser otros lenguajes de programacin, o el lenguaje
mquina de cualquier computador entre un microprocesador o un supercomputador. En cualquier caso las
tareas que debe realizar son las mismas.
Adems del compilador tambin son necesarios otros programas para crear un programa ejecutable: el
preprocesador, el ensamblador, el enlazador, y el cargador. En la figura de arriba se muestra un proceso de
compilacin tpico.
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
Libreras
Nativas
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
Front-end
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010 010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010 010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010 010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
de 010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
texto
010010101010101010000010101000101010101010101010
Back-end Intrprete
010010101010101010000010101000101010101010101010
Cargador
Cdigo de Mquina
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010 Dinmico
Virtual 010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
de Clases
010010101010101010000010101000101010101010101010
010010101010101010000010101000101010101010101010
Mquina
Virtual
Ficheros de Compilador Ficheros con
cdigo fuente clases
La idea principal de esta arquitectura es la de Escribir una vez, ejecutar en cualquier sitio. El compilador
de Java no genera cdigo mquina de un computador concreto, sino un cdigo especial, que luego es
interpretado por otro programa, llamado mquina virtual, que existe en cada computador en el que se desea
ejecutar el programa Java. De este modo, un programa Java se puede ejecutar indistintamente en cualquier
computador que disponga de esa mquina virtual, sin necesidad de recompilarlo.
Adicionalmente, en la arquitectura Java los programas no se enlazan antes de su ejecucin, sino que se
utiliza un enlazado dinmico. Cuando se hace una llamada a una operacin de un mdulo (clase) que no
est cargado en la mquina virtual, sta se encarga de buscar ese mdulo y cargarlo en ese momento en
la mquina virtual.
Desde el programa del usuario se pueden utilizar operaciones nativas, suministradas por la mquina
virtual, escritas generalmente en cdigo mquina, y que pueden acceder a los dispositivos hardware del
computador. El resultado es: programas muy portables, muy dinmicos, aunque poco eficientes.
Codificacin
Ciclo en V
www.istr.unican.es Michael Gonzlez Harbour y Mario Aldea, 8/mar/16 26
UNIVERSIDAD
DE CANTABRIA
Notas:
Los pasos que se siguen generalmente a la hora de desarrollar un programa son los siguientes:
Anlisis de requisitos: Se define el problema a resolver y todos los objetivos que se pretenden, pero
sin indicar la forma en la que se resuelve.
Especificacin: Se determina la forma en la que se resolver el problema, pero sin entrar an en su
implementacin informtica. Se determina asimismo la interfaz con el usuario.
Diseo de la arquitectura del programa: Se divide el problema en mdulos, se especifica lo que
hace cada mdulo, as como las interfaces de cada uno de ellos.
Diseo detallado de los mdulos: Para cada mdulo se disean detalladamente las estructuras de
datos y los algoritmos a emplear.
Codificacin: Se escribe el programa en el lenguaje de programacin elegido.
Pruebas de mdulos: Se prueban los mdulos del programa aisladamente y se corrigen los fallos
hasta conseguir un funcionamiento correcto.
Integracin y Prueba de sistema: Se unen todos los mdulos, y se prueba el funcionamiento del
programa completo.
Prueba de aceptacin: Instalacin en el lugar definitivo y aceptacin por parte del cliente
anlisis y diseo
codificacin
pruebas e
integracin
100
16
6.3
2.5
0
Ana Dis Cod Int Pru Man
Etapa en que se detecta el error
100
80 Hardware
% del coste total
60
40
Software
20
0
1955 1970 1995
Ao
Rose-Tu Cristina
Clase principal
main
import clases_importadas;
public class Nombre {
atributos
operaciones
}
Las clases importadas son aquellas pertenecientes a paquetes externos
un paquete es una coleccin de clases
En una clase principal, una de las operaciones se llama main
/**
* Programa que pone un mensaje en pantalla
*/
public class Hola {
/**
* Este es el mtodo principal
*/
public static void main(String[] args) {
// No hay declaraciones
System.out.println("Hola, Que tal ests?");
}
}