SlideShare una empresa de Scribd logo
1 de 8
Reporte de Analizador
Léxico
Lenguajes y Autónomas I
Angel Fuertes Gómez
Rubén Antonio Peña Alarcón
Edgar Hipólito García Méndez
Ing. Sistemas Computacionales
13/05/2013
Introducción
En primer lugar, y antes de explicar el diseño de un analizador léxico, comentar
una serie de conceptos:
Un token es cada uno de los elementos de un lenguaje con significado
propio. Son símbolos terminales del analizador sintáctico.
Un patrón es una regla que describe un conjunto de cadenas de entrada
para los cuales se produce como salida el mismo token.
Un lexema es una secuencia de caracteres que concuerda con el patrón de
un token.
Una vez claros estos conceptos, podemos definir un analizador léxico como el
analizador que pasa de un fichero lleno de caracteres a un conjunto de tokens que
ira pasando al analizador sintáctico (uno a uno). Las funciones del analizador
léxico, pues, son:
Manejar el fichero fuente.
Leer símbolo a símbolo, de principio a fin, sin retroceder, el fichero fuente.
Localizar palabras del lenguaje y construir el token.
Eliminar caracteres que no aportan ninguna información (comentarios, etc.)
Rellenar información en la tabla de símbolos
Utilizando, pues, una Gramática Regular (de tipo 3), y transformándola en un
autómata finito determinista, podemos detectar palabras del lenguaje del fichero
fuente.
Estructura General del Programa
Identificadores
Los Identificadores del Programa pueden ser letras o letras seguidas de números.
Los Identificadores dentro de este programa sirven para identificar algún valor o
conjunto de valores que serán utilizados después para completar algunas
instrucciones.
Tipos de datos
El analizador léxico reconoce como tipos de datos las siguientes palabras claves
larg, peque, cad, var, ent, flot estos tipos de datos serás especificados a
continuación,
Palabra Clave Admite
larg Admite valores grandes de mínimo 3 dígitos
peque Admite valores pequeños de máximo 5 dígitos
cad Admite cadenas de texto
var Admite caracteres alfanuméricos (1-9, a-z)
ent Admite valores númerios enteros (0-9)
flot Admite valores numéricos de punto flotante (0.00000-
9.9999)
Op. Aritmeticos
El programa reconoce los siguientes Operadores Aritméticos, “+”, “-“, “*”, “/”, “%”
los cuales representan las operaciones básicas a realizar.
Operador Operación
+ Suma
- Resta
* Multiplicación
/ División
% Residuo de una división
= Igualación
Op. Relacionales
Los Operadores Relacionales admitidos por el programa son los siguientes: “>”,
“<”, “==”, “!=”, “<=”, “=>”, estos representarán las siguientes relaciones para el
programa:
Operador Relación
< Menor que
> Mayor que
== Igual a
¡= Diferente de
<= Menor o igual
=> Mayor o igual
Sentencias y su estructura
Condiciones:
El programa reconoce la condición “if” para permitir tomar en cuenta si algo ocurre
y para tomar en cuenta que eso no haya ocurrido se utilizará un “then” como
condición para expresar que hacer si ocurre lo contrario. Las instrucciones
afectadas por estos condicionales se escribirían dentro de delimitadores “{“, “}”
Esta condición se estructuraría parecido a la siguiente
If(condición){
Instrucciones;
}
then{
Instruicciones;
}
Ciclos:
El programa reconoce los ciclos “whail” y “do” los cuales sirven para realizar
acciones durante un respectivo momento hasta que una condición inicial se
cumpla.
La manera en la que se deben estructurar debe ser parecida a la siguiente:
En el caso del whail:
Whail(condición){
Instrucciones;
}
En el caso del do:
do{
Intrucciones;
}(Condición);
Comentario
Los comentarios estarán definidos por entre los caracteres “<<” y “>>” y el
analizador no los toma en cuenta a la hora de leerlos, estos comentarios son de
mucha ayuda a la hora de apoyar las ideas en un programa, para recordar algo
importante o especificar alguna idea de ayuda.
<<Estructura Ejemplo>>
Impresión
Para imprimir utilizaremos la palabra clave “impri” seguida de sus respectivos
delimitadores y el texto que deseamos imprimiremos en pantalla.
Ejemplo:
Impri(Hola mundo);
Ejemplo
Un ejemplo de un código aceptado por el programa sería el siguiente:
{<<Inicio del Programa>>
<<Código Prueba para analizador léxico>>
ent num=95;
cad logro='prueba';
if (num=78){<<Si el numero es igual a 78>>
impri(Numero es igual a 78);
}
else{
num/7=num;
while(num!=0){
num-1;
impri(Ingrese un numero entero);
leer ent dos;
if(num-dos!=0){
num=13;}
then{
num=0;
}
}}
}<<Fin del Programa>>
En la siguiente imagen vemos el analizador léxico funcionando y aceptando
el código.
Conclusiones
Para empezar se debe entender el proceso de compilación, para que la maquina
entienda el lenguaje a analizar, esto inicia con el léxico.
Los autómatas son para poder entender el proceso del compilador, cuando pasa
por diferentes estados para llegar a su estado final.
En el análisis sintáctico se lleva a cabo el análisis de sintaxis en nuestro lenguaje
de programación desde nuestro programa fuente representándolo en una
gramática en la cual esta lo analiza en nuestras reglas que estipulamos en el
análisis gramatical para llevar a cabo su función para aceptar las instrucciones
ingresados por el archivo fuente, en esta parte también aprendimos como aplicar
las estructuras de datos en la realización y verificamos los lenguajes de
programación no son muy distintos a los lenguajes naturales.

