Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Análisis
Semántico
Análisis Léxico
Definición de token
Un token es una unidad léxica indivisible con significado único dentro del lenguaje.
Desde el punto de vista tecnológico se trata de una estructura de datos que
contiene información sobre:
› ID: Tipo del token
› Número de línea
› Número de columna
› Lexema
› Valor…
Análisis Léxico
Categorías de token
Los tipos de tokens existentes en un lenguaje son una
característica intrínseca al mismo. No obstante, pueden
encontrarse categorías generales
Categoría Ejemplos
Delimitadores (),;:[ ]
Palabras reservadas while true do if for
Identificadores pos con par
Números enteros 3 -4 55 0 7658
Definición de lexema
La cadena de caracteres específica de un token que se ajusta al patrón léxico de su
tipo se llama lexema. Existen dos tipos de lexemas
Cadena propia: lexema idéntica al patrón ›
Donde
digito +
letra (letra |digito)*
Son expresiones regulares definidas de los conjuntos
digito={0,…,9} = ›
letra={a…z,A,….Z} =
Análisis Léxico Ejemplo. Programa en Pascal que ordena un
vector
Microlenguajes regulares
Desde la perspectiva léxica un programa es una familia
ordenada de tokens de varios tipos. Cada tipo, a través de program o rde nve;
uses c r t ;
su patrón léxico, define un micro lenguaje formado por const
todos aquellos lexemas que encajan con el patrón léxico. n := 5 ;
Este tipo de lenguajes sencillos se llaman lenguajes var
regulares i,j,aux:integer;
a:array[1..n] of integer;
Definición de lenguaje regular begin
f o r i : = 1 t o n do
Un lenguaje regular describe una familia de tokens que se
readln(a[i]);
ajustan a un determinado patrón léxico.
f o r j : = 1 to n-1 do
Lenguaje de Lenguaje de palabras Lenguaje de f o r i : = j+1 t o n do
delimitadores reservadas identificadores i f ( a [ i ] ) < ( a [ j ] ) then
; Program ordenve begin
= uses crt aux := a [ i ] ;
: const n a[i] := a [ j] ;
( var j a [ j ] : = aux;
) integer i end;
[ begin aux
] for a w r i t e l n ( ' E l resu ltado e s : ' ) ;
“ do readln f o r i : = 1 t o n do
, to writeln writeln ( a [ i ] ) ;
. readln;
end.
Análisis Léxico
Ejemplo
1. if Plazo >= 30
2. then Tasa := Base + Recargo / 100
3. else Tasa := Base
[if] [ id ] [>=] [ num][then] [id] [:=] [id] [+] [id] [/] [num][else] [id] [:=] [id]
Análisis Léxico
Especificación formal de analizadores léxicos
Especificación de lenguajes regulares
Además de la declaración extensiva – sólo viable en los lenguajes finitos –
existen 3 diferentes maneras de definir formalmente un lenguaje regular.
Expresiones
regulares
Lenguajes
regulares
Gramáticas Autómatas
lineales finitos
Gracias por su atención
Muchos éxitos