Unidad 3 Parte 2

35
UNIDAD 3 ANALIZADOR LÉXICO

description

ni cojonuda idea

Transcript of Unidad 3 Parte 2

Page 1: Unidad 3 Parte 2

UNIDAD 3ANALIZADOR LÉXICO

Page 2: Unidad 3 Parte 2

3.2 USO DE BÚFER EN LA ENTRADA.

Buffer: Memoria de almacenamiento temporal de información que permite transferir los datos entre unidades funcionales con características de transferencia diferentes.

Page 3: Unidad 3 Parte 2

PORQUE USAR BUFER EN LA ENTRADA DE DATOS.

Debido al tiempo requerido para procesar caracteres y al extenso número de caracteres que se deben procesar durante la compilación de un programa fuente extenso, se han desarrollado técnicas especializadas de uso de búferes para reducir la cantidad de sobrecarga requerida en el procesamiento de un solo carácter de entrada.

Page 4: Unidad 3 Parte 2

CADENAS Y LENGUAJES.

Un alfabeto es un conjunto finito de símbolos.. (tokens)

Una cadena sobre un alfabeto es una secuencia finita de símbolos que se extraen de ese alfabeto. Nuestro código.

Un lenguaje es cualquier conjunto contable de cadenas sobre algún alfabeto fijo. El lenguaje de programación.

Page 5: Unidad 3 Parte 2
Page 6: Unidad 3 Parte 2

ESTRUCTURA BÁSICA DE JAVA.

Page 7: Unidad 3 Parte 2

CENTINELAS

Page 8: Unidad 3 Parte 2

QUE HACE EL CENTINELA

Page 9: Unidad 3 Parte 2

OPERACIONES EN LENGUAJES

En el análisis léxico, las operaciones más importantes en los lenguajes son la unión, la concatenación y la cerradura,

Page 10: Unidad 3 Parte 2

CONCATENACIÓN

La concatenación de lenguajes es cuando se concatenan todas las cadenas que se forman al tomar una cadena del primer lenguaje y una cadena del segundo lenguaje, en todas las formas posibles.

Page 11: Unidad 3 Parte 2

UNIÓN DE LENGUAJES

La unión es la operación familiar que se hace con los conjuntos.

Page 12: Unidad 3 Parte 2

BIFURCACIONES EN LOS LENGUAJES.

cambios en la estructura cualitativa o topológica de una familia determinada.

Page 13: Unidad 3 Parte 2

RECONOCIMIENTO DE TOKENS

Page 14: Unidad 3 Parte 2

FORMAS DE MANEJAR LAS PALABRAS RESERVADAS

Instalar las palabras reservadas en la tabla de símbolos desde el principio. Un campo de la entrada en la tabla de símbolos indica que estas cadenas nunca serán identificadores ordinarios, y nos dice qué token representan.

Page 15: Unidad 3 Parte 2

FORMAS DE MANEJAR LAS PALABRAS RESERVADAS

Crear diagramas de transición de estados separados para cada palabra clave.

Page 16: Unidad 3 Parte 2

ANALIZADOR LÉXICO BASADO EN DIAGRAMAS DE TRANSICIÓN DE ESTADO.

Page 17: Unidad 3 Parte 2

ESTRUCTURAS DE PROGRAMACIÓN EN JAVA.

Las estructuras de control se dividen en tres categorías:          Secuencial          Condicional o Selectiva          Iterativa o Repetitiva.

Page 18: Unidad 3 Parte 2
Page 19: Unidad 3 Parte 2

2.ESTRUCTURA CONDICIONAL.

La estructura condicional determina si se ejecutan unas instrucciones u

otras según se cumpla o no una determinada condición.

En java la estructura condicional se implementa mediante:

-         Instrucción if.

-         Instrucción switch.

-         Operador condicional ? 

Page 20: Unidad 3 Parte 2

2.1 INSTRUCCION ifPuede ser del tipo:-         Condicional simple: if-         Condicional doble: if ... else ...-         Condicional múltiple: if .. else if .

Page 21: Unidad 3 Parte 2

Condicional simple: se evalúa la condición y si ésta se cumple se ejecuta una determinada acción o grupo de acciones. En caso contrario se saltan dicho grupo de acciones.

         if(expresión_booleana){             instrucción 1             instrucción 2

            .......          }

Page 22: Unidad 3 Parte 2

Condicional doble: Se evalúa la condición y si ésta se cumple se ejecuta una determinada instrucción o grupo de instrucciones. Si no se cumple se ejecuta otra instrucción o grupo de instrucciones.

           if(expresión booleana){              instrucciones 1           }           else{                  instrucciones 2           }

Page 23: Unidad 3 Parte 2

Condicional múltiple: Se obtiene anidando sentencias if ... else. Permite construir estructuras de selección más complejas.

if (expresion_booleana1)instruccion1;else if (expresion_booleana2)instruccion2;       elseinstruccion3;

Page 24: Unidad 3 Parte 2
Page 25: Unidad 3 Parte 2
Page 26: Unidad 3 Parte 2

3.  ESTRUCTURA ITERATIVA O REPETITIVA Permiten ejecutar de forma repetida un bloque específico de instrucciones.Las instrucciones se repiten mientras o hasta que se cumpla una determinada condición. Esta condición se conoce como condición de salida.Tipos de estructuras repetitivas:-               ciclo while-               ciclo do – while-               ciclo for

Page 27: Unidad 3 Parte 2

ESTRUCTURA DE WHILE.

Page 28: Unidad 3 Parte 2

3.2 CICLO DO – WHILELas instrucciones se ejecutan mientras la condición sea cierta.La condición se comprueba al final del bucle por lo que el bloque de instrucciones se ejecutarán al menos una vez. Esta es la diferencia fundamental con la instrucción while. Las instrucciones de un bucle while es posible que no se ejecuten si la condición inicialmente es falsa. 

Page 29: Unidad 3 Parte 2

ESTRUCTURA DEL DO-WHILE

Page 30: Unidad 3 Parte 2

3.3 CICLO FOR

Hace que una instrucción o bloque de

instrucciones se repitan un número

determinado de veces mientrasse

cumpla la condición.

Page 31: Unidad 3 Parte 2

ESTRUCUTRA DEL FOR

Page 32: Unidad 3 Parte 2

3.4 BUCLES INFINITOS EN JAVAJava permite la posibilidad de construir bucles infinitos, los cuales se ejecutarán indefinidamente, a no ser que provoquemos su interrupción. Tres ejemplos:for(;;){    instrucciones}for(;true;){     instrucciones}while(true){        instrucciones}

Page 33: Unidad 3 Parte 2

CONVERSIONES DE DATOS.

Para pasar de String a un valor numérico, usamos el método parse de cada clase de variable primitiva. Veremos unos ejemplos.

Page 34: Unidad 3 Parte 2

         String numString="1234";        System.out.println("String: "+numString);         long numLong=Long.parseLong(numString);        System.out.println("long: "+numLong);         int numInt=Integer.parseInt(numString);        System.out.println("int: "+numInt);         short numShort=Short.parseShort(numString);        System.out.println("short: "+numShort);         

Page 35: Unidad 3 Parte 2

byte numByte=Byte.parseByte(numString);        System.out.println("byte: "+numByte);         double numDouble=Double.parseDouble(numString);        System.out.println("double: "+numDouble);         float numFloat=Float.parseFloat(numString);        System.out.println("Float: "+numFloat);