Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Analizador Lexico

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

FACULTAD DE INGENIERÍA, PRODUCCIÓN Y

SERVICIOS

ESCUELA DE INGENIERÍA DE SISTEMAS

TEORÍA DE LA COMPUTACIÓN

Docente:
● EDITH RIVERO TUPAC DE LOZANO

Estudiantes:
● DIEGO MOISÉS CHUCTAYA RUIZ
● SANTOS ADILSON ESTEBA CRUZ

Laboratorio: C

2021
ANALIZADOR LÉXICO
Nombre del Lenguaje:
Java

Descripción del lenguaje, gramática, palabras reservadas:

Descripción del lenguaje

Java es un lenguaje de programación y una plataforma informática comercializada por


primera vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web que no
funcionarán a menos que tenga Java instalado y cada día se crean más. Java es rápido, seguro
y fiable. Desde portátiles hasta centros de datos, desde consolas para juegos hasta súper
computadoras, desde teléfonos móviles hasta Internet, Java está en todas partes.

Gramática

Un programa Java puede considerarse una colección de una serie de objetos, y


estos objetos trabajan juntos llamando a los métodos de los demás. A
continuación, se presentan brevemente los conceptos de clases, objetos,
métodos y variables de instancia.
● Objeto: Un objeto es una instancia de una clase, con estado y
comportamiento. Por ejemplo, un perro es un objeto, su estado
incluye: color, nombre, raza; comportamiento: menear, ladrar,
comer, etc.
● clase: Una clase es una plantilla que describe el comportamiento y
el estado de una clase de objetos.
● método: El método es el comportamiento, una clase puede tener
muchos métodos. Las operaciones lógicas, la modificación de datos
y todas las acciones se completan en el método.
● Instancia variable: Cada objeto tiene una variable de instancia
única y el estado del objeto está determinado por el valor de estas
variables de instancia.

Gramática básica

Al escribir programas Java, debe prestar atención a los siguientes puntos:


● Distingue mayúsculas y minúsculas: Java distingue entre
mayúsculas y minúsculas, lo que significa que el identificador
Hello y hello son diferentes.
● Nombre de la clase: Para todas las clases, la primera letra del
nombre de la clase debe estar en mayúscula. Si el nombre de la
clase consta de varias palabras, la primera letra de cada palabra
debe escribirse en mayúscula, por ejemplo, MyFirstJavaClass.
● Nombre del método: Todos los nombres de métodos deben
comenzar con una letra minúscula. Si el nombre del método
contiene varias palabras, escriba en mayúscula la primera letra de
cada palabra subsiguiente.
● Nombre del archivo de origen: El nombre del archivo de origen
debe ser el mismo que el nombre de la clase. Al guardar el archivo,
debe usar el nombre de la clase como nombre del archivo (recuerde
que Java distingue entre mayúsculas y minúsculas) y el sufijo del
nombre del archivo es .java. (Si el nombre del archivo y el nombre
de la clase no son el mismo, se producirá un error de compilación).
● Entrada del método principal: Todos los programas Java son
creados por public static void main(String args[])El método
comienza a ejecutarse.

Palabras reservadas

Las palabras reservadas de Java se enumeran a continuación. Estas palabras reservadas no se


pueden utilizar para los nombres de constantes, variables ni identificadores.

Palabra Descripción
clave
abstract Métodos abstractos, modificadores de clases abstractas.

assert Afirmar si se cumple la condición

boolean Tipo de datos booleanos

break Saltar del segmento de código de etiqueta o bucle

byte Tipo de datos firmados de 8 bits

case una condición de la declaración de cambio

catch Combinar con intentar capturar información de excepción

char Tipo de datos de caracteres Unicode de 16 bits

class Clase de definición

const No usado

continue No ejecute el resto del cuerpo del bucle

default Rama predeterminada en la declaración de cambio


do Declaración de bucle, el cuerpo del bucle se ejecutará al menos una vez

double Número de coma flotante de precisión doble de 64 bits

else La rama se ejecuta cuando no se cumple la condición if

