SlideShare ist ein Scribd-Unternehmen logo
1 von 8
INTEGRANTES:

• MIRANDA MARTHA JOSELINE

   •   VILLA ALBA SUSANA
COMPILADOR
Historia

En 1946 se desarrolló la primera computadora digital. En un principio, estas
máquinas ejecutaban instrucciones consistentes en códigos numéricos que
señalaban a los circuitos de la máquina los estados correspondientes a cada
operación, lo que se denominó lenguaje máquina.


Pronto los primeros usuarios de estos ordenadores descubrieron la ventaja
de escribir sus programas mediante claves más fáciles de recordar que esos
códigos; al final, todas esas claves juntas se traducían manualmente a
lenguaje   máquina.   Estas   claves   constituyen   los   llamados   lenguajes
ensambladores.


Pese a todo, el lenguaje ensamblador seguía siendo el de una máquina, pero
más fácil de manejar. Los trabajos de investigación se orientaron hacia la
creación de un lenguaje que expresara las distintas acciones a realizar de
una manera lo más sencilla posible para una persona. El primer compilador
fue escrito por Grace Hopper, en 1952 para el lenguaje de programación
A-0, En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje
algebraico. En 1954 se empezó a desarrollar un lenguaje que permitía
escribir fórmulas matemáticas de manera traducible por un ordenador; le
llamaron FORTRAN (FORmulae TRANslator). Fue el primer lenguaje de alto
nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704.


Surgió así por primera vez el concepto de un traductor como un programa
que traducía un lenguaje a otro lenguaje. En el caso particular de que el
lenguaje a traducir es un lenguaje de alto nivel y el lenguaje traducido de
bajo nivel, se emplea el término compilador.


La tarea de realizar un compilador no fue fácil. El primer compilador de
FORTRAN tardó 18 años-persona en realizarse y era muy sencillo. Este
desarrollo de FORTRAN estaba muy influenciado por la máquina objeto en la
que iba a ser implementado. Como un ejemplo de ello tenemos el hecho de
que los espacios en blanco fuesen ignorados, debido a que el periférico que
se utilizaba como entrada de programas (una lectora de tarjetas perforadas)
no contaba correctamente los espacios en blanco.


El primer compilador auto contenido, es decir, capaz de compilar su propio
código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962.
Desde 1970 se ha convertido en una práctica común escribir el compilador en
el mismo lenguaje que este compila, aunque Pascal y C han sido alternativas
muy usadas.


Crear   un    compilador   auto   contenido    genera   un   problema   llamado
bootstrapping, es decir el primer compilador creado para un lenguaje tiene
que o bien ser compilado por un compilador escrito en otro lenguaje o bien
compilado al ejecutar el compilador en un intérprete.

¿QUE ES UN COMPILADOR?


Un compilador es un programa informático que traduce un programa escrito
en un lenguaje de programación a otro lenguaje de programación, generando
un programa equivalente que la máquina será capaz de interpretar.
Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede
ser simplemente texto. Este proceso de traducción se conoce como
compilación.[1]
Un compilador es un programa que permite traducir el código fuente de un
programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior
(típicamente lenguaje de máquina). De esta manera un programador puede
diseñar un programa en un lenguaje mucho más cercano a como piensa un
ser humano, para luego compilarlo a un programa más manejable por una
computadora.


Partes de un compilador

La construcción de un compilador involucra la división del proceso en una
serie de fases que variará con su complejidad. Generalmente estas fases se
agrupan en dos tareas: el análisis del programa fuente y la síntesis del
programa objeto.

   •   Análisis: Se trata de la comprobación de la corrección del programa
       fuente, e incluye las fases correspondientes al Análisis Léxico (que
       consiste en la descomposición del programa fuente en componentes
       léxicos), Análisis Sintáctico (agrupación de los componentes léxicos en
       frases gramaticales ) y Análisis Semántico (comprobación de la validez
       semántica de las sentencias aceptadas en la fase de Análisis
       Sintáctico).
   •   Síntesis: Su objetivo es la generación de la salida expresada en el
       lenguaje objeto y suele estar formado por una o varias combinaciones
       de fases de Generación de Código (normalmente se trata de código
       intermedio o de código objeto) y de Optimización de Código (en las que
       se busca obtener un código lo más eficiente posible).

