⇦ Ramen Development_

Autómata de analizador léxico

Cover Image for Autómata de analizador léxico

¿Qué es un analizador léxico y donde se usa?

Un analizador léxico se encarga, en pocas palabras, de leer cada uno de los caracteres ingresados, y verificar y asignar el identificador perteneciente, para así poder crear una lista de tokens. Principalmente se utilizaría en un compilador/traductor, pero podría usarse en cualquier caso donde se requiera identificar caracteres.

Autómata

De Google, Autómata es: “Máquina automática programable capaz de realizar determinadas operaciones de manera autónoma y sustituir a los seres humanos en algunas tareas, en especial las pesadas, repetitivas o peligrosas; puede estar dotada de sensores, que le permiten adaptarse a nuevas situaciones.” Nosotros tenemos una tarea muy repetitiva que se puede automatizar con muy poca lógica de programación, el leer e identificar caracteres.

¿Cómo empezamos?

Disclaimer: Este es un ejemplo, los valores proporcionados pueden ser cambiados dependiendo de tus necesidades. Nuestro algoritmo será muy sencillo, será una máquina de estados, siendo 0 el estado inicial, en medio de estos existirán otros estados para determinar que token se le debe asignar al carácter o cadena de carácter, y 20 el estado de aceptación, una vez se entra al estado de aceptación se agrega el token a una lista con cada uno generado (Esta lista puede ser simplemente valores, una clase, o un arreglo, esto va de acuerdo a tus necesidades y como está realizado tu programa, puedes guardar el caractes y el tipo o número que cada token), y se vuelve al estado 0 y se lee el siguiente carácter, esto en búcle hasta que no haya mas caracteres.

Lexical 1.- Algoritmo del autómata. (Ejemplo)

De esta manera, siguiendo el algoritmo, dentro de un while que lea todos los caracteres, y unos cuantos if/else, tendrás tu analizador léxico, y al final tu lista de tokens.

Más entradas

Cover Image for Como traduje mi portafolio con JavaScript y JSON

Como traduje mi portafolio con JavaScript y JSON

No quería complicarme demasiado en mi portafolio personal para tenerlo listo más rápido y probar algo nuevo. Así que se me ocurrió una solución sencilla utilizando únicamente JavaScript.

Ivan Orozco
Ivan Orozco
Cover Image for ¿Banderas para representar lenguajes?

¿Banderas para representar lenguajes?

¿Debería utilizar las banderas de los países con mayor población que habla ese idioma? ¿cuál es la mejor manera de diseñar las opciones para cambiar de idioma?

Ivan Orozco
Ivan Orozco
Cover Image for ¿Programar con emojis?

¿Programar con emojis?

Los emojis son realmente utiles en algunos casos, pueden añadir emociones a nuestros mensajes para que su verdadero significado no pase desapercibido, pero ¿deberiamos usarlos para programar?

Ivan Orozco
Ivan Orozco
Cover Image for La historia detrás de Easy Simple Job

La historia detrás de Easy Simple Job

La historia detrás de nuestro juego no es complicada, inspirado por un video narrando una historia en Reddit que cuenta la historia de un tipo que consigue un simple pero sospechoso trabajo en una oficina, y ciertas cosas perturbadoras suceden...

Ramen Development Team
Ramen Development Team
Cover Image for Queridos reclutadores de LinkedIn...

Queridos reclutadores de LinkedIn...

Es importante que los reclutadores se tomen el tiempo para revisar el perfil de un candidato antes de enviar una oferta de trabajo.

Ivan Orozco
Ivan Orozco
Cover Image for Autómata de analizador léxico

Autómata de analizador léxico

En este artículo aprenderás a realizar un autómata para de un analizador lexico.

Gustavo Padilla
Gustavo Padilla