jueves, 5 de febrero de 2015

3.2 Aspectos léxicos.

3.2 Aspectos léxicos.
La sintaxis de un lenguaje define los elementos de dicho lenguaje y cómo se combinan para formar un programa. Los elementos típicos de cualquier lenguaje son los siguientes:
  1. Identificadores
  2. Tipos de datos
  3. Palabras reservadas.
  4. Variables y constantes.
  5. Operadores
  6. Comentarios

Identificadores.

Un identificador es un nombre que identifica a una variable, a un método o función miembro, a una clase. Todos los lenguajes tienen ciertas reglas para componer los identificadores:
  • Todos los identificadores han de comenzar con una letra, el carácter subrayado (_) o el carácter dollar ( $ ).
  • Puede incluir, pero no comenzar por un número.
  • No puede incluir el carácter espacio en blanco.
  • Distingue entre letras mayúsculas y minúsculas.
  • No se pueden utilizar las palabras reservadas como identificadores
Tipos de datos.
Tipo
Descripción
boolean
Tiene dos valores true o false.
char
Caracteres Unicode de 16 bits  Los caracteres alfa-numéricos son los mismos que los ASCII con el bit alto puesto a 0. El intervalo de valores va desde 0 hasta 65535 (valores de 16-bits sin signo). 
byte
Tamaño 8 bits.  El intervalo de valores va desde -27 hasta 27 -1 (-128 a 127)
short
Tamaño 16 bits.  El intervalo de valores va desde -215 hasta 215-1 (-32768 a 32767)
int
Tamaño 32 bits.  El intervalo de valores va desde -231 hasta 231-1 (-2147483648 a 2147483647)
long
Tamaño 64 bits. El intervalo de valores va desde -263 hasta  263-1 (-9223372036854775808 a 9223372036854775807)
float
Tamaño 32 bits. Números en coma flotante de simple precisión. Estándar IEEE 754-1985  (de 1.40239846e–45f a 3.40282347e+38f)
double
Tamaño 64 bits. Números en coma flotante de doble precisión. Estándar IEEE 754-1985. (de 4.94065645841246544e–324d  a 1.7976931348623157e+308d.)

 Palabras reservadas

En el siguiente cuadro se listan las palabras reservadas, aquellas que emplea el lenguaje Java, y que el programador no puede utilizar como identificadores. Algunas de estas palabras le resultarán familiares al programador del lenguaje C/C++. Las palabras reservadas señaladas con un arterisco (*) no se utilizan.
abstract
boolean
break
byte
byvalue*
case
cast*
catch
char
class
const*
continue
default
do
double
else
extends
false
final
finally
float
for
future*
generic*
goto*
if
implements
import
inner*
instanceof
int
interface
long
native
new
null
operator*
outer*
package
private
protected
public
rest*
return
short
satatic
super
switch
synchronized
this
throw
transient
true
try
var*
void
volatile
while


Las palabras reservadas se pueden clasificar en las siguientes categorías:
  • Tipos de datos: boolean, float, double, int, char
  • Sentencias condicionales: if, else, switch
  • Sentencias iterativas: for, do, while, continue
  • Tratamiento de las excepciones: try, catch, finally, throw
  • Estructura de datos: class, interface, implements, extends
  • Modificadores y control de acceso: public, private, protected, transient
  • Otras: super, null, this.

Variables

Una variable es un nombre que se asocia con una porción de la memoria del ordenador, en la que se guarda el valor asignado a dicha variable. Hay varios tipos de variables que requieren distintas cantidades de memoria para guardar datos en java se recomienda que la variable inicie con minúsculas así como los metodos.
class Circulo{
               
               double radio;
//...
}
 
 Las variables son uno de los elementos básicos de un programa, y se deben 
  • Declarar
  • Inicializar

Constantes

En programación, una constante es un valor que no puede ser alterado durante la ejecución de un programa.
Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos

Ejemplo

static final double PI=3.1416;

Operadores

Los operadores de Java se pueden dividir en las siguientes categorías:
a)       Aritméticos.
b)       De comparación y condicionales.
c)       De asignación.

A)   Aritméticos
Operador
Uso
Descripción
+
op1 + op2
Suma op1 y op2
-
op1 - op2
Resta op2 de op1
*
op1 * op2
Multiplica op1 por op2
/
op1 / op2
Divide op1 por op2
%
op1 % op2
Calcula el resto de dividir op1 entre op2

 