Más contenido relacionado

La actualidad más candente

Ii corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_claseIi corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_clasetammyrodriguez2010
 
Unidad 03 variables, constantes y operadores
Unidad 03   variables, constantes y operadoresUnidad 03   variables, constantes y operadores
Unidad 03 variables, constantes y operadoresLorenzo Alejo
 
Pseudocodigo
PseudocodigoPseudocodigo
PseudocodigoAPILUZ1
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programaciónKarenNaranjoH
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasSol Hernández
 
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaClase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaJosé Ricardo Tillero Giménez
 
Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2David Tuarez
 
Tutorialpseint parte 2
Tutorialpseint parte 2Tutorialpseint parte 2
Tutorialpseint parte 2Claudia Poza
 
Lenguaje natural pseudocodigo diagramacion y programacion
Lenguaje natural pseudocodigo diagramacion y programacionLenguaje natural pseudocodigo diagramacion y programacion
Lenguaje natural pseudocodigo diagramacion y programacionClaudia Poza
 
6. entidades primitivas para el diseño de instrucciones
6. entidades primitivas para el diseño de instrucciones6. entidades primitivas para el diseño de instrucciones
6. entidades primitivas para el diseño de instruccionesrcarrerah
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de Flujoastaroth97
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeIntCristian C
 
Conceptos basicos de programacion
Conceptos basicos de programacion Conceptos basicos de programacion
Conceptos basicos de programacion Rika Furude
 

La actualidad más candente (20)

Ii corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_claseIi corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_clase
 
Modulo ivp seint
Modulo ivp seintModulo ivp seint
Modulo ivp seint
 
Unidad 03 variables, constantes y operadores
Unidad 03   variables, constantes y operadoresUnidad 03   variables, constantes y operadores
Unidad 03 variables, constantes y operadores
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemas
 
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaClase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2
 
Tutorialpseint parte 2
Tutorialpseint parte 2Tutorialpseint parte 2
Tutorialpseint parte 2
 
Ola k ase
Ola k aseOla k ase
Ola k ase
 
Lenguaje natural pseudocodigo diagramacion y programacion
Lenguaje natural pseudocodigo diagramacion y programacionLenguaje natural pseudocodigo diagramacion y programacion
Lenguaje natural pseudocodigo diagramacion y programacion
 
6. entidades primitivas para el diseño de instrucciones
6. entidades primitivas para el diseño de instrucciones6. entidades primitivas para el diseño de instrucciones
6. entidades primitivas para el diseño de instrucciones
 
Presentación PSeInt
Presentación PSeIntPresentación PSeInt
Presentación PSeInt
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de Flujo
 
1. algoritmos
1. algoritmos1. algoritmos
1. algoritmos
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeInt
 
Tipos de algoritmos
Tipos de algoritmosTipos de algoritmos
Tipos de algoritmos
 
Conceptos basicos de programacion
Conceptos basicos de programacion Conceptos basicos de programacion
Conceptos basicos de programacion
 

