PresentacionMacrogrupo1

Páginas: 9 (2019 palabras) Publicado: 9 de julio de 2015
Analizador Léxico, Sintáctico,
Semántico y Código Intermedio =
Compilador.
Macrogrupo 1.
Grupo 1
Grupo 3
Grupo 4
Grupo 11

Analizador Léxico.
4 scanners:
◦ 2 implementados a mano (grupos 4 y 11)
◦ 1 implementado con Coco/R (grupo 3)
◦ 1 implementado con JFlex (grupo 1)

Se elige el scanner implementado con
JFlex (Grupo 1).
◦ Comodidad a la hora de cambiar código.
◦ Fácil integración con el SLK.◦ Experiencias anteriores.

Analizador Léxico.
Tipos de tokens generados:
Palabras Reservadas
Atributo: Puntero a la Tabla de Símbolos
Ejemplos: FOR, IF, WITH
Identificadores
Atributo: Puntero a la Tabla de Símbolos
Ejemplos: variable, nota, casa
Operadores comparación
Atributo: Tipo Enumerado
Ejemplos: <,<=,>,>=,!=,=
Operador Asignación
Atributo: Nada
Ejemplos: :=
Operador Unitario
Atributo:Enumerado

Analizador Léxico.
Tipos de tokens generados:
Operadores Aditivos
Atributo: Tipo Enumerado
Ejemplos: +, Operadores Multiplicativos
Atributo: Tipo Enumerado
Ejemplos: *, /
Número Entero (octal y hexadecimal)
Atributo: Valor numérico
Ejemplos: 1, 56
Número Real
Atributo: Valor numérico
Ejemplos: 1.2, 56.7893
EOF

Analizador Léxico.
Tipos de tokens generados:
Cadenas de caracteres
Atributo:Puntero a la tabla de símbolos
Ejemplos: "Hola mundo", "adios"
Carácter (en octal)
Atributo: Carácter
Ejemplos: a, b, z, 3
Puntuación
Atributo: Tipo enumerado
Ejemplos: ;, (, ]
Función predefinida
Atributo:Tipo enumerado
Procedimiento predefinido
Atributo:Tipo enumerado

Analizador Léxico.

Analizador Léxico.
Herramienta utilizada: JFlex.
JFlex es un generador de scanners para Java,
implementadotambién en Java, que genera un
analizador léxico de manera rápida y sencilla,
independientemente de la plataforma que
utilicemos a la hora de programar.

Recibe archivo .flex

Genera AFD.

Analizador Léxico.
Herramienta utilizada: JFlex.
Se utilizan:
- PATRONES
- ESTADOS
- FUNCIONES
- Código Java empotrado

Nuestro Archivo .flex

Diseño de la tabla de
símbolos

Tabla hash por cada ámbito
conestructura de árbol

Diseño de la tabla de
símbolos
MODULE mod0;
VAR a : INTEGER;
MODULE mod1
VAR b,c: INTEGER
EXPORT c;
PROCEDURE incrementar (VAR &c : INTEGER);
BEGIN
b := 1 + c;
END p;
BEGIN
incrementar(c);
END mod1.
BEGIN
a := c;
END mod0.

Lista de exportadas
null

mod0
Lexema

Tipo

a

INTEGE
R

Valor

Conteni
do

contine
nte

Nº args

Tipo
args

Paso
args

Mod
padre

null

null

0

NullNull

Null

Diseño de la tabla de
símbolos
MODULE mod0;
VAR a : INTEGER;
MODULE mod1
VAR b,c: INTEGER
EXPORT c;
PROCEDURE incrementar (VAR &c : INTEGER);
BEGIN
b := 1 + c;
END p;
BEGIN
incrementar(c);
END mod1.
BEGIN
a := c;
END mod0.

Lista de exportadas
null

mod0
Lexema

Tipo

a

INTEGE
R

mod1

MODUL
E

Valor

Conteni
do

contine
nte

Nº args

Tipo
args

Paso
args

Mod
padre

null

null

0

NullNull

Null

Null

0

Null

Null

Null

Diseño de la tabla de
símbolos
MODULE mod0;
VAR a : INTEGER;
MODULE mod1
VAR b,c: INTEGER
EXPORT c;
PROCEDURE incrementar (VAR &c : INTEGER);
BEGIN
b := 1 + c;
END p;
BEGIN
incrementar(c);
END mod1.

Puntero a la
tabla de
simbolos de
mod1

BEGIN
a := c;
END mod0.

Lista de exportadas
null

mod0
Lexema

Tipo

Valor

Conteni
do

contine
nte

Nº args

Tipoargs

Paso
args

Mod
padre

a

INTEGE
R

Null

Null

null

0

Null

Null

Null

mod1

MODUL
E

Null

Null

0

Null

Null

Null

Diseño de la tabla de
símbolos
MODULE mod0;
VAR a : INTEGER;
MODULE mod1
VAR b,c: INTEGER
EXPORT c;
PROCEDURE incrementar (VAR &c : INTEGER);

Puntero a la
tabla de
simbolos de
mod0

BEGIN
b := 1 + c;
END p;
BEGIN
incrementar(c);
END mod1.

Puntero a la
tabla de
simbolosde
incrementar

BEGIN
a := c;

Lista de exportadas

END mod0.

{c}

mod1
Lexema

Tipo

Valor

Conteni
do

contine
nte

Nº args

Tipo
args

Paso
args

b

INTEGE
R

Null

Null

Null

0

Null

Null

c

INTEGE
R

Null

Null

Null

0

Null

Null

Increme
ntar

PROCE
DURE

Null

Null

1

{INTEG
ER}

{VALOR
}

Mod
padre

Diseño de la tabla de
símbolos
MODULE mod0;
VAR a : INTEGER;
MODULE mod1
VAR b,c:...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS