Análisis Léxico
TRADUCTORES
Análisis léxico
Profesor:Carlos A. Ruiz De La Cruz Melo
Correo: zorroculto69@hotmail.com
LEXICO
Definición
El léxico de un lenguaje natural o de
programación esta constituido por todas las
palabras y símbolos que lo componen.
En un lenguaje de programación el léxico
lo constituyen todos los elementos
individuales del lenguaje
TERMINOLOGIA
UNIDAD LÉXICA
Categoríasen que se clasifican las
cadenas de
caracteres válidos en un
lenguaje.
Las unidades léxicas son:
1.
2.
3.
4.
5.
Palabras reservadas
Identificadores
Literales
Comentarios
Operadores
TERMINOLOGIA
PALABRAS RESERVADAS
Son las palabras definidas por el fabricante del
lenguaje
PALABRAS
RESERVADAS
PALABRAS
RESERVADAS
const
include
int
iostream.h
class
conio.h
public
main
void
getch
ifgoto
#include "iostream.h"
#include "conio.h“
const int n=23;
class ALUMNO{
int codigo;
public:
void leer(){}
void mostrar(){
cout<<"\n termino";
}
};
int main(){
int ab=0;
XX:
ab++;
if(ab<5) goto XX;
ALUMNO a;
a.mostrar();
getch();
}
TERMINOLOGIA
IDENTIFICADORES
Nombres de variables ( codigo, ab)
Nombres de constantes (n)
Nombres de etiquetas (XX)
Nombres de funciones (leer,mostrar)
Nombres de tipos estructurados(ALUMNO)
#include "iostream.h"
#include "conio.h“
const int n=23;
class ALUMNO{
int codigo;
public:
void leer(){}
void mostrar(){
cout<<"\n termino";
}
};
int main(){
int ab=0;
XX:
ab++;
if(ab<5) goto XX;
ALUMNO a;
a.mostrar();
getch();
}
TERMINOLOGIA
LITERALES NUMÉRICAS
Constantes enteras (345)
Constantes reales (12.45)
Constantes carácter (A)Constantes cadena (UNMSM)
COMENTARIOS (TODO SALIO BIEN)
#include "iostream.h"
#include "conio.h“
const int valor=12.45;
class OPERACION{
int codigo;
public:
void mostrar(char cadena[]){
cout<<"\n "<
};
int main(){
OPERACION op;
op.mostrar("UNMSM");
char letra='A';
int suma=345;
cout<<"\n letra="<
getch();
}
TERMINOLOGIA
OPERADORES
Operadores aritméticos (+, *, /, -)
Operadores relacionales(<, >,…)
Operadores logicos (&&, ||, )
Operadorer de asignacion(=)
Operador delimitador(;)
#include
#include
class opera{
int x, y;
public:
opera() {x=0;y=0;}
opera(int i, int j) {x=i;y=j;}
void obten(int &i, int &j)
{i=x; j=y;}
opera operator++();
};
opera opera::operator++(){
x++;
y++;
}
int main(){
operaobjeto(10,7);
int x,y;
++objeto;
objeto.obten(x,y);
cout<< "x="<
class NUMERO{
int n;
public:
void ver(){ }
};
int main(){ }
LEXEMA
El valor actual de un conjunto de
caracteres que satisfacen un patrón:
LEXEMA
LEXEMA
LEXEMA
LEXEMA
#
n
int
{
include
=
public
}
iostream.h
5.4
void
main
“
;
ver
const
class
(
float
NUMERO
)TERMINOLOGIA
TOKEN
PROGRAMA
FUENTE
El token tiene asociado un patrón;
El valor asociado a una categoría o
unidad léxica. Se representa por
una
constante,
generalmente
numérica
El token es el valor que se enviara
al analizador sintáctico y con el
cual este construirá las frases
ANALIZADOR
LEXICO
Solicita
token
envia
token
ANALIZADOR
SINTACTICO
TERMINOLOGIA
TOKEN
Palabras reservadas
if
main
forwhile else
float int
goto
10
11
12
13
28
30
14
29
operadores
*
+
/
50
51 52
-
<
++
--
[
53
54
88
89
90
Otras unidades léxicas
Token
Identificadores
1000
literales numéricas
2000
literales de carácter
3000
literales de cadena
4000
Constantes
1010
Variables
1020
Estructuradas 1030
:
Reales
2010
Enteras
2020
HERRAMIENTAS PARA
DESCRIBIR EL LEXICO
...
Regístrate para leer el documento completo.