Destacado

621 Wigeon Way, Suisun City CA Open House Flyer
621 Wigeon Way, Suisun City CA Open House Flyer621 Wigeon Way, Suisun City CA Open House Flyer
621 Wigeon Way, Suisun City CA Open House FlyerAlfred McCoy
 
Tecnología Streaming
Tecnología StreamingTecnología Streaming
Tecnología Streamingmdmr
 
Radio Letter of Recommendation
Radio Letter of Recommendation Radio Letter of Recommendation
Radio Letter of Recommendation J.T. Sounds OFF
 
Edital de transferência 2° semestre de 2013
Edital de transferência 2° semestre de 2013Edital de transferência 2° semestre de 2013
Edital de transferência 2° semestre de 2013fatecjundiai
 
Property Professional - New Rules Driving Retail Success
Property Professional - New Rules Driving Retail SuccessProperty Professional - New Rules Driving Retail Success
Property Professional - New Rules Driving Retail SuccessFirst Retail Group Ltd
 
Los 10 mejores buscadores
Los 10 mejores buscadoresLos 10 mejores buscadores
Los 10 mejores buscadorescristalgomez
 
Módulos emprendimiento
Módulos emprendimientoMódulos emprendimiento
Módulos emprendimientoestefa0413
 
Química- proyecto A
Química- proyecto AQuímica- proyecto A
Química- proyecto Amdmr
 
Análise dos resultados da tarefa investigativa - Demonstrações em Matemática
Análise dos resultados da tarefa investigativa - Demonstrações em MatemáticaAnálise dos resultados da tarefa investigativa - Demonstrações em Matemática
Análise dos resultados da tarefa investigativa - Demonstrações em MatemáticaElton Ribeiro da Cruz
 
Planificacion vampiros
Planificacion vampirosPlanificacion vampiros
Planificacion vampirosdamphiell
 

Destacado (20)

Subcultura
SubculturaSubcultura
Subcultura
 
Poder de la voluntad jorge
Poder de la voluntad jorgePoder de la voluntad jorge
Poder de la voluntad jorge
 
Sound Lounge
Sound LoungeSound Lounge
Sound Lounge
 
Aula 2
Aula 2Aula 2
Aula 2
 
621 Wigeon Way, Suisun City CA Open House Flyer
621 Wigeon Way, Suisun City CA Open House Flyer621 Wigeon Way, Suisun City CA Open House Flyer
621 Wigeon Way, Suisun City CA Open House Flyer
 
Tecnología Streaming
Tecnología StreamingTecnología Streaming
Tecnología Streaming
 
Radio Letter of Recommendation
Radio Letter of Recommendation Radio Letter of Recommendation
Radio Letter of Recommendation
 
Construcción
 Construcción Construcción
Construcción
 
Equipo5
Equipo5Equipo5
Equipo5
 
Edital de transferência 2° semestre de 2013
Edital de transferência 2° semestre de 2013Edital de transferência 2° semestre de 2013
Edital de transferência 2° semestre de 2013
 
Property Professional - New Rules Driving Retail Success
Property Professional - New Rules Driving Retail SuccessProperty Professional - New Rules Driving Retail Success
Property Professional - New Rules Driving Retail Success
 
Los 10 mejores buscadores
Los 10 mejores buscadoresLos 10 mejores buscadores
Los 10 mejores buscadores
 
Aula 4
Aula 4Aula 4
Aula 4
 
Módulos emprendimiento
Módulos emprendimientoMódulos emprendimiento
Módulos emprendimiento
 
CIMMYT AR2013
CIMMYT AR2013CIMMYT AR2013
CIMMYT AR2013
 
Telematicas
TelematicasTelematicas
Telematicas
 
Química- proyecto A
Química- proyecto AQuímica- proyecto A
Química- proyecto A
 
Análise dos resultados da tarefa investigativa - Demonstrações em Matemática
Análise dos resultados da tarefa investigativa - Demonstrações em MatemáticaAnálise dos resultados da tarefa investigativa - Demonstrações em Matemática
Análise dos resultados da tarefa investigativa - Demonstrações em Matemática
 
Aula 5
Aula 5Aula 5
Aula 5
 
Planificacion vampiros
Planificacion vampirosPlanificacion vampiros
Planificacion vampiros
 

