TÉCNICAS DE LOS COMPILADORES APLICADO A PROGRAMAS DE DISTRIBUCIÓN Y ASIGNACIÓN DE INCIDENCIAS
Familia Basso MosqueraMonografía28 de Febrero de 2020
7.914 Palabras (32 Páginas)197 Visitas
“TÉCNICAS DE LOS COMPILADORES APLICADO A PROGRAMAS DE DISTRIBUCIÓN Y ASIGNACIÓN DE INCIDENCIAS”
ÍNDICE GENERAL
Agradecimientos ii
Dedicatorias iv
Introducción vii
CAPITULO I: ASPECTOS GENERALES 1
- Justificación 2
- Motivación 2
- Objetivos 3
- Objetivo General 3
- Objetivos Específicos 3
- Delimitación del proyecto 4
- Limitación del proyecto 4
CAPITULO 2: MARCO REFERENCIAL 5
2.1 Antecedentes 6
2.2 Concepto Principal 8
2.2.1 ¿Qué es un compilador? 8
2.2.1.1 Ventajas de compilar frente a interpretar 9
2.2.1.2 Ventaja del intérprete frente al compilador 9
2.2.2 Herramientas que muestran tipos de análisis de programas fuente 10
2.2.3 Diagrama de análisis de un programa fuente, definiendo cada una de sus partes 12
2.2.4 Análisis Léxico 14
2.2.4.1 Funciones del analizador léxico 15
2.2.4.1.1 Otras funciones secundarias 15
2.2.4.1.2 Ventajas de separar el análisis léxico y el análisis sintáctico 15
2.2.4.1.3 Componentes Léxicos, Patrones, Lexemas 15
2.2.5 Lenguaje regular 18
2.2.5.1 Lenguaje regular sobre un alfabeto 18
2.2.5.2 Propiedades de cierre 19
2.2.5.3 Decidir cuándo un lenguaje es regular 20
2.2.5.4 Lenguajes finitos 20
2.2.5.5 Expresiones regulares 21
2.2.6 Autómata Finito 22
2.2.6.1 Definición formal 23
2.2.6.2 Representación como diagrama de estados 23
2.2.6.3 Representación como tabla de transiciones 24
v
2.2.6.4 Funcionamiento 25
2.2.6.5 Autómata finito determinista 26
2.6.6 Autómata finito no determinista 27
2.2.7 Análisis Sintáctico 29
2.2.7.1 Funciones 29
2.2.7.2 Clasificación 29
CAPITULO 3: METODOLOGÍA 31
3.1 Planteamiento del problema 32
3.2 Metodología 33
3.3 Modelo de programa o prototipo 34
3.3.1 Sistema propuesto 34
3.3.2 Diagrama de desarrollo del programa 35
3.3.3 Diagrama de bloques del prototipo 36
3.4 Ciclo del programa 37
3.5 Ejemplos de incidencias 40
3.5.1 Departamento de mesa de ayuda 41
3.5.2 Departamento de Soporte Técnico 43
3.5.3 Departamento de Desarrollo de Sistemas 45
3.5.4 Departamento de Infraestructura 47
3.5.5 Departamento de Redes y Comunicaciones 48
Resumen Descriptivo viii
Conclusión
Referencia Bibliográfica
vi
INTRODUCCIÓN
Esta investigación es un informe en el que se describe la implementación de compiladores en programas desarrollados para la distribución de incidencias dentro de un entorno laboral. Para desglosar este contenido, es indispensable, que antes de iniciar se definan los principales conceptos que envuelven esta investigación, estos términos o conceptos serán desarrollados en breve.
Se ha dado a conocer que dentro del ambiente de programación es importante contar con los diferentes analizadores y lenguajes, puestos que estos son un componente imprescindible para la correcta ejecución de los programas que se quieren desarrollar.
Para esto hemos decidido enfocar nuestra investigación en uno de estos analizadores y lenguajes, enfocándonos específicamente en un tipo de programa, en este caso, los que usualmente las empresas utilizan para la asignación y distribución de incidencias, entre colaboradores.
En esta época la mayoría de las empresas con una gran cantidad de colaboradores, deciden ya sea desarrollar o adquirir externamente una aplicación o programa que los ayude o facilite la distribución del trabajo. En esta ocasión analizaremos el lenguaje de programación utilizados en estos programas o herramientas.
vii
CAPITULO I
ASPECTOS GENERALES
1. ASPECTOS GENERALES
1.1 JUSTIFICACIÓN
Dado que la muchas de las empresas hoy en día entre sus servicios tienen una sección de atención al cliente, ya sea a sus propios colaboradores o a sus clientes externos y dado que en muchas ocasiones se hacen las asignaciones de estos incidentes de manera errónea, provocando la pérdida de tiempo, de energía y recursos tanto para los colaboradores como para la empresa, hemos visto la necesidad de estudiar la posibilidad de crear un aplicación o programa que facilite la asignación correcta de estas y la reducción de estos errores.
Para esto hemos escogido basarnos en la implementación del analizador léxico, durante la programación de este programa o dentro de este, para desarrollar de manera diferente y efectiva esta aplicación.
1.2 MOTIVACIÓN
Debido a la gran cantidad de empresas que utilizan estos programas para la distribución y asignación de incidencias, y que a pesar de tener esta útil herramienta, aún existe un gran margen de error y equivocaciones a la hora de distribuirlos, se crea la inquietud de investigar, en la parte lógica si existe algún tipo de patrón errado que lleve a que las herramientas no se utilicen ni se desarrollen de manera adecuada.
También nos interesa ampliar nuestro conocimiento en el área de la programación de aplicaciones, puesto que es un mercado muy amplio actualmente en donde hay grandes oportunidades de desarrollo.
2
1.3 OBJETIVOS
1.3.1 OBJETIVO GENERAL
Analizar el rol de los compiladores a través de un programa o aplicación que facilite la asignación de incidentes que puedan utilizar las empresas para reducir el margen de error en la asignación de estas, ahorrando, tiempo energía y recursos para las empresas.
1.3.2 OBJETIVOS ESPECÍFICOS
- Investigar en qué consisten los compiladores y sus componentes.
- Implementar y analizar el rol de los compiladores a través de un lenguaje de programación.
- Analizar el desarrollo de la aplicación dependiendo del lenguaje de programación que se utilice, así como los códigos que se implementen.
- Analizar el uso de los programas basados en el desarrollo de estos, así como la correcta distribución de estos.
- Desarrollar un modelo o prototipo que funcione para programar la distribución de incidencias dentro de un departamento o empresa.
3
1.4 DELIMITACIÓN DEL PROYECTO
El desarrollo de la investigación tomó un mes, siendo que luego de las investigaciones pertinentes, se dedicarán varios días más para el análisis y el desarrollo del prototipo basándonos en los datos recolectados. Luego, se tomaron más días para completar el análisis y la corrección así como la posible reestructuración de algunos datos.
1.5 LIMITACIÓN DEL PROYECTO
Como limitantes que puedan existir dentro de este proyecto, podemos tener el tiempo de implementación de este proyecto, así como el lenguaje de programación que se utilizará.
También podremos tener inconvenientes para utilizar algún programa específico como ejemplo para la demostración de la investigación.
Así como no contar con los permisos suficientes para poder mostrar o revelar los códigos fuentes utilizados para el análisis que requiere la investigación.
4
CAPITULO II
MARCO REFERENCIAL
MARCO REFERENCIAL
2.1 ANTECEDENTES
Visión histórica del desarrollo de los compiladores
- 1946, se desarrolla el primer ordenador digital. Las instrucciones que se ejecutaban eran códigos numéricos, lenguaje de máquina., esto es engorroso, entonces surgen los ensamblador. Al inicio el programa se escribía mediante claves y luego se traducía manualmente al lenguaje de máquina. Cuando esto lo hizo la misma máquina, a este trabajo se le llamó ensamblar el programa.
- 1950, John Backus dirige una investigación en IBM en un lenguaje algebraico
- 1954, se comienza a desarrollar FORTRAN
- 1957, FORTRAN se utiliza en la IBM modelo 704
- Surge el concepto traductor
- El primer compilador de FORTRAN tardó 18 años-persona en realizarse
- FORTRAN era dependiente de la máquina
- Paralelamente al desarrollo de FORTRAN en América, en Europa surge una corriente que pretende que los lenguajes fuesen independientes de la máquina, esta corriente estaba influida por los trabajos sobre GLC de Chomsky
- Surge un grupo Europeo encabezado por F.L. Bauer, en la que participó ACM y John Backus. De este grupo surge un informe que define un Lenguaje Algebraico Internacional, publicado en Zurich en 1958
- 1969, aparece Algol 60.
6
- Junto con los lenguajes también la técnica de los compiladores avanza
- 1958, Strong y otros proponen una solución al problema de que un compilador fuera portable, y esta era dividir al compilador en dos fases “front end” (analiza el programa fuente) y “back end” (genera código objeto para la máquina objeto).
- El puente de unión era un lenguaje intermedio denominado UNCOL –Universal Computer Oriented Language (no funcionó)
- 1959, Rabin y Scott proponen el empleo de AFD y AFN para el reconocimiento lexicográfico de los lenguajes
- Aparece BNF (Backus-1960, Naur-1963, Knuth-1964) como una guía para el desarrollo del análisis sintáctico
- 1959, Sheridan describe un método de parsing de FORTRAN para introducir paréntesis en una expresión
- En los 60’s se desarrollan diversos métodos de parsers ascendentes y descendentes
- Floyd más adelante introduce la técnica de precedencia de operadores y uso de funciones de precedencia
- 1961, se usa por primera vez un parsing descendente recursivo
- En los 60’s se estudia el paso de parámetros por nombre, valor y referencia y se incluyen los procedimientos recursivos para Algol 60
- Se desarrolla la localización dinámica de datos
- 1968, se estudia y definen las GLC, los parsers predictivos y la eliminación de recursividad izquierda
- 1975, aparece LEX generador automático de analizadores léxicos a partir de expresiones regulares bajo UNIX
- A mitad de los 70’s Johnson crea YACC para UNIX (generador de analizadores sintácticos)
7
- Ahora un compilador de divide en varias fases
- El último lenguaje de programación de amplia aceptación es JAVA (es interpretado)
2.2 CONCEPTO PRINCIPAL
2.2.1 ¿Qué es un compilador?
Un traductor es cualquier programa que toma como entrada un texto escrito en un lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado objeto.
...