Operador
Uso
Descripción
++
op++
Incrementa op en 1; se evalúa al valor anterior al incremento
++
++op
Incrementa op en 1; se evalúa al valor posterior al incremento
--
op--
Decrementa op en 1; se evalúa al valor anterior al incremento
--
--op
Decrementa op en 1; se evalúa al valor posterior al incremento

 

B)   De Comparación y condicionales

Operador
Uso
Devuelve verdadero si
> 
op1 > op2
op1 es mayor que op2
>=
op1 >= op2
op1 es mayor o igual que op2
< 
op1 < op2
op1 es menor que op2
<=
op1 <= op2
op1 es menor o igual que op2
==
op1 == op2
op1 y op2 son iguales
!=
op1 != op2
op1 y op2 son distintos

 

Operador
Uso
Devuelve verdadero si...
&&
op1 && op2
op1 y op2 son ambos verdaderos, condicionalmente evalúa op2
&
op1 & op2
op1 y op2 son ambos verdaderos, siempre evalúa op1 y op2
||
op1 || op2
op1 o op2 son verdaderos, condicionalmente evalúa op2
|
op1 | op2
op1 o op2 son verdaderos, siempre evalúa op1 y op2
!
! op
op es falso

 

C)   De Asignación

Operador
Uso
Equivalente a 
+=
op1 += op2
op1 = op1 + op2
-=
op1 -= op2
op1 = op1 - op2
*=
op1 *= op2
op1 = op1 * op2
/=
op1 /= op2
op1 = op1 / op2
%=
op1 %= op2
op1 = op1 % op2
&=
op1 &= op2
op1 = op1 & op2

 

Comentarios

Un comentario es un texto adicional que se añade al código para explicar su funcionalidad, bien a otras personas que lean el programa, o al propio autor como recordatorio. Los comentarios son una parte importante de la documentación de un programa. Los comentarios son ignorados por el compilador, por lo que no incrementan el tamaño del archivo ejecutable; se pueden por tanto, añadir libremente al código para que pueda entenderse mejor.
La programación orientada a objetos facilita mucho la lectura del código, por lo que lo que no se precisa hacer tanto uso de los comentarios como en los lenguajes estructurados. En Java existen tres tipos de comentarios
  • Comentarios en una sola línea
  • Comentarios de varias líneas
  • Comentarios de documentación
Como podemos observar un comentario en varias líneas es un bloque de texto situado entre el símbolo de comienzo del bloque /*, y otro de terminación del mismo */. Teniendo encuentra este hecho, los programadores diseñan comentarios como el siguiente:
 /*--------------------------------|
|   (C) Angel Franco García        |
|   fecha: Marzo 1999              |
|   programa: PrimeroApp.java      |
|---------------------------------*/
Los comentarios de documentación es un bloque de texto situado entre el símbolo de comienzo del bloque /**, y otro de terminación del mismo */. El programa javadoc utiliza estos comentarios para generar la documentación del código.
/** Este es el primer programa de una
Serie dedicada a explicar los fundamentos del lenguaje Java */
Habitualmente, usaremos comentarios en una sola línea //, ya que no tiene el inconveniente de aprendernos los símbolos de comienzo y terminación del bloque, u olvidarnos de poner este último, dando lugar a un error en el momento de la compilación. En la ventana de edición del Entorno Integrado de Desarrollo (IDE) los comentarios se distinguen del resto del código por el color del texto.
public class PrimeroApp{
    public static void main(String[] args) {
//imprime un mensaje
        System.out.println("El primer programa");
    }
}
Un procedimiento elemental de depuración de un programa consiste en anular ciertas sentencias de un programa mediante los delimitadores de comentarios. Por ejemplo, se puede modificar el programa y anular la sentencia que imprime el mensaje, poniendo delante de ella el delimitador de comentarios en una sola línea.
        //System.out.println("El primer programa");
Al correr el programa, observaremos que no imprime nada en la pantalla.

Caracteres

En Java los caracteres no están restringidos a los ASCII sino son Unicode. Un carácter está siempre rodeado de comillas simples como 'A', '9', 'ñ', etc. El tipo de dato char sirve para guardar estos caracteres.
Un tipo especial de carácter es la secuencia de escape, similares a las del lenguaje C/C++, que se utilizan para representar caracteres de control o caracteres que no se imprimen. Una secuencia de escape está formada por la barra invertida (\) y un carácter. En la siguiente tabla se dan las secuencias de escape más utilizadas.

Carácter
Secuencia de escape
retorno de carro
\r
tabulador horizontal
\t
nueva línea
\n
barra invertida
\\