Similar a Estructura general del programa

37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacionkarenyulithza
 
Guia examen diagnostico_pseint
Guia examen diagnostico_pseintGuia examen diagnostico_pseint
Guia examen diagnostico_pseintLeidyEspinoza6
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosMary Sanchez
 
Video Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaVideo Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaDanilo Jaramillo
 
Curso de desarrollo de software
Curso de desarrollo de softwareCurso de desarrollo de software
Curso de desarrollo de softwarevekys
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de ProgramaciónKudos S.A.S
 
01 metprogramacion
01 metprogramacion01 metprogramacion
01 metprogramacionConfesorAD
 
Sesión1 Algoritmia Básica.ppt
Sesión1 Algoritmia Básica.pptSesión1 Algoritmia Básica.ppt
Sesión1 Algoritmia Básica.pptsamirvidal1
 
algoritmo
algoritmoalgoritmo
algoritmofior
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmoslisobra
 
Logica computacional conceptos basicos
Logica computacional conceptos basicosLogica computacional conceptos basicos
Logica computacional conceptos basicosmoni26011993
 
Introducción a la Programación
Introducción a la Programación Introducción a la Programación
Introducción a la Programación henser
 
Programacion 2
Programacion 2Programacion 2
Programacion 258994146
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clasedaosma
 
INTRODUCCIÓN ADSI - PARTE 1
INTRODUCCIÓN ADSI - PARTE 1INTRODUCCIÓN ADSI - PARTE 1
INTRODUCCIÓN ADSI - PARTE 1thefasp10
 
Unidad 3
Unidad 3Unidad 3
Unidad 3tf94
 

Similar a Estructura general del programa (20)

37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Algoritmos 02
Algoritmos 02Algoritmos 02
Algoritmos 02
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Guia examen diagnostico_pseint
Guia examen diagnostico_pseintGuia examen diagnostico_pseint
Guia examen diagnostico_pseint
 
Pascal
PascalPascal
Pascal
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para Algoritmos
 
Video Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaVideo Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia Abierta
 
Curso de desarrollo de software
Curso de desarrollo de softwareCurso de desarrollo de software
Curso de desarrollo de software
 
algortimos
algortimosalgortimos
algortimos
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
01 metprogramacion
01 metprogramacion01 metprogramacion
01 metprogramacion
 
Sesión1 Algoritmia Básica.ppt
Sesión1 Algoritmia Básica.pptSesión1 Algoritmia Básica.ppt
Sesión1 Algoritmia Básica.ppt
 
algoritmo
algoritmoalgoritmo
algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Logica computacional conceptos basicos
Logica computacional conceptos basicosLogica computacional conceptos basicos
Logica computacional conceptos basicos
 
Introducción a la Programación
Introducción a la Programación Introducción a la Programación
Introducción a la Programación
 
Programacion 2
Programacion 2Programacion 2
Programacion 2
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clase
 
INTRODUCCIÓN ADSI - PARTE 1
INTRODUCCIÓN ADSI - PARTE 1INTRODUCCIÓN ADSI - PARTE 1
INTRODUCCIÓN ADSI - PARTE 1
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 