enum Tipo enumerado

extends Indica que una clase es una subclase de otra clase

final Indica que un valor no se puede cambiar después de la inicialización.

significa que el método no se puede anular o que una clase no puede tener
subclases

finally Está diseñado para completar la ejecución del código, principalmente por
la robustez e integridad del programa, y ejecutar el código
independientemente de si se produce una excepción.

float Número de coma flotante de precisión simple de 32 bits

for para declaración de bucle

goto No usado
if Declaraciones condicionales

implement Indica que una clase implementa la interfaz.


s

import Importar clase

instanceof Prueba si un objeto es una instancia de una determinada clase

int Entero de 32 bits

interface Interfaz, un tipo abstracto, solo la definición de métodos y constantes

long Entero de 64 bits

native El método de representación se implementa mediante código que no es


Java

new Asignar una nueva instancia de clase

package Una serie de clases relacionadas forman un paquete

private Representa campos privados, métodos, etc., a los que solo se puede
acceder desde dentro de la clase.
protected Indica que solo se puede acceder al campo a través de la clase o sus
subclases

subclases u otras clases en el mismo paquete

public Representa un atributo o método común

return Valor de retorno del método

short 16 dígitos

static Indica definido a nivel de clase, compartido por todas las instancias

strictfp Las comparaciones de coma flotante utilizan reglas estrictas

super Representa la clase base

switch Seleccionar declaración

synchroni Representa un bloque de código al que solo puede acceder un hilo a la vez
zed

this Indica llamar a la instancia actual

o llama a otro constructor


throw Lanzar una excepción

throws Definir las excepciones que puede generar el método.

transient Modificar campos para no serializar

try Indica que el bloque de código necesita manejar excepciones o cooperar


con finalmente para indicar que si se lanza una excepción o no se ejecuta

void El método de la marca no devuelve ningún valor.

volatile Se puede acceder al campo de etiqueta mediante varios subprocesos al


mismo tiempo sin sincronización

while while loop

Variables y tipos de datos

● Variables de instancia (campos no estáticos), son las variables que están definidas
dentro de un objeto pero que no tienen un modificador de estáticas (static). Suelen llevar
un modificador de visibilidad (public, private, protected) definiéndose.
● Variables de clase (campos estáticos), son aquellas variables que están precedidas del
modificador static. Esto indica que solo hay una instancia de dicha variable. Es decir,
aunque tengamos N objetos de la clase, la variable estática solo se instancia una vez.
● Variables locales, son variables temporales cuyo ámbito de visibilidad es el método
sobre el que están definidas. No pueden ser accedidas desde otra parte del código. Se
las distingue de las variables de instancia ya que estas no llevan modificadores de
visibilidad delante.
● Parámetros, son las variables recibidas como parámetros de los métodos. Su visibilidad
será el código que contenga dicho método.

Construcción del analizador léxico para el lenguaje

package Analizador;
package java.util.*;

public class Analizador{


public static void main(String []args){
System.out.println("Introduce cadena");
Scanner sc = new Scanner(System.in);//declaracion de variable
String entrada;
char ch;
int estado;

entrada= sc.nextLine(); //inicializacion de variables


ch=entrada.charAt(0);
estado=1;
int pointer=0;

while(estado==1 || estado==2){
switch(estado){
case 1:
System.out.print(ch);//imprime letra

if(Character.isLetter(ch)){
estado++;
pointer++;
ch=entrada.charAt(pointer);

}
else{
estado=0;
}
break;

case 2:
System.out.print(ch);//imprime letra

if(Character.isLetter(ch)|| Character.isDigit(ch)){
pointer++;// Avanza en la entrada

try{
ch=entrada.charAt(pointer);
}catch(IndexOutOfBoundsException ex){
estado=3; //estado aceptacion
}
}
else{
estado=3;
}
break;
}
}
if(estado==3){
System.out.print("Cadena Aceptada");
}
else{
System.out.print("Cadena Rechazada");
}

}
}
}
Cadena Aceptada

Cadena Rechazada

También podría gustarte