Alternativamente, las fases descritas para las tareas de análisis y síntesis se
pueden agrupar en Front-end y Back-end:

   •   Front-end: es la parte que analiza el código fuente, comprueba su
       validez, genera el árbol de derivación y rellena los valores de la tabla
       de símbolos. Esta parte suele ser independiente de la plataforma o
       sistema para el cual se vaya a compilar, y está compuesta por las fases
       comprendidas entre el Análisis Léxico y la Generación de Código
       Intermedio.
•   Back-end: es la parte que genera el código máquina, específico de una
       plataforma, a partir de los resultados de la fase de análisis, realizada
       por el Front End.

Esta división permite que el mismo Back End se utilice para generar el
código máquina de varios lenguajes de programación distintos y que el mismo
Front End que sirve para analizar el código fuente de un lenguaje de
programación concreto sirva para generar código máquina en varias
plataformas distintas. Suele incluir la generación y optimización del código
dependiente de la máquina.

El código que genera el Back End normalmente no se puede ejecutar
directamente, sino que necesita ser enlazado por un programa enlazador
(linker)

TIPOS DE COMPILADORES



Esta taxonomía de los tipos de compiladores no es excluyente, por lo que
puede haber compiladores que se adscriban a varias categorías:


   •   Compiladores cruzados: generan código para un sistema distinto del que
       están funcionando.
   •   Compiladores optimizadores: realizan cambios en el código para mejorar su
       eficiencia, pero manteniendo la funcionalidad del programa original.
   •   Compiladores de una sola pasada: generan el código máquina a partir de una
       única lectura del código fuente.
   •   Compiladores de varias pasadas: necesitan leer el código fuente varias veces
       antes de poder producir el código máquina.
   •   Compiladores JIT (Just In Time): forman parte de un intérprete y compilan
       partes del código según se necesitan.


Pauta de creación de un compilador: En las primeras épocas de la
informática, el software de los compiladores era considerado como uno de
los más complejos existentes.
Los primeros compiladores se realizaron programándolos directamente en
lenguaje máquina o en ensamblador. Una vez que se dispone de un
compilador, se pueden escribir nuevas versiones del compilador (u otros
compiladores distintos) en el lenguaje que compila ese compilador.


Actualmente   existen    herramientas   que facilitan la tarea      de escribir
compiladores ó intérpretes informáticos. Estas herramientas permiten
generar el esqueleto del analizador sintáctico a partir de una definición
formal del lenguaje de partida, especificada normalmente mediante una
gramática   formal   y   barata,   dejando   únicamente   al   programador   del
compilador la tarea de programar las acciones semánticas asociadas.

PROCESO DE COMPILACIÓN

Es el proceso por el cual se traducen las instrucciones escritas en un
determinado lenguaje de programación a lenguaje máquina. Además de un
traductor, se pueden necesitar otros programas para crear un programa
objeto ejecutable. Un programa fuente se puede dividir en módulos
almacenados en archivos distintos. La tarea de reunir el programa fuente a
menudo se confía a un programa distinto, llamado preprocesador. El
preprocesador también puede expandir abreviaturas, llamadas a macros, a
proposiciones del lenguaje fuente.


