prototipo de analizador léxico

37
Limón Martínez Miguel Ángel INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS October 15 th , 2011. DISEÑO DEL PROTOTIPO DE UN ANALIZADOR LÉXICO EN AWK: “WORD FORMATION” Compiladores Profesora: Méndez García Sara Limón Martínez Miguel Ángel

Upload: bitter-lemon

Post on 10-Jul-2015

500 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

INSTITUTO POLITÉCNICO NACIONALUNIDAD PROFESIONAL INTERDISCIPLINARIA

DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS

October 15th, 2011.

DISEÑO DEL PROTOTIPO DE UNANALIZADOR LÉXICO EN AWK:

“WORD FORMATION”

Compiladores

Profesora: Méndez García Sara

Limón Martínez Miguel Ángel

Page 2: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

1. Introducción2. Antecedentes3. Planteamiento del problema4. Objetivo5. Descripción6. Limitaciones7. Manual del usuario8. Manual del sistema9. Anexos10.Bibliografía

Page 3: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

INTRODUCCIÓN

Page 4: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

• El siguiente proyecto presenta eldiseño del prototipo de unanalizador léxico basado en awk:“Word Formation”, a cuyosautores permitió aplicar todos losconocimientos teóricosadquiridos en la asignatura deCompiladores, dirigida por laprofesora Sara Méndez García, enla Unidad ProfesionalInterdisciplinaria de Ingeniería yCiencias Sociales yAdministrativas del InstitutoPolitécnico Nacional.

Introducción

Page 5: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

JUSTIFICACIÓN

Page 6: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

English

Importancia

•2º + hablado

+ formalmente especificado

•símbolos

•reglas

BASIC

• artículos

Conceptua-lizarlo

• Artificial Intelligence

• Predicción

• Traducción

Riqueza expresiva

= ambigüedad

Justificación

Page 7: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

ANTECEDENTES

Page 8: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

“Word Formation”

El hablar y entender un lenguaje significa, entre muchas otras cosas, saber las palabras de ese lenguaje.

En lingüística, y en lo referente al idioma inglés,

Word Formation:

derivación de palabras para la

formación de otras nuevas

por medio de la adición de afijos.

Algunas categorías de palabras en cuestión

Noun

• todo aquello tangible o intangible que se le puede asociar un nombre.

Verb

• acción que ejecuta un sujeto.

Adjective

• palabra cuyo objetivo es dar información extra sobre un “noun”.

Antecedentes

Page 9: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

designer

de

prefix

sign

root

er

suffix

Antecedentes

Page 10: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Antecedentes

Un verb se puede transformar en un noun,

para esto únicamente hace falta adicionar a la palabra base alguno de los sufijos:

-tion, -ion -ment

Page 11: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Antecedentes

Un adjective se puede transformar en un noun

solamente hace falta agregar a la palabra base

alguno de los sufijos

-ness -ity

Page 12: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Antecedentes

Page 13: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

PLANTEAMIENTO DEL PROBLEMA

Page 14: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

• Única y exclusivamenteteniendo conocimiento de unnoun cualquiera,

¿Cómo saber a qué categoríade palabra base perteneceéste, es decir, de qué categoríaproviene?

• ¿Verb o adjective?

Planteamiento del problema

Page 15: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

OBJETIVO

Page 16: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

• El diseño del prototipode un nuevo analizadorléxico en AWK,

nombrado“Word Formation”, cuyonombre es alusivo alobjetivo del mismo.

• En esencia, el analizadorléxico, en conjunto con elanalizador sintáctico,determinarán el origen deuna palabra (estando bajola característica de“noun”) y notificarán acuál categoría de palabrabase, de dos únicasposibilidades excluyentes,éste pertenece:“verb” o “adjective”.

Objetivo

Page 17: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

DESCRIPCIÓN

Page 18: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

DescripciónEl usuario ingresará un determinado comando

seguido de algún modificador

y éste, a su vez, seguido de un sustantivo

Page 19: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

LIMITACIONES

Page 20: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Limitaciones

• Unas de las principaleslimitaciones para larealización oportuna yenriquecedora del presente,y que se buscaron superar,fueron:– Tiempo limitado para la

creación del mismo.

– Falta de experiencia en lacreación de compiladores ysus derivados.

Logros

• Se realizó un prototipo deanalizador léxico:“Word Formation” con unmanejador de erroresbastante funcional, queseñaliza cabalmente el errory su inmediata solución.

Limitaciones y Logros

Page 21: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Manual de usuario

Page 22: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Manual del Usuario

Page 23: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

ANEXOS

Page 24: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Documentación Interna

Identificadores

Page 25: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Documentación Interna

Page 26: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Documentación Interna

Page 27: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Documentación Interna

