Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Análisis léxico

No description
by

Daniel Sanchez De oleo

on 10 February 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Análisis léxico


Al finalizar la exposición los participantes deben de ser capaz de:
Identificar que procesos se llevan a cabo en el análisis lexico.
Tener las bases para construir un analizador lexico.
Saber qué papel desempeñan los tokens en el analisis lexico.
Análisis léxico
Es la primera fase de un compilador tambien conocido como escaneo. El analizador de léxico lee el flujo de caracteres que componen el programa fuente y los agrupa en secuencias significativas, conocidas como lexemas. Para cada lexema, el analizador léxico produce como salida un token de la forma: ( nombre-token, valor-atributo)
La función del analizador léxico
La principal tarea del analizador léxico es leer los caracteres de la entrada del programa fuente, agruparlos en lexemas y producir como salida una secuencia de tokens para cada lexema en el programa fuente. El flujo de tokens se envía al analizador sintáctico para su análisis. Con frecuencia el analizador léxico interactúa también con la tabla de símbolos.
Proceso del análisis léxico
Tokens, patrones y lexemas
Ejemplo
Análisis léxico
Objetivo General
Es una parte de una palabra que constituye la unidad mínima y se puede decir que es la raíz de esta misma con significado léxico.
Lexema
Estos son datos ya trabajados por el analizador léxico los cuales son pasados al analizador sintáctico
Tokens
Lexemas
Cada vez que el analizador léxico devuelve un token al analizador sintáctico, tiene un lexema asociado: la secuencia de caracteres de entrada que representa el token.
Patrones
Cada token tiene un patrón que describe cuáles son las secuencias de caracteres que pueden formar los lexemas correspondientes a ese token. Al conjunto de palabras, o cadenas de caracteres, que coinciden con un patrón dado se le conoce como lenguaje.
Tokens.
El analizador léxico explora el programa fuente y produce como salida una secuencia de tokens, los cuales, por lo general, se pasan al analizador sintáctico, uno a la vez. Algunos tokens pueden consistir sólo de un nombre de token, mientras que otros también pueden tener un valor léxico asociado, el cual proporciona información acera de la instancia específica del token que se ha encontrado en la entrada.
Estas expresiones se utilizan con frecuencia para describir los patrones. Las expresiones regulares se crean a partir de caracteres individuales, mediante el operador de unión, de concatenación y el cierre de Kleene, o el operador.

Expresiones regulares.
Uso de búferes.
Como a menudo es necesario explorar por adelantado sobre la entrada, para poder ver en dónde termina el siguiente lexema, es necesario que el analizador léxico utilice búferes en la entrada.
Diagramas de transición de estados.
A menudo, el comportamiento de un analizador léxico puede describirse mediante un diagrama de transición de estados. Estos diagramas tienen estados, cada uno de los cuales representa algo acerca del historial de los caracteres vistos durante e l escaneo actual, en busca de un lexema que coincida con uno de los posibles patrones.
Autómatas finitos.
Autómatas finitos deterministas.
Autómatas finitos no deterministas.
Lex.
Hay una familia de sistemas de software, incluyendo a Lex y Flex , que son generadores de analizadores léxicos. El usuario especifica los patrones para los tokens, usando una notación de expresiones regulares extendidas. Lex convierte estas expresiones en un analizador léxico, el cual en esencia es un autómatafinito determinista que reconoce cualquiera de los patrones.
Ejemplo de un análisis léxico
posicion = inicial + velocidad * 60
posiciones
un lexema que se asigna a un token ( id , 1 )
El símbolo de asignación
=
es un lexema que se asigna al token ( = )
inicial
es un lexema que se asigna al token ( id , 2 )
+
es un lexema que se asigna a un token (+)
velocidad
un lexema que se asigna a un token ( id , 3)
*
es un lexema que se asigna a un token (*)
60
es un lexema que se asigna a un token (60)
Full transcript