Download Lenguajes de programación - 3er-PAR-FDP
Document related concepts
no text concepts found
Transcript
TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN 3.1- Características del lenguaje de programación. 1:. Legibilidad un lenguaje de alto nivel buena voluntad permiten escribir programas en algunas formas que se asemejan a una descripción bastante-Inglés de los algoritmos subyacentes. Si se tiene cuidado, la codificación se puede hacer de una manera que es esencialmente auto-documentación. 2:. Portabilidad-Los lenguajes de alto nivel, que es esencialmente independiente de la máquina, debe ser capaz de desarrollar software portátil. 3:. Generalidad La mayoría de los lenguajes de alto nivel permite la escritura de una amplia variedad de programas, aliviando así el programador de la necesidad de ser experto en muchas lenguas distintas. 4:. La brevedad del lenguaje debe tener la capacidad para implementar el algoritmo con menor cantidad de código. Programas expresadas en lenguajes de alto nivel son a menudo considerablemente más bajos que sus equivalentes de bajo nivel. 5:. Comprobación de errores Ser humano, un programador es probable que comete muchos errores en el desarrollo de un programa de ordenador. Muchos lenguajes de alto nivel de ejecución de una gran cantidad de comprobación de errores tanto en tiempo de compilación como en tiempo de ejecución. 6. Costo: El costo final de un lenguaje de programación es una función de muchas de sus características. 7. Notación Familiar: Un lenguaje debe tener notación familiar, para que pueda ser entendido por la mayoría de los programadores. 8: Rápido. Traducción Debe admitir traducción rápida. 9:. Eficiencia Se debe permitir la generación de código objeto eficiente. 10:. Modularidad Es deseable que los programas se pueden desarrollar en el lenguaje como un conjunto de módulos compilados por separado, con los mecanismos adecuados para garantizar la libre coherencia entre estos módulos. 11:. Ampliamente disponible lenguaje debe ser ampliamente disponible y debe ser posible para proporcionar traductores para todas las máquinas principales y para todos los sistemas operativos más importantes. Lenguajes de programación Artículo Tabla de contenidos Lenguaje de programación Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a una computadora. Por otro lado, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas (por ejemplo: inglés o francés). TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto: A CADA instrucción le corresponde UNA acción de procesador. El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios). El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que el procesador pueda procesarlo. El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el programa! Por lo tanto, un lenguaje de programación tiene varias ventajas: • • es mucho más fácil de comprender que un lenguaje máquina: permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos. Lenguajes de programación imperativos y funcionales Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos: • • lenguajes imperativos; lenguajes funcionales. Lenguaje de programación imperativo Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio. TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones. Lenguaje de programación funcional Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad. Interpretación y compilación Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías: • • lenguajes interpretados lenguajes compilados Lenguaje interpretado Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario. Lenguaje compilado Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable. Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida. Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios. Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...). TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN Lenguajes intermediarios Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class). Algunos ejemplos de lenguajes ampliamente usados A continuación, encontrará una breve lista de los lenguajes de programación actuales: Lenguaje ADA BASIC C C++ Cobol Fortran Java MATLAB Cálculos matemáticos LISP Pascal PHP Inteligencia artificial Perl Principal área de aplicación Tiempo real Programación para fines educativos Programación de sistema Programación de sistema orientado a objeto Administración Cálculo Programación orientada a Internet Cálculos matemáticos Compilado/interpretado Lenguaje compilado Lenguaje interpretado Lenguaje compilado Lenguaje compilado Lenguaje compilado Lenguaje intermediario Lenguaje interpretado Cálculos matemáticos Lenguaje interpretado Inteligencia artificial Educación Desarrollo de sitios web dinámicos Inteligencia artificial Procesamiento de cadenas de caracteres Lenguaje intermediario Lenguaje compilado Lenguaje interpretado Lenguaje interpretado Lenguaje interpretado Lenguaje compilado TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN 3.2 - ESTRUCTURA BÁSICA DE UN PROGRAMA Java Plataforma de software desarrollada por Sun Microsystems. Esta plataforma ha sido desarrollada de tal manera que los programas desarrollados para ella puedan ejecutarse de la misma forma en diferentes tipos de arquitecturas y dispositivos computacionales. La plataforma Java consta de tres partes: • El lenguaje de programación • Máquina virtual de Java • API Java Originalmente llamado OAK por Ingenieros de Sun Microsystems, Java fue diseñado para correr en computadoras embebidas. Sin embargo, en 1995, dada la atención que estaba produciendo la Web, Sun Microsystems la distribuyó para sistemas operativos tales como Microsoft Windows. El lenguaje mismo adopta la sintaxis de C++, pero su funcionamiento es muy similar al de Smalltalk. Incorpora sincronización y manejo de tareas en el lenguaje mismo (similar a Ada) e incorpora interfaces como un mecanismo alternativo a la herencia múltiple de C++. A fines del siglo XX, Java llegó a ser el lenguaje de mayor acogida para programas de servidor. Utilizando una tecnología llamada JSP (similar a ASP de Microsoft), se hizó muy fácil escribir páginas dinámicas para sitios de Internet. Sumado a esto, la tecnología de JavaBeans, al incorporarse con JSP, permitía utilizar el patrónMVC (Modelo-VistaControlador) que ya tanto se había aplicado a interfaces gráficas. Java llegó a ser extremadamente popular cuando Sun Microsystems introdujo la plataforma y el modelo de programación J2EE (Java 2 Enterprise Edition). Este modelo permite una separación entre la presentación de los datos al usuario (JSP o Applets), el modelo de datos (EJB), y el control (Servlets). Enterprise Java Beans (EJB) que es una tecnología de objetos distribuídos que pudo lograr el sueño de muchas empresas como Microsoft e IBM de crear una plataforma de objetos distribuídos con un monitor de transacciones. Con este nuevo estándar, empresas como BEA, IBM, Sun Microsystems, Oracle y otros crearon nuevos "servidores de aplicaciones" que tuvieron gran acogida en el mercado. Además de programas del servidor, Java permite escribir programas de interfaz gráfica o textual. Además se pueden correr programas de manera incorporada o embebida en los navegadores web de Internet, aunque esto nunca llegó a popularizarse como se esperaba en un principio. Los programas en Java generalmente son compilados a un lenguaje intermedio o bytecode, y luego interpretados por una máquina virtual (JVM). Esta última sirve como una plataforma de abstracción entre la máquina y el lenguaje permitiendo que se pueda "escribir TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN el programa una vez, y correrlo en cualquier lado". También existen compiladores nativos de Java, tanto comercial como libre. El compilador GCC de GNU compila Java a código de máquina con algunas limitaciones al año 2002. Estructura básica del programa Empezaremos de inmediato con una mirada a un programa Java. Para la mayoría de este curso todos los programas tendrán la misma estructura básica, que se reproduce a continuación. Este contiene todas las partes esenciales de código que debe incluirse en cualquier programa. Simple clase pública { public static void main (String argv []) { / / Código del programa va aquí } } Entonces, ¿qué significa todo esto? Simple clase pública Los programas Java se componen de clases, por lo que la primera línea dice que vamos a definir la clase AA y hemos decidido llamarlo simple, aunque, por supuesto que podríamos llamar de otro nombre. (El convenio es para los nombres de clase para comenzar con una letra mayúscula.) The Simple clase es todo lo contenido en el exterior conjunto de llaves {};. El propósito de la palabra alpúblico es algo que vendrá más adelante, mientras tanto, usted debe Siempre lo uso. estáticos public void principal (String argv []) Las clases contienen métodos, y esta línea (3) es el inicio del método llamado principal. Cuando la computadora ejecuta cualquier programa en Java que se observa, para el método principal y lleva a cabo independientemente de las instrucciones se encuentran dentro de ella. Todos los programas deben contener uno (y sólo uno) método principal. líneas 04.06 Instrucciones para lo que el principal método se debe hacer en forma de un código Java que va en el método principal - es decir, dentro de las correspondientes llaves, {} . El / / alguna parte ...en la línea 5 se llama un comentario, una nota a sí mismo oa otros de leer el archivo que es ignorado por el equipo. Hay otras maneras de escribir comentarios que se cubrirán en breve. TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN También tenga en cuenta la forma en la clase de todas las otras líneas han sido sangría de cuatro espacios, y en el que todo método es sangría en otros cuatro espacios. Los espacios no tienen ningún efecto en el programa - que sólo son utilizadas para hacer la estructura del programa sea más claro para ver de un vistazo. También puede utilizar las líneas en blanco de vez en cuando para mayor claridad también Ejemplo: import javax.swing.JFrame; import javax.swing.JLabel; public class HolaMundo extends javax.swing.JFrame { public static void main(String[] args) { System.out.println("Vamos a crear una ventana que ponga \"HolaMundo\""); new HolaMundo(); } public HolaMundo() { super("HolaMundo"); JLabel etiqueta = new JLabel("HolaMundo"); etiqueta.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); getContentPane().add(etiqueta); setSize(400,200); addWindowListener( new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { System.exit(0); } } ); setVisible(true); } } -.-.-.-.-.-.-.-.- TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN Existen dos tipos de lenguajes claramente diferenciados; los lenguajes de bajo nivel y los de alto nivel. El ordenador sólo entiende un lenguaje conocido como código binario o código máquina, consistente en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar cualquier acción. Los lenguajes más próximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran más cercanos a los programadores y usuarios se denominan lenguajes de alto nivel. Lenguajes de bajo nivel Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características del mismo. Dentro de este grupo se encuentran: • El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento. Cnsiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. Este lenguaje es mucho más rápido que los lenguajes de alto nivel. La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente enormes donde encontrar un fallo es casi imposible. • El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes eran más cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN siguen siendo prácticamente las mismas que las del lenguaje ensamblador, ñadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de probar y mantener. Lenguajes de alto nivel Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina. Están dirigidos a solucionar problemas mediante el uso de EDD's (estructuras dinamicas de datos). Nota: EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy utilizado en todos los lenguajes de programación. Son estructuras que pueden cambiar de tamaño durante la ejecución del programa. Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa. Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema. Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que están diseñando el programa. Tan solo necesitan un traductor que entiendan el código fuente como las características de la maquina. Suelen usar tipos de datos para la programación y hay lenguajes de propósito general (cualquier tipo de aplicación) y de propósito especifico (como FORTRAN para trabajos científicos). Lenguajes de Medio nivel Se trata de un termino no aceptado por todos, pero q seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel. Generaciones La evolución de los lenguajes de programación se puede dividir en 5 etapas o generaciones. • Primera generación: lenguaje maquina. • Segunda generación: se crearon los primeros lenguajes ensambladores. • Tercera generación: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol… • Cuarta generación. Son los lenguajes capaces de generar código por si solos, son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aquí también se encuentran los lenguajes orientados a objetos, haciendo posible la reutilización d partes del código para otros programas. Ej. Visual, Natural Adabes… • Quinta generación: aquí se encuentran los lenguajes orientados a la inteligencia artificial. Estos lenguajes todavía están poco desarrollados. Ej. LISP ¿Qué es una variable? Una variable es un contenedor que almacena un valor significativo que se puede utilizar a través de un programa. Por ejemplo, en un programa que determina el impuesto sobre los artículos que pueden tener algunas variables - una variable que almacena el precio normal de un elemento y otro variable que almacena el precio total de un artículo después de que el impuesto se calcula sobre el mismo. Variables de almacenar esta información en la memoria de una computadora y el valor de una variable puede cambiar a lo largo de un programa. Declaración de variables Una variable en el programa puede almacenar datos numéricos, mientras que otra variable puede almacenar datos de texto. Java tiene palabras especiales para indicar qué tipo de datos de cada variable almacena. Use estas palabras clave al declarar las variables para establecer el tipo de datos de la variable. TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN Ejemplo: char aCharacter; aNumber int; Usted puede asignar un valor a una variable al mismo tiempo que se declara. Este proceso se conoce como lainicialización: Ejemplo: aCharacter char = 'a'; aNumber int = 10; Declarar una variable y luego le da un valor: char aCharacter; aCharacter = 'a'; aNumber int; aNumber = 10; NOTA: Una variable debe ser declarada con un tipo de datos o un error se generará! El tipo de datos de una variable debe ser utilizado sólo una vez con el nombre de la variable - durante la declaración. Después de eso, puede hacer referencia a la variable por su nombre sin el tipo de datos. APLICACION DE EJEMPLO: HOLA MUNDO En Java, prácticamente todo son clases (objetos). El lenguaje obliga a la programación orientada a objetos y no permite la posibilidad de programar mediante ninguna otra técnica que no sea ésta. Por esta razón, un programa estará formado por uno o varios ficheros fuente y en cada uno de ellos habrá definida una o varias clases. En un fichero fuente puede declararse una o más clases y tendrá un aspecto similar a este: class … } class … } … class … } Clase1 { Clase2 { ClaseN { TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN Una clase está formada por una parte correspondiente a la declaración, y otra correspondiente al cuerpo de la misma: Declaración de clase { Cuerpo de clase } En la plantilla anterior se ha simplificado el aspecto de la Declaración de clase, pero sí que puede asegurarse que la misma contendrá, como mínimo, la palabra reservada class y el nombre que recibe la clase. El cuerpo de las clases comienza con una llave abierta({) y termina con una llave cerrada (}). Dentro del cuerpo de la clase se declaran los atributos y los métodos de la clase. Para que un programa se pueda ejecutar, debe contener una clase que tenga un método main con la siguiente declaración: public static void main( String argumentos [] ) Hola, mundo En primer lugar, vamos a ver qué estructura debería tener el típico programa con el que se empieza en cualquier lenguaje de programación y que proporciona una primera visión de la sintaxis del lenguaje y que comienza a transmitir una serie de sentimientos de aceptación o de rechazo en el programador. El programa simplemente mostrará en pantalla el mensaje "hola, mundo" y terminará. Este ejemplo habrá que crearlo mediante un editor cualquiera y guardar el fichero con el nombre Hola.java (ATENCIÓN: Es importante que tenga el mismo nombre que la clase "Hola", distinguiendo entre mayúsculas y minúsculas). class Hola { public static void main(String argumentos[]) { System.out.println("hola, mundo"); } } } El lenguaje Java, al igual que C, distingue entre mayúsculas y minúsculas, por lo que es importante transcribirlo literalmente. TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN También hay que comentar que en el nombre del fichero fuente también se hace distinción entre mayúsculas y minúsculas a la hora de compilarlo, aunque el sistema operativo empleado no haga esta distinción. La extensión del mismo debe ser .java Para compilar el programa, hay que teclear: javac Hola.java El compilador creará un fichero que se llama Hola.class que contiene el código bytecode ("pseudoejecutable") Para ejecutarlo: java Hola Se escribe únicamente el nombre de la clase Hola y no Hola.class u Hola.java ??El intérprete Java buscará el fichero Hola.class en los directorios especificados en la variable de entorno CLASSPATH y, si lo encuentra y tiene método main(), lo ejecutará. El resultado de la ejecución será la visualización en pantalla del mensaje: hola, mundo Explicación del programa Hola.java línea a línea: Este simple programa, a pesar de no ser muy extenso, contiene muchos de los conceptos de la programación orientada a objetos en Java. No se pretende que, a partir del mismo, se aprendan y comprendan la totalidad de los aspectos de la POO y la sintaxis del Java, pero sí que puede afirmarse que una vez comprendida y asimilada su filosofía, se estará en un punto bastante cercano a los conocimientos básicos necesarios para entenderlos. La primera línea del programa declara una clase llamada Hola, que es descendiente, al no indicar nosotros que herede de otra clase, de la clase Object. Entre las llaves de la clase Hola, se declaran los atributos y los métodos de la clase. Todo lo que se encuentre entre la llave abierta ( { ) y la llave cerrada ( } ) pertenece a la clase Hola. En nuestro ejemplo, únicamente tiene un método: main. Las llaves no sirven únicamente para marcar el inicio y el fin de una clase. Se utilizan para marcar principio y final de bloques de código y se interpretan mediante el método LIFO (Last In First Out) donde el último en entrar es el primero en salir. En el ejemplo existen, además de las llaves abierta y cerrada de la clase, otras llaves abierta y cerrada dentro del método main(). Que se interpreten mediante el método LIFO significa que la llave cerrada ( } ) del método main() parentiza el bloque abierto por la última llave ( { ) antes de ésta. Todo programa independiente escrito en Java empieza a ejecutarse (como en C) a partir del método main(). Se pueden compilar clases que no posean método main(), pero el intérprete Java no podrá ejecutarlas inicialmente, aunque sí pueden ejecutarse si son llamadas desde otro método en ejecución. Veremos en posteriores capítulos que la forma de crear los applets es distinta y no necesita declarar este método. Declaración del método main(): • • • public: indica que el método main() es público y, por tanto, puede ser llamado desde otras clases. Todo método main() debe ser público para poder ejecutarse desde el intérprete Java (JVM). TEMA 3- INTRODUCCIÓN A LA PROGRAMACIÓN • • • • • • static: indica que la clase no necesita ser instanciada para poder utilizar el método al que califica. (No se crea ninguna instancia u objeto de la clase Hola). También indica que el método es el mismo para todas las instancias que pudieran crearse. void: indica que la función main no devuelve ningún valor. El método main debe aceptar siempre, como parámetro, un vector de strings, que contendrá los posibles argumentos que se le pasen al programa en la línea de comandos, aunque como es nuestro caso, no se utilice. Si no se han comprendido muy bien todos estos conceptos no importa, de momento. Hay una regla sencilla que nunca falla: El método main() siempre se declara de la misma forma: public static void main(String argumentos[]) La instrucción que realmente realiza el trabajo efectivo de nuestro programa es la siguiente: System.out.println("hola, mundo"); Este línea indica que se va a ejecutar el método println(), encargado de mostrar un valor a través de la salida estándar (en nuestro caso, un String) y después realizar un retorno de carro y nueva línea. Este método pertenece al atributo out. Este atributo se encuentra incluido dentro de la clase System. Como curiosidad (de momento), cabe mencionar que esta clase es static (no hemos declarado ningún objeto de la clase System). ¿Un poco complicado para simplemente mostrar un mensaje en pantalla? Es posible que sí lo sea para aquellos que aún no conocen la programación orientada a objetos, pero una vez conocidos y asimilados los conceptos de la POO (Programación Orientada a Objetos) el programa es bastante sencillo y lógico. Para aquellos que conozcan C++ pensarán que es bastante parecido a lo que habrían escrito en su "lenguaje favorito". Este colectivo comprobará que es mucho más fácil que C y tiene algunas ventajas. Después de haber tomado contacto con Java, vamos a describir los elementos que componen el lenguaje.