Reglas de producción con base en BNF.

Page 28: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

Documentación Externa

Page 29: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

• EXPRESIÓN REGULAR ACEPTADA

^[a-zA-Z]+(ity|ITY|ness|NESS|ment|MENT|ion|ION|tion|TION)$

Documentación Externa

Page 30: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

• ÁRBOL SINTÁCTICO DE EXPRESIONES

Documentación Externa

Árbol sintáctico de la expresión wf –gor kindness

<word formation>

<command> \n

<modPrintNoun>

“-gor”

<noun>

<letras> <sufijo>

k <letras>

i <letras>

n <letras>

d

“ness”“wf”

Page 31: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

• ÁRBOL SINTÁCTICO DE EXPRESIONES

Documentación Externa

Árbol sintáctico de la expresión wf –prn kindness

<word formation>

<command> \n

<modPrintNoun>

“-prn”

<noun>

<letras> <sufijo>

k <letras>

i <letras>

n <letras>

d

“ness”“wf”

Page 32: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

• Posee el declarativo,pues se ha construidoseñalando hechos,reglas, restricciones,transformaciones queconfiguran la solución.

• Así mismo, no se basa encómo se hace, sino que sedescribe (declara) cómoes algo. En otras palabras,se enfoca en describir laspropiedades de lasolución buscada,dejando indeterminado elalgoritmo (conjunto deinstrucciones) usado paraencontrar esa solución.

Paradigma

Page 33: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

GLOSARIO

Page 34: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

GLOSARIOTÉRMINO DEFINICIÓN

Acción Una serie de sentencias de awk asociadas a una regla. Si el patrón de la regla encaja con el registro

de la estrada, el lenguaje awk ejecuta la acción de la regla. Las acciones son siempre encerradas

con llaves.

Argumento Los argumentos pueden variar de llamado en llamado (a diferencia de los parámetros, que forman

parte de la definición estática de un procedimiento).

Asignación. Una expresión de awk que cambia el valor de algún objeto de datos o variable de awk. Un objeto

al que le puedes asignar un valor se conoce como valori.

Campo Cuando awk lee un registro de entrada, parte el registro en piezas separadas por un espacio en

blanco. Tales piezas son llamadas campos

Expresión regular. Una expresión regular es un patrón que denota un conjunto de cadenas. Posiblemente un

conjunto infinito.

Función Conjunto de sentencias especializadas utilizadas a menudo para encapsular tareas generales o

especificas de un programa.

Awk tiene un numero de funciones implícitas y también te permite definir tus propias acciones

Lenguaje awk. Lenguaje implementado para awk

Page 35: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

TÉRMINO DEFINICIÓN

Línea de comandos Es un método que permite a las personas dar instrucciones a algún programa informático por medio

de una línea de texto simple.

Llaves Estos son caracteres “{,}”. Las llaves en awk se usan para determinar acciones, sentencias compuestas

y cuerpos de funciones

Parámetro Un parámetro es una variable que entra o sale de una acción o de una función.

Patrón Un patrón es un expresión condicional arbitraria contra la que se chequea la entrada. Si la condición

es satisfecha, se dice que el patrón encaja con el registro de entrada. Un patrón típico podría compara

el registro de entrada contra una expresión regular.

Programa awk El programa awk consiste en una serie de patrones y acciones que conjuntamente reciben el nombre

de regla.

Rango Una secuencia de líneas consecutivas del fichero de entrada. Un patrón puede especificar rangos de

líneas de entrada para que sean procesadas por awk, o pueden especificar líneas simples

Regla Un segmento de un programa awk, que especifica como procesar registros de entrada. Una regla

consiste en un protón y una acción .awk lee un registro de entrada

Sentencia Es una línea de código en algún lenguaje de programación. (awk)

Glosario

Page 36: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

• Clasificación de los lenguajes de programación. Paradigmas.(2006). Recuperado el 19 de Ocubre de 2011, deAlegsaOnline.com: Lenguajes clasificados por paradigmas deprogramación: definiciones, ventajas y desventajas.

• D. Robbins, A. (2011). GAWK: Effective AWK Programming. AUser's Guide for GNU AWK. (Fourth ed.). Boston,Massachusetts, USA.

• V. Aho, A., S. Lam, M., Sethi, R., & D. Ullman, J. (1986).Compilers: Principles, techniques and tools (Second ed.). (M.Hirsh, Ed.) Pearson.

• Vidal Cortés, J. (2002). El lenguaje de programaciónAWK/GAWK. Una guía de usuario para AWK. Madrid, España.

FUENTES DE INFORMACIÓN

Page 37: Prototipo de analizador léxico

Limón Martínez Miguel Ángel

P O R S U A T E N C I Ó N ,

¡ G R A C I A S !