Un programa en Java no se describe en lenguaje coloquial; más bien, un conjunto de reglas y una gramática definen la sintaxis y la semántica. En esta publicación, exploremos estos elementos.
Primero, hablemos del conjunto de reglas que rigen la Lenguaje de programación Java (la gramática y la sintaxis) y observe la codificación Unicode, los tokens y los identificadores, entre otras cosas. Al nombrar un método, por ejemplo, puede elegir entre una gran cantidad de caracteres; el juego de caracteres se llama léxico.
La sintaxis de un programa Java define los tokens y por lo tanto forma el vocabulario. Sin embargo, los programas escritos correctamente no son necesariamente correctos. El termino semántica por lo tanto, resume el significado de un programa sintácticamente correcto. La semántica determina lo que hace el programa. El orden de abstracción es el siguiente: léxico, sintaxis y semántica. El compilador realiza estos pasos antes de poder generar el código de bytes.
A simbólico es una unidad léxica que proporciona al compilador los componentes básicos del programa. Basado en la gramática de un idioma, el compilador reconoce qué secuencias de caracteres forman un token. Para los identificadores, por ejemplo, este reconocimiento significa «Tomar los siguientes caracteres siempre que una letra sea seguida solo por letras o dígitos». Por ejemplo, un número como 1982 forma un token según la siguiente regla: «Lee los dígitos hasta que no siga ningún dígito». Para comentarios, las combinaciones /* y */ formar una ficha.
Desafortunadamente, en C(++), una expresión como *S t no se analizará como se esperaba. Solo un espacio entre el signo de división y el asterisco «ayuda» al analizador a reconocer la división deseada.
El compilador debe poder distinguir los tokens entre sí. Por esta razón, usamos separadoresque incluye espacio en blanco caracteres como espacios, tabulaciones, saltos de línea y saltos de formulario. Estos caracteres no tienen otro significado que ser separadores. Por lo tanto, puede colocar cualquier número de espacios en blanco entre los tokens; cualquier número de espacios es válido entre tokens. Y dado que no tiene que ser tacaño con ellos, los espacios en blanco pueden aclarar tremendamente una sección de un programa. Los programas son más legibles cuando están formateados con mucho aire.
Además de los separadores, se crean 12 tokens a partir de caracteres ASCII, que se definen como separadores:
( ) { } [ ] ; , . … @ ::
Sin embargo, lo siguiente es cualquier cosa menos bueno para leer, aunque el compilador lo acepta:
2
Java codifica textos por medio de Caracteres Unicode. A cada carácter se le asigna un valor numérico único (punto de código), de modo que la “A” mayúscula, por ejemplo, se ubica en la posición 65. El juego de caracteres Unicode incluye los caracteres ISO-US-ASCII1 del 0 al 127 (hexadecimal 0x00 a 0x7f, es decir, 7 bits) y la codificación extendida según ISO 8859-1 (Latin-1), que suma caracteres del 128 al 255.
Para variables (y por lo tanto constantes), métodos, clases e interfaces, identificadores se asignan para identificar posteriormente los módulos correspondientes en el programa. Los datos están entonces disponibles bajo variables. Los métodos son las subrutinas en los lenguajes de programación orientada a objetos (OOP), y las clases son los componentes básicos de los programas orientados a objetos (OO).
Un identificador es una secuencia de caracteres que puede tener una longitud casi arbitraria (la longitud solo es teóricamente fija). Estos caracteres son elementos del juego de caracteres Unicode y cada carácter es importante para la identificación. Por lo tanto, un identificador que tiene 100 caracteres también debe especificarse siempre correctamente con los 100 caracteres. Algunos compiladores de C y FORTRAN son un poco más generosos a este respecto y evalúan solo los primeros dígitos.
por ejemplo, yoEn el siguiente programa Java, los identificadores están en negrita:
class Application {
public static void main( String[] args ) {
System.out.println( "Hello World" );
}
}
Cadena está en negrita porque Cadena es una clase y no un tipo de datos incorporado como En t. Mientras que la Cadena la clase recibe un tratamiento preferencial en Java, y un signo más puede concatenar Cadenas juntos, sigue siendo un tipo de clase
.
Cada identificador de Java es una secuencia de Letras java y dígitos Java, donde el identificador debe comenzar con una letra de Java. Las letras de Java incluyen no solo nuestras letras latinas del rango «A» a «Z» (también «a» a «z»), sino que también incluyen muchos otros caracteres del alfabeto Unicode, como el guión bajo, caracteres de moneda, como los caracteres para dólar ($), euro (€) y yen (¥), y letras griegas y árabes. Incluso si es posible una gran cantidad de caracteres comodín como letras de identificación, la programación debe realizarse con nombres de identificación en inglés. En este punto, debemos enfatizar una vez más que Java es estrictamente sensible a mayúsculas y minúsculas.
La siguiente tabla enumera algunos identificadores válidos.
Los identificadores no válidos, por otro lado, incluyen los siguientes:
Nota: En los programas de Java, los nombres de los identificadores a menudo se forman a partir de palabras compuestas de una descripción. Por ejemplo, en una oración como «abrir archivo de solo lectura», se eliminan los espacios y las palabras que siguen a la primera palabra comienzan con letras mayúsculas. Por lo tanto, la oración de muestra se convierte en «openFileReadOnly». Los lingüistas se refieren a una letra mayúscula en medio de las palabras como mayúscula interna. A los programadores y a los expertos en TI, por otro lado, les gusta hablar sobre la Notación CamelCase, a causa de los camellos de dos jorobas. La notación de mayúsculas y minúsculas se vuelve difícil con abreviaturas en mayúsculas, como HTTP o URL; en estos casos, las bibliotecas de Java no son coherentes, por lo que los nombres de clases como Conexión Http o Conexión HTTP son aceptables.
Un literal es una expresión constante. Existen varios tipos de literales:
por ejemplo, yoEn el siguiente programa Java, los tres literales están en negrita:
class Application {
public static void main( String[] args ) {
System.out.println( "Hello World" );
System.out.println( 1 + 2.65 );
}
}
Ciertas palabras no están permitidas como identificadores porque el compilador las trata especialmente como palabras clave. Las palabras clave determinan el «lenguaje» de un compilador y no puede agregar sus propias palabras clave al programar.
por ejemplo kLas palabras clave están en negrita en la siguiente lista:
class Application {
public static void main( String[] args ) {
System.out.println( "Hello World" );
}
}
Las cadenas de la siguiente tabla son palabras clave y, por lo tanto, no se pueden usar como nombres de identificador en Java.
Aunque Java no utiliza actualmente las palabras marcadas con †, las variables con este nombre no se pueden declarar. Nos referimos a estas palabras clave como palabras clave reservadas porque están reservados para uso futuro. Sin embargo, no prevemos un momento en que ir a se usará alguna vez.
Insertar nuevas palabras clave puede romper el código del programa anterior. Entonces, hace unos años, Oracle agregó una nueva forma de extender la sintaxis: identificadores restringidos. variable, rendiry registro son ejemplos de tales identificadores restringidos. Además de las palabras clave, los literales verdadero, falsoy nulo tampoco están disponibles para los identificadores.
Cuando el compilador traduce programas Java, comienza con un examen léxico del código fuente. Ya hemos aprendido acerca de los elementos centrales, pero vamos a resumir mirando el siguiente programa simple:
class Application {
public static void main( String[] args ) {
String text = "Hello World";
System.out.println( text );
System.out.println( 1 + 2.65 );
}
}
El compilador leerá todos los comentarios y los delimitadores llevarán al compilador de un token a otro. Los siguientes tokens se pueden identificar en el programa:
La programación no se trata solo de expresar el algoritmo correcto en un lenguaje, sino también de formular nuestros pensamientos de una manera comprensible. Esta articulación se logra, por ejemplo, dando nombres significativos a los elementos del programa, como clases, métodos y variables. Los nombres de clase que se explican por sí mismos ayudan considerablemente durante el desarrollo. Pero el concepto de solución y el algoritmo no necesariamente se vuelven más claros incluso con los nombres de variables más bellos. Para personas externas (y después de meses, tal vez ustedes mismos) para comprender rápidamente el concepto de solución y luego ampliar o modificar el programa, puede escribir comentarios en el código fuente. Solo ayudan a los humanos a leer el programa y no tienen ningún efecto en su procesamiento.
En Java, puede formular comentarios de las tres formas siguientes:
Veamos un ejemplo donde aparecen los tres tipos de comentarios:
/*
* This source code is public domain.
*/
// Magic. Do not touch.
/**
* @author Christian Ullenboom
*/
class DoYouHaveAnyCommentsToMake { // TODO: Rename later
// When I wrote this, only God and I understood what I was doing
// Now, only God knows
public static void main( String[] args /* Command line argument */ ) {
System.out.println( "Sleeps all /*night*/ and he //works// all day" );
}
}
Para el compilador, un comentario es un token, por lo que 1/*2*/3 no da la ficha 13pero las dos fichas 1 y 3. Pero simplemente hablando, para el compilador, un archivo con comentarios se ve igual que sin comentarios, es decir, como clase DoYouHaveAnyCommentsToMake {public static void main( String[] args ) { System.out.println(«Duerme toda /*la noche*/y //trabaja// todo el día» );} }.
La salida de la consola es Duerme toda /*noche*/ y él //trabaja// todo el día y muestra que no existen comentarios dentro de los literales de cadena; los simbolos /*, */y // pertenecen a la cadena.
El código de bytes contiene exactamente lo mismo: el compilador descarta todos los comentarios; no se incluyen comentarios en el código de bytes.
Todos los comentarios y observaciones deben escribirse en inglés para facilitar la lectura a los miembros del proyecto de otros países.
Los comentarios de Javadoc generalmente documentan el «qué» y los comentarios de bloque documentan el «cómo».
Para comentarios generales, debe utilizar el // caracteres, lo que ofrece dos ventajas:
Prensado (Control) + (/) comenta una línea o bloque dentro y fuera de IntelliJ. Pero tenga en cuenta que la barra diagonal (/) debe ser seleccionado a través del teclado numérico en su teclado! Si se seleccionan varias líneas, la combinación de teclas comenta todas las líneas seleccionadas con comentarios de línea. En una línea comentada, otra pulsación de (Control) + (/) recupera los comentarios de una línea.
Nota del editor: Esta publicación ha sido adaptada de una sección del Java: la guía completa por Christian Ullenboom.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073