Estructura general del programa

  • 1. Reporte de Analizador Léxico Lenguajes y Autónomas I Angel Fuertes Gómez Rubén Antonio Peña Alarcón Edgar Hipólito García Méndez Ing. Sistemas Computacionales 13/05/2013
  • 2. Introducción En primer lugar, y antes de explicar el diseño de un analizador léxico, comentar una serie de conceptos: Un token es cada uno de los elementos de un lenguaje con significado propio. Son símbolos terminales del analizador sintáctico. Un patrón es una regla que describe un conjunto de cadenas de entrada para los cuales se produce como salida el mismo token. Un lexema es una secuencia de caracteres que concuerda con el patrón de un token. Una vez claros estos conceptos, podemos definir un analizador léxico como el analizador que pasa de un fichero lleno de caracteres a un conjunto de tokens que ira pasando al analizador sintáctico (uno a uno). Las funciones del analizador léxico, pues, son: Manejar el fichero fuente. Leer símbolo a símbolo, de principio a fin, sin retroceder, el fichero fuente. Localizar palabras del lenguaje y construir el token. Eliminar caracteres que no aportan ninguna información (comentarios, etc.) Rellenar información en la tabla de símbolos Utilizando, pues, una Gramática Regular (de tipo 3), y transformándola en un autómata finito determinista, podemos detectar palabras del lenguaje del fichero fuente.
  • 3. Estructura General del Programa Identificadores Los Identificadores del Programa pueden ser letras o letras seguidas de números. Los Identificadores dentro de este programa sirven para identificar algún valor o conjunto de valores que serán utilizados después para completar algunas instrucciones. Tipos de datos El analizador léxico reconoce como tipos de datos las siguientes palabras claves larg, peque, cad, var, ent, flot estos tipos de datos serás especificados a continuación, Palabra Clave Admite larg Admite valores grandes de mínimo 3 dígitos peque Admite valores pequeños de máximo 5 dígitos cad Admite cadenas de texto var Admite caracteres alfanuméricos (1-9, a-z) ent Admite valores númerios enteros (0-9) flot Admite valores numéricos de punto flotante (0.00000- 9.9999) Op. Aritmeticos El programa reconoce los siguientes Operadores Aritméticos, “+”, “-“, “*”, “/”, “%” los cuales representan las operaciones básicas a realizar. Operador Operación + Suma - Resta * Multiplicación / División % Residuo de una división = Igualación
  • 4. Op. Relacionales Los Operadores Relacionales admitidos por el programa son los siguientes: “>”, “<”, “==”, “!=”, “<=”, “=>”, estos representarán las siguientes relaciones para el programa: Operador Relación < Menor que > Mayor que == Igual a ¡= Diferente de <= Menor o igual => Mayor o igual Sentencias y su estructura Condiciones: El programa reconoce la condición “if” para permitir tomar en cuenta si algo ocurre y para tomar en cuenta que eso no haya ocurrido se utilizará un “then” como condición para expresar que hacer si ocurre lo contrario. Las instrucciones afectadas por estos condicionales se escribirían dentro de delimitadores “{“, “}” Esta condición se estructuraría parecido a la siguiente If(condición){ Instrucciones; } then{ Instruicciones; }
  • 5. Ciclos: El programa reconoce los ciclos “whail” y “do” los cuales sirven para realizar acciones durante un respectivo momento hasta que una condición inicial se cumpla. La manera en la que se deben estructurar debe ser parecida a la siguiente: En el caso del whail: Whail(condición){ Instrucciones; } En el caso del do: do{ Intrucciones; }(Condición); Comentario Los comentarios estarán definidos por entre los caracteres “<<” y “>>” y el analizador no los toma en cuenta a la hora de leerlos, estos comentarios son de mucha ayuda a la hora de apoyar las ideas en un programa, para recordar algo importante o especificar alguna idea de ayuda. <<Estructura Ejemplo>>
  • 6. Impresión Para imprimir utilizaremos la palabra clave “impri” seguida de sus respectivos delimitadores y el texto que deseamos imprimiremos en pantalla. Ejemplo: Impri(Hola mundo); Ejemplo Un ejemplo de un código aceptado por el programa sería el siguiente: {<<Inicio del Programa>> <<Código Prueba para analizador léxico>> ent num=95; cad logro='prueba'; if (num=78){<<Si el numero es igual a 78>> impri(Numero es igual a 78); } else{ num/7=num; while(num!=0){ num-1; impri(Ingrese un numero entero); leer ent dos; if(num-dos!=0){ num=13;} then{ num=0; } }} }<<Fin del Programa>>
  • 7. En la siguiente imagen vemos el analizador léxico funcionando y aceptando el código.
  • 8. Conclusiones Para empezar se debe entender el proceso de compilación, para que la maquina entienda el lenguaje a analizar, esto inicia con el léxico. Los autómatas son para poder entender el proceso del compilador, cuando pasa por diferentes estados para llegar a su estado final. En el análisis sintáctico se lleva a cabo el análisis de sintaxis en nuestro lenguaje de programación desde nuestro programa fuente representándolo en una gramática en la cual esta lo analiza en nuestras reglas que estipulamos en el análisis gramatical para llevar a cabo su función para aceptar las instrucciones ingresados por el archivo fuente, en esta parte también aprendimos como aplicar las estructuras de datos en la realización y verificamos los lenguajes de programación no son muy distintos a los lenguajes naturales.