martes, 25 de octubre de 2022

Conceptos básicos del analizador léxico

 ¿Qué es el análisis léxico?

El análisis léxico es la primera fase en el diseño del compilador. Un Lexer toma el código fuente modificado que está escrito en forma de oraciones. En otras palabras, te ayuda a convertir una secuencia de caracteres en una secuencia de tokens. El analizador léxico divide esta sintaxis en una serie de tokens. Elimina cualquier espacio adicional o comentario escrito en el código fuente.

Los programas que realizan análisis léxico en el diseño de compiladores se denominan analizadores léxicos o lexers. Un lexer contiene tokenizador o escáner. Si el analizador léxico detecta que el token no es válido, genera un error. La función de Lexical Analyzer en el diseño del compilador es leer secuencias de caracteres del código fuente, comprobar si hay tokens legales y pasar los datos al analizador de sintaxis cuando lo solicite.

What is Lexical Analysis?

Lexical Analysis is the very first phase in the compiler designing. A Lexer takes the modified source code which is written in the form of sentences. In other words, it helps you to convert a sequence of characters into a sequence of tokens. The lexical analyzer breaks this syntax into a series of tokens. It removes any extra space or comment written in the source code.

Programs that perform Lexical Analysis in compiler design are called lexical analyzers or lexers. A lexer contains tokenizer or scanner. If the lexical analyzer detects that the token is invalid, it generates an error. The role of Lexical Analyzer in compiler design is to read character streams from the source code, check for legal tokens, and pass the data to the syntax analyzer when it demands.

Terminologías básicas

¿Qué es un lexema?

Un lexema es una secuencia de caracteres que se incluyen en el programa fuente de acuerdo con el patrón de coincidencia de un token. No es más que una instancia de un token.

¿Qué es un token?

Los tokens en el diseño del compilador son la secuencia de caracteres que representa una unidad de información en el programa fuente.

¿Qué es el patrón?

Un patrón es una descripción que es utilizada por el token. En el caso de una palabra clave que se utiliza como token, el patrón es una secuencia de caracteres.

Basic Terminologies

What’s a lexeme?

A lexeme is a sequence of characters that are included in the source program according to the matching pattern of a token. It is nothing but an instance of a token.

What’s a token?

Tokens in compiler design are the sequence of characters which represents a unit of information in the source program.

What is Pattern?

A pattern is a description which is used by the token. In the case of a keyword which uses as a token, the pattern is a sequence of characters.


lunes, 3 de octubre de 2022

Conversión de un Autómata a una expresión regular y viceversa

 

Solución
  • 0*1(1*0(01)*)

 Solución 

  • a*b(ab)*

 m*no(mno*)

Solución




Diferencia de un AFD y AFN

 

  • Un AFD existe siempre no más de una transición posible desde ese estado y con ese símbolo.
  • El alfabeto se debe cumplir en todos los estados

  •  Un AFN no cumple con en alfabeto en los estados 

Máquina de Turing

  Una máquina de Turing consta de una cinta larga, dividida en casillas, que es la memoria, en la que se escriben símbolos y números, tamb...