CodeGym /Cursos /Sintaxis de Java /¿Qué es un compilador?

¿Qué es un compilador?

Sintaxis de Java
Nivel 0 , Lección 5
Disponible
image-es-00-18

«Hola, Amigo. Soy el profesor Hans Noodles, jefe del Consejo Científico de la Galactic Rush, y también superviso nuestros esfuerzos para enseñarte a programar en Java».

«Hola, profesor Noodles».

«Quiero explicarte por qué Java es un lenguaje de programación tan bueno».

«Escucharás más de una vez que la principal ventaja de Java reside en su independencia de la plataforma. ¿Qué es eso y para qué sirve?, te preguntarás. Déjame dar un pequeño rodeo para explicártelo».

«Una ordenador solo puede ejecutar los comandos numéricos más simples. Cuando adiestramos a los perros, usamos órdenes como “Ven”, “Salta”, etc. para conseguir que el perro haga lo que queremos».

«En el caso de los ordenadores, los números son como esas órdenes. Cada comando está representado por un cierto número o código (a veces llamado código máquina)».

«No obstante, es muy difícil escribir un programa usando solo números, así que la gente inventó los lenguajes de programación y los compiladores. Un lenguaje de programación pueden comprenderlo tanto los humanos como los compiladores. Un compilador es un programa especial que convierte en código máquina un programa escrito en un lenguaje de programación».

«El programador normalmente escribe su programa en un lenguaje de programación y luego ejecuta un compilador, que convierte los archivos de código de programa escritos por el programador en un solo archivo de código máquina: el programa final (compilado)».

  • Programa en C++
  • Compilador
  • Código máquina

«El ordenador puede ejecutar inmediatamente el programa resultante, pero la mala noticia es que el código del programa final depende en gran medida del procesador y del sistema operativo. Esto significa que un programa compilado para Windows no funcionará en un móvil Android, por ejemplo».

«Entonces, si escribo un programa y lo compilo para Android, ¿no funcionará en Windows?».

«Así es».

«Ya veo».

«Sin embargo, Java adopta una estrategia mucho más innovadora».

  • Programa en Java
  • Compilador de Java
  • Código especial independiente de la plataforma (bytecode)
  • JVM
  • Código máquina

«Un compilador de Java no compila todas las clases en un programa de código máquina. Por el contrario, compila cada clase de forma independiente y, lo que es más, no las convierte en código máquina, sino en un código intermedio especial (conocido como bytecode). El bytecode se compila en código máquina cuando se inicia el programa».

«¿Y entonces quién compila el programa en código máquina cuando se está ejecutando?».

«De eso se encarga un programa especial llamado Java virtual machine (JVM), que debe iniciarse antes de ejecutar un programa en bytecode. La JVM compilará el bytecode en código máquina antes de ejecutar el programa».

«Muy interesante, pero ¿para qué hace falta eso?».

«Es una estrategia muy versátil y uno de los motivos de la preponderancia de Java».

«Esta solución permite que los programas escritos en Java se ejecuten en prácticamente cualquier dispositivo: ordenadores, teléfonos inteligentes, cajeros automáticos, tostadoras o incluso tarjetas de crédito».

«¡Impresionante!».

«Esta estrategia reporta muchas ventajas. Por eso todos los programas de Android están también escritos en Java. Gracias al rápido crecimiento de la industria de la telefonía móvil, Java domina las siguientes áreas de programación:

1) Empresarial: grandes aplicaciones orientadas a servidores para bancos, corporaciones, fondos de inversión, etc.

2) Móviles: desarrollo para móviles (teléfonos inteligentes, tabletas), gracias a Android.

3) Web: aunque el lenguaje PHP lidera en este segmento, Java se ha afianzado con una respetable presencia en el mercado.

4) Big Data (macrodatos): computación distribuida en clústeres que constan de miles de servidores.

5) Dispositivos inteligentes: programas para hogares inteligentes, dispositivos electrónicos, frigoríficos de IoT, etc.».

«Java no es solo un lenguaje, sino una especie de ecosistema: millones de módulos listos para utilizar que puedes usar en tu programa; miles de comunidades en Internet y foros donde puedes obtener ayuda o asesoramiento».

«Cuantos más programas en Java escribas, más respuestas encontrarás a la pregunta “¿Por qué en Java?”. Eso es todo por hoy».

«Gracias, profesor. Ha sido realmente interesante e inspirador».

Comentarios (16)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Leonardo Marcillo Nivel 4, Quito, Ecuador
25 enero 2024
gracias profesor por la explicación
Apreade Nivel 1
29 diciembre 2023
acabo de aprender que esto se usa en tarjetas e incluso heladeras, wao
Raquel Martinez Nivel 4, Mexico
25 septiembre 2023
Interesante y seguro que es pregunta de entrevista laboral. ¿Qué es la JVM?
noah sabater Nivel 1, Romania
21 marzo 2023
De chill
camilo esteve Nivel 1, Romania
21 marzo 2023
holaa me gusta :)
Miguel Garcia Nivel 2, Mexico
22 febrero 2023
Muy amena la explicación, llevo tiempo tratando de entender y aquí la solucion.
Anonymous #11273841 Nivel 2, Spain
2 febrero 2023
Es increíble como estoy entendiendo esto de la programación en java, cuando llevo meses intentándolo sin obtener este mismo resultado, felicito al quipo que esta detrás de todo esto, están haciendo que me enamore de la programación, ya me había desinflado y hoy estoy feliz de entender y aprender a programar, muchas gracias...
James Gomez Nivel 1, Medellin, Colombia
7 enero 2023
La mejor explicaciòn sobre la JVM que he visto.
RavnMaks Nivel 1, Argentina
29 julio 2022
muy buena la explicación!
Daniel Diaz Nivel 1, Spain
6 julio 2022
Que bien me está hiendo todo con la historieta, el humor y las explicaciones claras. Felicito a todo el equipo que hay detrás de todo esto, mis más sinceros agradecimientos, gracias a esto estoy empezando a realizar un sueño. Suerte a todos y no lo dejéis!