lunes, 6 de septiembre de 2010

publico mi sliceshare donde estan diferentes diapositivas de la unidades de la materia en
PROGRAMACION DE SISTEMAS
http://www.slideshare.net/josemarsistemas

viernes, 20 de agosto de 2010

Compiladores


           Introducción    
Los compiladores son programas que traducen de un lenguaje a otro, toma como su entrada un programa escrito en lenguaje fuente y produce un programa equivalente escrito en lenguaje objetivo por lo regular el lenguaje fuente es un lenguaje de alto nivel, mientras que el lenguaje objetivo es código objeto (código de máquina).



Un compilador es un  programa muy complejo con un número de líneas de código que puede variar de 10000 a 100000. Escribir un programa o incluso comprenderlo no es una tarea fácil, no obstante los compiladores se utilizan en casi todas las formas de la computación.



Una tarea frecuente en las aplicaciones de las computadoras es el desarrollo de los programas de interface e intérpretes que son más pequeños que los compiladores pero utilizan las mismas técnicas, el conocimiento de estas técnicas tiene una aplicación práctica importante



Es necesario estudiar las técnicas teóricas principalmente las provenientes de la teoría de los autómatas. El estudio de las técnicas de codificación practica en sí mismo requiere cuidadosa planeación ya que incluso con buenos fundamentos teóricos la codificación puede ser complejo y abrumador.



Existe una importante interacción entre la estructura de un compilador y el diseño del lenguaje de programación.
Objetivo
Conocer la historia sobre los compiladores, como comenzaron y como es que han ido evolucionando, así como sus programas para la creación de ellos, sus interpretes, ensambladores, cargadores, liga dores, preprocesadores, editores, depuradores, perfiladores y administrador de proyecto.
Historia
Con la  llegada de la computadora con programa almacenado iniciado por John von Newman  se hizo necesario escribir secuencias de códigos  que darían como resultado los cálculos deseados. En un principio se escribía en lenguaje de maquina códigos numéricos que representaban las operaciones reales, por su puesto la escritura de tales códigos es muy tediosa  y consume mucho tiempo por lo que fue desplazada por el lenguaje ensamblador.



Más o menos al mismo tiempo en que el primero compilador se estaba desarrollando, Noam Chomsky comenzó a estudiar la estructura del lenguaje natural. Los estudios de Chomsky condujeron a la clasificación de los lenguajes de acuerdo con la complejidad de sus gramáticas y la potencia de los algoritmos necesarios para conocerlas.LA jerarquía de Chomsky, como ahora se lo conoce, se compone de cuatro niveles de gramáticas, tipo 0, 1, 2 y 3, cada una de las cuales es  una especialización de su predecesora.



EL estudio del problema de análisis sintáctico se llevó acabo en las décadas de los 60 y 70 y condujo a una solución muy completa del problema, que en la actualidad se ha vuelto una parte estándar de la teoría de los compiladores.



A medida que el problema del análisis sintáctico se comprendía bien, se dedicó mucho trabajo a desarrollar programas que automatizaran esta parte del desarrollo de compiladores, estos programas originalmente se llamaron compiladores de compilador, pero se hace referencia a ellos de manera más acertada como generadores de analizadores sintácticos ya que automatizan solo una parte del proceso de compilación.



El más conocido de estos programas es Yacc. El cual fue escrito por Steve Johnson en 1975 para el sistema Unix los avances más resientes en el desarrollo de compiladores han incluido lo siguiente:



Han incluido la aplicación de los algoritmos más sofisticados para inferir y/o  simplificar la información contenida del programa, en segundo lugar los compiladores se han vuelto cada vez más una parte de un ambiente de desarrollo interactivo.
Desarrollo
Programas relacionados con los compiladores
Interpretes un intérprete es un traductor de lenguaje, igual que un compilador, pero con difiere de este que se ejecuta el programa fuente inmediatamente. En principio, cualquier lenguaje de programación se puede interpretar o compilar, pero se puede preferir un intérprete a un compilador dependiendo del lenguaje que se esté usando y de la situación, por ejemplo Basic es un lenguaje que por lo regular es interpretado en vez de compilado. Los interpretes también se utilizan con frecuencia en situaciones relacionadas con la enseñanza o con el desarrollo de sw, donde los programas son probablemente traducidos y vueltos a traducir muchas veces.
Ensambladores
Un ensamblador es un traductor para el lenguaje ensamblador. En ocasiones un compilador generara lenguaje ensamblador como su lenguaje objetivo y dependerá entonces de un ensamblador para determinar la traducción del código.
Ligadores


Los Ligadores recopilan el código que se compila o ensambla por separado en diferentes archivos objeto, a un archivo que es directamente ejecutable, un ligador también conecta un programa objeto con el código de funciones de librerías estándar, así como con recursos suministrados por el SO tales como asignadores de memoria  dispositivos.



Cargadores
Con frecuencia un compilador, ensamblador o ligador producirá un código que todavía no está completamente organizado y listo para ejecutarse. El uso de un cargador hace más flexible.



El código ejecutable, pero el proceso de carga con frecuencia ocurre en segundo plano.
Preprocesadores
Es un programa separado que es invocado por el compilador, este tipo de preprocesadores puede eliminar los comentarios, incluir otros archivos y ejecutar sustituciones de macro.
Editores
Puede utilizarse para determinar los errores de ejecución en un programa compilado, la ejecución de un programa con un depurador se hace diferente de la ejecución directa.

Perfiladores
Son programas que recolectan estadísticas sobre el comportamiento de un programa objeto durante la ejecución
Administrador de proyectos
Lo proyectos modernos de software grandes son emprendidos por grupos  de programadores. Ya que en tales casos es importante que los archivos se estén trabajando por distintas personas y se encuentre coordinados, a este  trabajo se le llama: programa de administración de proyectos.

Bibliografía
Resumen “introducción a los compiladores historia y programas relacionados con los compiladores”
Elaborado por: José Martínez Limón Alumno de 
Ing. En Sistemas Computaciones en el Instituto Tecnológico Superior de San Martin Texmelucan