HERRAMIENTAS PARA LA CONSTRUCCIÓN DE COMPILADORES
Enviado por Francisco409 • 27 de Febrero de 2013 • 2.137 Palabras (9 Páginas) • 641 Visitas
RESUMEN
Son varios aspectos que están relacionados con un lenguaje de programación, el punto de vista de un programador profesional, el de un diseñador del lenguaje y el de la persona que implementa dicho lenguaje, considerando también los aspectos relacionados con el equipo de cómputo. El hablar de un programador, incluye importantes diferencias entre distintos niveles y aplicaciones de la programación. Diferencias que pueden ir desde el tipo de lenguaje que conoce hasta la aplicación que desee hacer con dicho lenguaje. Un programador de un lenguaje de programación es una persona o un grupo de personas que desarrolla un compilador o interprete para un lenguaje sobre una máquina particular o tipos de máquinas. Los lenguajes de programación se clasifican principalmente por nivel y por aplicaciones.
Cada programador tiene un estilo propio de programación, la decisión de incluir u omitir ciertos tipos de datos es importante en la forma en que el lenguaje es usado así como omitir o utilizar ciertos conceptos de programación o modelos. Más adelante, se contemplaran las características que se deben tener presentes al momento de diseñar un lenguaje de programación. Los lenguajes de programación son por lo tanto una solución de compromiso entre las necesidades del emisor (programador – persona) y del receptor (computador – maquina). C. Morris realiza una división del estudio de los signos (semiótica) en las siguientes partes:
• Sintaxis: relación de los signos entre sí. (Formato del lenguaje).
• Semántica: relación de los signos con los objetos a los que se aplican. (Comportamiento de los programas).
• Pragmática: relación de los signos con sus intérpretes. (Técnicas empleadas en su construcción)
CASO DE ESTUDIO
Como tal no existe una definición de caso de estudio, pero en base a observaciones una definición que dimos para caso de estudio es que es la implementación de un lenguaje de programación, respetando los siguientes puntos, los cuales son:
• Visión del problema.
• Consideraciones preliminares.
• Objetivos y filosofías del diseño de los lenguajes de programación.
• Diseño detallado.
VISIÓN DEL PROBLEMA
Un lenguaje es diseñado a menudo para su aplicación en un área específica. La mayor atención es dada a restringir el área de la aplicación del lenguaje, el mejor lenguaje será para problemas en esa área. Se debe identificar que es lo que se piensa hacer con el lenguaje, ya que puede ser sólo la estructuración de contenido Web, visualizar información o bien realizar la conversión de un documento.
CONSIDERACIONES PRELIMINARES
En el diseño de un nuevo lenguaje, ciertas cuestiones requieren pensarse bien antes de dar cualquier consideración para el detalle del diseño. Atención apropiada para esos avances puede evitar problemas futuros. La primera y más importante pregunta que se debe hacer es:
¿Es necesario diseñar un nuevo lenguaje?
Casi cualquier alternativa cercana, deberá ser simple y rápida tratando la dificultad y el tiempo de ejecución de una tarea de diseño para un lenguaje completamente nuevo.
¿Existe un lenguaje que pueda ser usado para llenar estos requerimientos? Si se requiere una nueva implementación, implementando un lenguaje existente es más fácil y rápido que el diseño y la implementación de un nuevo lenguaje. ¿Puede un lenguaje existente ser extendido? Es fácil diseñar una extensión clara para un lenguaje existente, siempre si la extensión implica un nuevo compilador que diseñe de un nuevo lenguaje. Si esta característica es tomada, sin embargo, debe ser tomada con cuidado, no hacer la extensión demasiado larga y compleja que llegue a ser, de hecho, un nuevo lenguaje. En tales casos la necesidad de retener algunas interfaces para el viejo lenguaje será probablemente un compromiso serio para el diseño de la extensión. También, si es extendido un lenguaje existente, es necesario seleccionar el lenguaje base cuidadosamente para que el trabajo de la extensión sea minimizado y la extensión ajuste elegantemente en el lenguaje. El objetivo deberá ser producir un lenguaje un poco mas grande pero igualmente bien construido. ¿Pudiera ser posible modificar un lenguaje existente, usando un macro procesador o algo similar? La facilidad para menos parámetros en macros (simplemente sustituyendo un texto específico por cada ocurrencia de un identificador definido) puede producir mayores alternativas en la sintaxis de un lenguaje, si se utiliza hábilmente. Sin embargo, el poder de este aprovechamiento para tareas más complejas, tales como introducir nuevas estructuras de datos, es limitado. Se deberán dar serias consideraciones para esas técnicas como alternativa para un nuevo lenguaje, simplemente sobre el área de minimizar el trabajo y tiempo empleado. Quizás no hay otros problemas relacionados con la computadora los cuales se ven tentadoramente fáciles y es tan terriblemente duro como hacer un buen trabajo de diseño de lenguaje.
Asumiendo que se ha tomado una decisión y ninguno de los acercamientos previos bastará, el siguiente punto de interés es:
¿Cual es el propósito del lenguaje?
Un lenguaje es muchas veces diseñado específicamente para la aplicación sobre un área. La principal atención se da para restringir el área de aplicación del lenguaje, lo mejor del lenguaje será para problemas en su área. De hecho, no es aconsejable intentar diseñar un lenguaje de propósito general compatible para cualquier problema. Actualmente todas las evidencias indican que no hay conocimientos de cómo hacer un trabajo propio de diseño de lenguaje que sea “bueno para cualquier cosa”. Finalmente, la relación de los nuevos lenguajes con los lenguajes existentes deberá ser considerada. Weinberg (1971) discute el fenómeno psicológico de “inhibición “, el cual ocurre cuando un viejo lenguaje y un nuevo lenguaje son similares pero no idénticos. El usuario es sometido a serias confusiones debido a incertidumbres acerca de cómo muchos de los viejos lenguajes se conservan en los nuevos. En resumen, es mejor hacer el nuevo lenguaje distintivamente diferente en vez de similitudes cercanas para cualquier lenguaje existente. Si el nuevo y viejo lenguajes son similares, quizás la necesidad de un nuevo lenguaje no ha sido propiamente examinada.
OBJETIVOS Y FILOSOFÍAS DEL DISEÑO DE LOS LENGUAJES DE PROGRAMACIÓN
En la preparación de un programa, el programador puede tener que escoger entre soluciones alternativas en muchos puntos. Cada elección debe hacerse para satisfacer los objetivos y las restricciones de la tarea de
...