Procesadores de lenguajes
CONCEPTOS BÁSICOS DE PROCESADORES DE LENGUAJE
Juan Manuel Cueva Lovelle
Catedrático de E.U. de Lenguajes y Sistemas Informáticos Departamento de Informática Universidad de Oviedo
Diciembre 1998
Cuaderno Nº 10 Conceptos básicos de Procesadores de Lenguaje
Autor: J.M. Cueva Lovelle Dpto. de Informática Universidad de Oviedo - España
Editorial: SERVITECISBN: 84-8416-889-1 Deposito Legal: AS-3552-98
Oviedo, Diciembre 1998 1ª Edición
PRÓLOGO
El objetivo de este Cuaderno Didáctico es enseñar al alumno los problemas y técnicas que se plantean en el diseño y construcción de procesadores de lenguaje. El estudio de estas técnicas permite al alumno una visión más amplia de los lenguajes de programación, habitualmente estudiados desde el puntode vista del programador y no de las interioridades inherentes a su diseño e implementación. La utilidad de profundizar en los procesadores de lenguaje se puede resumir en los siguientes puntos: • Conocer mejor el lenguaje que se utiliza habitualmente. • Ampliar los conocimientos sobre la implementación interna de las estructuras de datos y clases de los lenguajes de programación. • Posibilidad decomparar entre distintos lenguajes de programación, mejorando la capacidad de selección de un lenguaje. • Estudiar las relaciones entre los procesadores de lenguaje y la arquitectura de los ordenadores. • Facilitar la evaluación y elección de las herramientas de manejo de lenguajes (compiladores, intérpretes, etc...) • Aprender a diseñar lenguajes de programación. En primer lugar se realiza unapanorámica general de los lenguajes de programación y otros tipos de lenguajes presentes actualmente en Informática. A continuación se definen los procesadores de lenguaje y se especifican algunos de sus tipos. El tercer apartado está dedicado a las arquitecturas de ordenadores y su influencia en la construcción de procesadores de lenguaje. A continuación se incluyen varios epígrafes sobreportabilidad y puesta en marcha de compiladores. En el apartado 7 comienza un conjunto de apartados sobre la especificación de lenguajes. A partir del apartado 12 se van describiendo los distintos módulos que conducen a la construcción de traductores, compiladores, e intérpretes introduciendo los conceptos necesarios para su comprensión. La metodología de desarrollo de un procesador de lenguaje es un casoparticular de la ingeniería del software. La fase de análisis está constituida por la definición de los requisitos del lenguaje fuente y el lenguaje objeto si lo hubiera, por medio de su especificación léxica, sintáctica y semántica. El segundo paso es el diseño preliminar donde se defienen las características de los módulos que van a componer el sistema, es decir los analizadores: léxico,sintáctico y semántico, la tabla de símbolos, el tratamiento de errores, y la generación de código intermedio. Otros módulos posibles son el generador de código objeto, el optimizador de código, el intérprete. El siguiente paso es el diseño detallado donde se especifican las operaciones que se realizarán en cada módulo. El último paso es la implementación, en este caso cada módulo se implementa como unaclase y las operaciones externas sobre la clase serán los métodos públicos y los datos y métodos relativos a la implementación constituirán la parte privada. El resultado final es el procesador de lenguaje como un módulo que utiliza los objetos que son instancias de las distintas clases. También se incluyen unas breves descripciones de las herramientas de desarrollo de procesadores de lenguaje. Porúltimo se incluye una reseña histórica de los procesadores de lenguaje y una bibliografía comentada. Las descripciones se complementan con un conjunto de ejemplos, que culminan en el desarrollo completo de pequeños compiladores, traductores e intérpretes. También se incorporan ejercicios propuestos con distintos grados de dificultad. El desarrollo de los procesadores de lenguaje se realiza en...
Regístrate para leer el documento completo.