Normalmente la creación de un programa ejecutable (un típico.exe para
Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama
compilación (propiamente dicho) y traduce el código fuente escrito en un
lenguaje de programación almacenado en un archivo a código en bajo nivel
(normalmente en código objeto, no directamente a lenguaje máquina). El
segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel
generado de todos los ficheros y subprogramas que se han mandado
compilar y se añade el código de las funciones que hay en las bibliotecas del
compilador para que el ejecutable pueda comunicarse directamente con el
sistema operativo, traduciendo así finalmente el código objeto a código
máquina, y generando un módulo ejecutable.


Estos dos pasos se pueden hacer por separado, almacenando el resultado de
la fase de compilación en archivos objetos (un típico.obj para Microsoft
Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear
directamente el ejecutable; con lo que la fase de compilación se almacena
sólo temporalmente. Un programa podría tener partes escritas en varios
lenguajes (por ejemplo C, C++ y Asm), que se podrían compilar de forma
independiente y luego enlazar juntas para formar un único módulo ejecutable.

Weitere ähnliche Inhalte

Was ist angesagt?

Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compiladorElba Sepúlveda
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iRossana Sosa
 
Compiladores diapositivas
Compiladores diapositivasCompiladores diapositivas
Compiladores diapositivasjonathangrief
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De CompiladorJoel Soto
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladoresCJAO
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretesfrezko23
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interpreteperlallamas
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1X3025990
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosDIEGO BAROJA
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 

Was ist angesagt? (16)

Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compilador
 
Compiladores trabajo numero 4
Compiladores trabajo numero 4Compiladores trabajo numero 4
Compiladores trabajo numero 4
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes i
 
Compiladores diapositivas
Compiladores diapositivasCompiladores diapositivas
Compiladores diapositivas
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De Compilador
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Universidad fermín toro
Universidad fermín toroUniversidad fermín toro
Universidad fermín toro
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladores
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretes
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzados
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 

Andere mochten auch

Animacion 2
Animacion 2Animacion 2
Animacion 2KiaraWr
 
Restaurante El Lago
Restaurante El LagoRestaurante El Lago
Restaurante El LagoGabz92
 
Configuraciones electrónicas
Configuraciones electrónicasConfiguraciones electrónicas
Configuraciones electrónicasArturo Blanco
 
Reforma al artículo 14 bis de la ley reglamentaria del artículo 27 constituci...
Reforma al artículo 14 bis de la ley reglamentaria del artículo 27 constituci...Reforma al artículo 14 bis de la ley reglamentaria del artículo 27 constituci...
Reforma al artículo 14 bis de la ley reglamentaria del artículo 27 constituci...UNAM
 
Decreto por el que se reforman, adicionan y derogan diversas disposiciones de...
Decreto por el que se reforman, adicionan y derogan diversas disposiciones de...Decreto por el que se reforman, adicionan y derogan diversas disposiciones de...
Decreto por el que se reforman, adicionan y derogan diversas disposiciones de...UNAM
 
Los diez edificios mas altos del mundo
Los diez edificios mas altos del mundoLos diez edificios mas altos del mundo
Los diez edificios mas altos del mundodaniela
 
presentacio.odp
presentacio.odppresentacio.odp
presentacio.odpPremi TIC
 
Que reforma el artículo 219 del código federal de instituciones y procedimien...
Que reforma el artículo 219 del código federal de instituciones y procedimien...Que reforma el artículo 219 del código federal de instituciones y procedimien...
Que reforma el artículo 219 del código federal de instituciones y procedimien...UNAM
 
Entre pares
Entre paresEntre pares
Entre paresmonica
 

Andere mochten auch (20)

Animacion 2
Animacion 2Animacion 2
Animacion 2
 
Los ecosistemas
Los ecosistemasLos ecosistemas
Los ecosistemas
 
Restaurante El Lago
Restaurante El LagoRestaurante El Lago
Restaurante El Lago
 
Configuraciones electrónicas
Configuraciones electrónicasConfiguraciones electrónicas
Configuraciones electrónicas
 
Blogs wordpress
Blogs wordpressBlogs wordpress
Blogs wordpress
 
Reformas necesarias_Beatriz Camacho_México
Reformas necesarias_Beatriz Camacho_MéxicoReformas necesarias_Beatriz Camacho_México
Reformas necesarias_Beatriz Camacho_México
 
Tipus d'ordinadors
Tipus d'ordinadorsTipus d'ordinadors
Tipus d'ordinadors
 
Presentacion Cuba
Presentacion CubaPresentacion Cuba
Presentacion Cuba
 
Reforma al artículo 14 bis de la ley reglamentaria del artículo 27 constituci...
Reforma al artículo 14 bis de la ley reglamentaria del artículo 27 constituci...Reforma al artículo 14 bis de la ley reglamentaria del artículo 27 constituci...
Reforma al artículo 14 bis de la ley reglamentaria del artículo 27 constituci...
 
Decreto por el que se reforman, adicionan y derogan diversas disposiciones de...
Decreto por el que se reforman, adicionan y derogan diversas disposiciones de...Decreto por el que se reforman, adicionan y derogan diversas disposiciones de...
Decreto por el que se reforman, adicionan y derogan diversas disposiciones de...
 
Yoryos
YoryosYoryos
Yoryos
 
Los diez edificios mas altos del mundo
Los diez edificios mas altos del mundoLos diez edificios mas altos del mundo
Los diez edificios mas altos del mundo
 
0301.ppt
0301.ppt0301.ppt
0301.ppt
 
Plan de negocios biocraft
Plan de negocios biocraftPlan de negocios biocraft
Plan de negocios biocraft
 
presentacio.odp
presentacio.odppresentacio.odp
presentacio.odp
 
Examen word
Examen wordExamen word
Examen word
 
Meiosis
MeiosisMeiosis
Meiosis
 
Que reforma el artículo 219 del código federal de instituciones y procedimien...
Que reforma el artículo 219 del código federal de instituciones y procedimien...Que reforma el artículo 219 del código federal de instituciones y procedimien...
Que reforma el artículo 219 del código federal de instituciones y procedimien...
 
Motivacion Equipo
Motivacion EquipoMotivacion Equipo
Motivacion Equipo
 
Entre pares
Entre paresEntre pares
Entre pares
 

Ähnlich wie H:\compiladores

C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDLACGP
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
Conceptos de compilador
Conceptos de compiladorConceptos de compilador
Conceptos de compiladorJoel Soto
 
C:\fakepath\compiladores
C:\fakepath\compiladoresC:\fakepath\compiladores
C:\fakepath\compiladorespaulina8
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentaciondodi1997
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladoresbachispasaca
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador ADOLFOISAIASGARCIASI
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
Introducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionIntroducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionAndres Garcia
 
Compiladores financieros trabajo 10
Compiladores financieros trabajo 10Compiladores financieros trabajo 10
Compiladores financieros trabajo 10anita andrea
 
Actividad 3
Actividad 3Actividad 3
Actividad 3maryr_
 
Especialidad
EspecialidadEspecialidad
EspecialidadDilan19
 
Especialidad
EspecialidadEspecialidad
Especialidadbecew
 

Ähnlich wie H:\compiladores (20)

C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
Conceptos de compilador
Conceptos de compiladorConceptos de compilador
Conceptos de compilador
 
C:\fakepath\compiladores
C:\fakepath\compiladoresC:\fakepath\compiladores
C:\fakepath\compiladores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Compilador
CompiladorCompilador
Compilador
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Introducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De ProgramacionIntroducción a la programacion 3 Software De Programacion
Introducción a la programacion 3 Software De Programacion
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
Compiladores financieros trabajo 10
Compiladores financieros trabajo 10Compiladores financieros trabajo 10
Compiladores financieros trabajo 10
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
Especialidad
EspecialidadEspecialidad
Especialidad
 
Especialidad
EspecialidadEspecialidad
Especialidad
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 

Mehr von universidad nacional de chimborazo (11)

C:\fakepath\examen de informática
C:\fakepath\examen de informáticaC:\fakepath\examen de informática
C:\fakepath\examen de informática
 
C:\fakepath\examen de informática
C:\fakepath\examen de informáticaC:\fakepath\examen de informática
C:\fakepath\examen de informática
 
H:\alba y joseline
H:\alba y joselineH:\alba y joseline
H:\alba y joseline
 
universidad
universidaduniversidad
universidad
 
H:\software financiero
H:\software financieroH:\software financiero
H:\software financiero
 
H:\realidad virtual
H:\realidad virtualH:\realidad virtual
H:\realidad virtual
 
H:\bibliotecas virtuales
H:\bibliotecas virtualesH:\bibliotecas virtuales
H:\bibliotecas virtuales
 
H:\software libre
H:\software libreH:\software libre
H:\software libre
 
H:\ofimatica
H:\ofimaticaH:\ofimatica
H:\ofimatica
 
H:\sistema operativo
H:\sistema operativoH:\sistema operativo
H:\sistema operativo
 
G:\derechos
G:\derechosG:\derechos
G:\derechos
 

Kürzlich hochgeladen

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Kürzlich hochgeladen (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

H:\compiladores

  • 1. INTEGRANTES: • MIRANDA MARTHA JOSELINE • VILLA ALBA SUSANA
  • 2.
  • 3. COMPILADOR Historia En 1946 se desarrolló la primera computadora digital. En un principio, estas máquinas ejecutaban instrucciones consistentes en códigos numéricos que señalaban a los circuitos de la máquina los estados correspondientes a cada operación, lo que se denominó lenguaje máquina. Pronto los primeros usuarios de estos ordenadores descubrieron la ventaja de escribir sus programas mediante claves más fáciles de recordar que esos códigos; al final, todas esas claves juntas se traducían manualmente a lenguaje máquina. Estas claves constituyen los llamados lenguajes ensambladores. Pese a todo, el lenguaje ensamblador seguía siendo el de una máquina, pero más fácil de manejar. Los trabajos de investigación se orientaron hacia la creación de un lenguaje que expresara las distintas acciones a realizar de una manera lo más sencilla posible para una persona. El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programación A-0, En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje algebraico. En 1954 se empezó a desarrollar un lenguaje que permitía escribir fórmulas matemáticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator). Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704. Surgió así por primera vez el concepto de un traductor como un programa que traducía un lenguaje a otro lenguaje. En el caso particular de que el
  • 4. lenguaje a traducir es un lenguaje de alto nivel y el lenguaje traducido de bajo nivel, se emplea el término compilador. La tarea de realizar un compilador no fue fácil. El primer compilador de FORTRAN tardó 18 años-persona en realizarse y era muy sencillo. Este desarrollo de FORTRAN estaba muy influenciado por la máquina objeto en la que iba a ser implementado. Como un ejemplo de ello tenemos el hecho de que los espacios en blanco fuesen ignorados, debido a que el periférico que se utilizaba como entrada de programas (una lectora de tarjetas perforadas) no contaba correctamente los espacios en blanco. El primer compilador auto contenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha convertido en una práctica común escribir el compilador en el mismo lenguaje que este compila, aunque Pascal y C han sido alternativas muy usadas. Crear un compilador auto contenido genera un problema llamado bootstrapping, es decir el primer compilador creado para un lenguaje tiene que o bien ser compilado por un compilador escrito en otro lenguaje o bien compilado al ejecutar el compilador en un intérprete. ¿QUE ES UN COMPILADOR? Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.[1]
  • 5. Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora. Partes de un compilador La construcción de un compilador involucra la división del proceso en una serie de fases que variará con su complejidad. Generalmente estas fases se agrupan en dos tareas: el análisis del programa fuente y la síntesis del programa objeto. • Análisis: Se trata de la comprobación de la corrección del programa fuente, e incluye las fases correspondientes al Análisis Léxico (que consiste en la descomposición del programa fuente en componentes léxicos), Análisis Sintáctico (agrupación de los componentes léxicos en frases gramaticales ) y Análisis Semántico (comprobación de la validez semántica de las sentencias aceptadas en la fase de Análisis Sintáctico). • Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generación de Código (normalmente se trata de código intermedio o de código objeto) y de Optimización de Código (en las que se busca obtener un código lo más eficiente posible). Alternativamente, las fases descritas para las tareas de análisis y síntesis se pueden agrupar en Front-end y Back-end: • Front-end: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar, y está compuesta por las fases comprendidas entre el Análisis Léxico y la Generación de Código Intermedio.
  • 6. Back-end: es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End. Esta división permite que el mismo Back End se utilice para generar el código máquina de varios lenguajes de programación distintos y que el mismo Front End que sirve para analizar el código fuente de un lenguaje de programación concreto sirva para generar código máquina en varias plataformas distintas. Suele incluir la generación y optimización del código dependiente de la máquina. El código que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker) TIPOS DE COMPILADORES Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías: • Compiladores cruzados: generan código para un sistema distinto del que están funcionando. • Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. • Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente. • Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina. • Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan. Pauta de creación de un compilador: En las primeras épocas de la informática, el software de los compiladores era considerado como uno de los más complejos existentes.
  • 7. Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador. Actualmente existen herramientas que facilitan la tarea de escribir compiladores ó intérpretes informáticos. Estas herramientas permiten generar el esqueleto del analizador sintáctico a partir de una definición formal del lenguaje de partida, especificada normalmente mediante una gramática formal y barata, dejando únicamente al programador del compilador la tarea de programar las acciones semánticas asociadas. PROCESO DE COMPILACIÓN Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje máquina. Además de un traductor, se pueden necesitar otros programas para crear un programa objeto ejecutable. Un programa fuente se puede dividir en módulos almacenados en archivos distintos. La tarea de reunir el programa fuente a menudo se confía a un programa distinto, llamado preprocesador. El preprocesador también puede expandir abreviaturas, llamadas a macros, a proposiciones del lenguaje fuente. Normalmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado
  • 8. compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable. Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (por ejemplo C, C++ y Asm), que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.