SlideShare ist ein Scribd-Unternehmen logo
1 von 15
1
TRABAJODE COMPILADORES
PRESENTADO POR:
LEONARDO ALEXANDER PEÑARANDA ANGARITA
Código: 10937655556
PRESENTADO A MILIA YANETH CARDENAS GALVIS
CORPORACION UNIVERSITARIA REMINGTON
INGENIERIA DE SISTEMAS IV
CUCUTA/ NORTE DE SANTANDER
2014
2
TABLA DE CONTENIDO
COMPILADOR
1. ¿Qué es y para qué sirve un compilador?
2. ¿Cuáles son las fases de un compilador y establezca sus funciones?
3. ¿Qué es analizador léxico?
4. ¿Qué es un autómata finito?
5. ¿Qué es un autómata de pila?
6. ¿Qué es un diagrama de estados?
7. ¿Qué es una máquina de pila?
3
INTRODUCCION
Historia de los Compiladores
•A finales de la década de 1940, comenzaron a construirse las primeras computadoras
digitales y fue necesario implementar un lenguaje capas de realizar los cálculos, es
aquí donde aparece el lenguaje de maquina que representaba secuencias de códigos
uméricos: C7 06 0000 0002 (instrucción que mueve el número dos a la ubicación 0000)
•Desafortunadamente este lenguaje era tedioso de seguir y complicado de mantener,
por lo que esta forma de codificación fue reemplazada por el lenguaje ensamblador, en
el cual las instrucciones y las localidades de memoria son formas simbólicas. Un
ensamblador traduce de los códigos simbólicos a lenguaje de maquina. Aún con esta
mejora, el lenguaje ensamblador sigue siendo demasiado difícil de mantener:
MOV X, 2 (instrucción en ensamblador equivalente a la anterior)
• En este punto se presenta la necesidad de lenguajes que permitan escribir los
programas de forma concisa, similar a una notación matemática, y que se pudieran
traducir a código ejecutable para una máquina dada: X = 2
• En 1950, G. M. Hooperacuña el término compiladory aparecen los primeros trabajos
sobre compiladores relacionados con la traducción de fórmulasaritméticas código de
máquina.
• John Backuslideró un grupo de trabajo en IBM para realizar de un traductor de código
máquina a fórmulas matemáticas. Resultando con gran éxito: la especificación de un
4
lenguaje de alto nivel (FORTRAN, FORMULE TRANSLATION) Trabajaron 18 personas
durante más de un año en el proyecto.
• Fúe un compilador hecho ad-hoc(a puro corazón), pues no existía una teoría
formal,sino que se iban resolviendo las construcciones una a una, para cada situación
particular.
•Noam Chomsky comienza sus estudios sobre la estructura del lenguaje natural. Sus
estudios lo condujeron a la clasificación de los lenguajes de acuerdo a una jerarquía de
sus gramáticas, además sus estudios sobre los algoritmos de reconocimiento derivaron
en una automatización del proceso de traducción mas eficiente.
• 1960, se diseña el lenguaje LISP. En un principio, el código LISP se traducía
manualmente a código máquina. Se escribió en LISP un programa capaz de interpretar
programas LISP, que se tradujo manualmente a código de máquina, construyendo de
este modo un intérprete ejecutable de LISP.
• Knuth desarrolla la mayoría de las técnicas de análisis sintáctico.
• 1970, se presentan los mayores avances en el área de lenguajes de programación.
• Aparecen los primeros programas que automatizan los procesos de análisis léxico y
sintáctico. Surgiendo la llamada Torre de Babel debido a la proliferación de la teoría
para la construcción de compiladores.
• NiklausWirth, diseña Pascal, pensado para la enseñanza.
5
• Wirth propone el concepto de representación intermedia de código, separando el
proceso de traducción en dos fases: el front-end encargada de analizar el programa
fuente (operaciones dependientes sólo del lenguaje fuente) y el back-end encargada de
generar el código para la máquina objeto.
• 1980, comienzan a proliferar las técnicas de mejoramiento de código (optimización),
se consolida y prolifera el concepto de asignación y liberación de memoria dinámica. La
programación orientada a objetos es extensamente utilizada y madura.
• 1990, los lenguajes de programación y compiladores son muy similares a lo que
enemos actualmente, surgen los ambientes de desarrollo, los lenguajes interpretados
comienza a ganar terreno en aplicaciones de Internet y el código intermedio se vuelve a
poner de moda.
6
JUSTIFICACION
El siguiente trabajo se realizó con el objetivo de mostrar que es un compilador su uso
su historia y su método de implementación en el medio de la ingeniería y como una
gran herramienta en el momento de traducir de un lenguaje de alto nivel a uno de mas
bajo.
7
OBJETIVOS
1. Generales.
Mostrar que es un compilador, y sus funciones principales.
2. Específicos.
Mostrar que hay detrás de un compilador, su uso, sus funciones y su forma de utilizar.
8
1. ¿Para qué es y para qué sirve 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 un código intermedio (bytecode), o
simplemente texto. Este proceso de traducción se conoce como compilación.
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 cómo piensa un ser humano, para luego compilarlo a un
programa más manejable por una computadora.
Como parte importante de este proceso de traducción, el compilador informa a su
usuario de la presencia de errores en el programa fuente.
2. Fases de un compilador.
Análisis Léxico: Esta fase se encarga de verificar si todas las cadenas pertenecen o no
al lenguaje. Es decir realiza un análisis símbolo por símbolo indicando el token por
cada uno de los elementos reconocidos o el error en caso de no reconocer. Este
análisis no logra detectar muchos errores por su característica.
Análisis Sintáctico: En esta fase se analiza la estructura de las expresiones en base a
gramáticas. Aquí ya se puede determinar si una estructura por ejemplo una expresión
9
matemática mal formada. El análisis que se realiza es jerárquico es decir en base a
árboles de derivación que se obtienen de las mismas gramáticas.
Análisis Semántico: Este análisis es más difícil de formalizar, determina el tipo de los
resultados intermedios, comprobar que los argumentos que tienen un operador
pertenecen al conjunto de operadores posible, y si son compatibles entre sí.
Generación de Código Intermedió: El código intermedio es una representación en base
a elementos de 3 y 4 direcciones. Lo que nos permite llegar a la fase de optimización
de código.
Optimización de Código: Consiste en realizar una mejora en el código intermedio, para
reducir el número de líneas y hacer que la ejecución sea más rápida.
Generación de Código: Llegamos a la generación de código ensamblador o código
máquina del procesador que nos interese.
3. ¿Qué es un autómata Finito?
Un autómata finito (AF) o máquina de estado finito es un modelo computacional que
realiza cómputos en forma automática sobre una entrada para producir una salida.
10
Este modelo está conformado por un alfabeto, un conjunto de estados y un conjunto de
transiciones entre dichos estados. Su funcionamiento se basa en una función de
transición, que recibe a partir de un estado inicial una cadena de
caracterespertenecientes al alfabeto (la entrada), y que va leyendo dicha cadena a
medida que el autómata se desplaza de un estado a otro, para finalmente detenerse en
un estado final o de aceptación, que representa la salida.
La finalidad de los autómatas finitos es la de reconocer lenguajes regulares, que
corresponden a los lenguajes formales más simples según la Jerarquía de Chomsky.
4. ¿Qué es un autómata de pila?
Un autómata con pila, autómata a pila o autómata de pila es un modelo matemático de
un sistema que recibe una cadenaconstituida por símbolos de un alfabeto y determina
si esa cadena pertenece al lenguaje que el autómata reconoce. El lenguaje que
reconoce un autómata con pila pertenece al grupo de los lenguajes libres de
contexto en la clasificación de laJerarquía de Chomsky.
5. ¿Qué es un autómata finito?
Un autómata finito (AF) o máquina de estado finito es un modelo computacional que
realiza cómputos en forma automática sobre una entrada para producir una salida.
Este modelo está conformado por un alfabeto, un conjunto de estados y un conjunto de
transiciones entre dichos estados. Su funcionamiento se basa en una función de
11
transición, que recibe a partir de un estado inicial una cadena de
caracterespertenecientes al alfabeto (la entrada), y que va leyendo dicha cadena a
medida que el autómata se desplaza de un estado a otro, para finalmente detenerse en
un estado final o de aceptación, que representa la salida.
La finalidad de los autómatas finitos es la de reconocer lenguajes regulares, que
corresponden a los lenguajes formales más simples según la Jerarquía de Chomsky.
6. ¿Qué es un diagrama de estados?
Los diagramas de estado muestran el conjunto de estados por los cuales pasa un
objeto durante su vida en una aplicación en respuesta a eventos (por ejemplo,
mensajes recibidos, tiempo rebasado o errores), junto con sus respuestas y acciones.
También ilustran qué eventos pueden cambiar el estado de los objetos de la clase.
Normalmente contienen: estados y transiciones. Como los estados y las transiciones
incluyen, a su vez, eventos, acciones y actividades, vamos a ver primero sus
definiciones.
Al igual que otros diagramas, en los diagramas de estado pueden aparecer notas
explicativas y restricciones.
7. Que es una maquina de pila?
12
Una máquina de pila es un modelo computacional en el cual la memoria de la
computadora toma la forma de una o más pilas. El término también se refiere a un
computador real implementando o simulando una máquina de pila idealizada.
Adicionalmente, una máquina de pila también puede referirse a una máquina verdadera
o simulada con un conjunto de instrucciones de "0 operandos". En tal máquina, la
mayoría de las instrucciones implícitamente operan en valores en el tope de la pila y
reemplazan esos valores por el resultado. Típicamente tales máquinas también tienen
una instrucción "load" y una instrucción "store" que leen y escriben a posiciones
arbitrarias de la RAM. (Como el resto de las instrucciones, las instrucciones "load" y
"store" no necesitan ningún operando en una máquina de pila típica - ellas siempre
toman la dirección de la RAM que se quiere leer o escribir desde el tope de la pila).
La ventaja de las máquinas de pila ("conjunto de instrucciones de 0 operandos") sobre
las máquinas de acumulador ("conjunto de instrucciones de 1 operando") y
las máquinas de registro ("conjunto de instrucciones de 2 operandos" o un "conjunto de
instrucciones de 3 operandos") es que los programas escritos para un conjunto de
instrucciones de "0 operandos" generalmente tienen una densidad de código más alta
que los programas equivalentes escritos para otros conjuntos de instrucciones.
13
CONCLUSIONES
Un compilador es más que un traductor multilenguaje, es también un intérprete que
muestra una traducción de un código o lengaje.
14
BIBLIOGRAFIA
http://es.wikipedia.org/wiki/Compilador
http://es.wikipedia.org/wiki/Analizador_l%C3%A9xico
http://es.wikipedia.org/wiki/Aut%C3%B3mata_finito
http://es.wikipedia.org/wiki/Aut%C3%B3mata_de_pila
http://es.wikipedia.org/wiki/Diagrama_de_estado
http://es.wikipedia.org/wiki/M%C3%A1quina_de_pila
15

Weitere ähnliche Inhalte

Was ist angesagt?

Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador FuncionamientoKriz Kozlov
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
Compiladores diapositivas
Compiladores diapositivasCompiladores diapositivas
Compiladores diapositivasjonathangrief
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladoresCJAO
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interpreteperlallamas
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazadorRickyZhengHu
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compiladorDLACGP
 
Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compiladorElba Sepúlveda
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosDIEGO BAROJA
 

Was ist angesagt? (17)

Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador Funcionamiento
 
Pasadas multiples
Pasadas       multiplesPasadas       multiples
Pasadas multiples
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Compiladores diapositivas
Compiladores diapositivasCompiladores diapositivas
Compiladores diapositivas
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazador
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compilador
 
Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compilador
 
Bootstrapping
BootstrappingBootstrapping
Bootstrapping
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzados
 
H:\compiladores
H:\compiladoresH:\compiladores
H:\compiladores
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 
Decompilador y metacompilador
Decompilador y metacompiladorDecompilador y metacompilador
Decompilador y metacompilador
 

Ähnlich wie Compiladores trabajo numero 4

Corporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisyCorporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisyDeisy Nereida Lozada Ortiz
 
Compiladores financieros trabajo 10
Compiladores financieros trabajo 10Compiladores financieros trabajo 10
Compiladores financieros trabajo 10anita andrea
 
Especialidad
EspecialidadEspecialidad
EspecialidadDilan19
 
Especialidad
EspecialidadEspecialidad
Especialidadbecew
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1X3025990
 
Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2gabrielalija10
 
Libro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONLibro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONGabriel Alija
 
Glosario De Trabajo De Examen
Glosario De Trabajo De ExamenGlosario De Trabajo De Examen
Glosario De Trabajo De ExamenJoel Soto
 
Glosario de trabajo de examen
Glosario de trabajo de examenGlosario de trabajo de examen
Glosario de trabajo de examenJoel Soto
 
Compiladores y analizador léxico
Compiladores y analizador léxicoCompiladores y analizador léxico
Compiladores y analizador léxicokatherine133
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladoresbachispasaca
 
Tipos de lenguajes de programación
Tipos de lenguajes de programaciónTipos de lenguajes de programación
Tipos de lenguajes de programaciónJose Capetillo
 
Informacion sobre los compiladores y sus funciones
Informacion sobre los compiladores y sus funcionesInformacion sobre los compiladores y sus funciones
Informacion sobre los compiladores y sus funcionesFrancescoReinaga1
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2exequiel9035a
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN Karol Moreno
 
Cuestionario2
Cuestionario2Cuestionario2
Cuestionario2hoppii
 
Cuestionario2
Cuestionario2Cuestionario2
Cuestionario2hoppii
 
2 Conceptos De Programacion
2 Conceptos De Programacion2 Conceptos De Programacion
2 Conceptos De ProgramacionRubén Márquez
 

Ähnlich wie Compiladores trabajo numero 4 (20)

Corporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisyCorporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisy
 
Compilador
CompiladorCompilador
Compilador
 
Compiladores financieros trabajo 10
Compiladores financieros trabajo 10Compiladores financieros trabajo 10
Compiladores financieros trabajo 10
 
Especialidad
EspecialidadEspecialidad
Especialidad
 
Especialidad
EspecialidadEspecialidad
Especialidad
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2
 
Libro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONLibro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACION
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
Glosario De Trabajo De Examen
Glosario De Trabajo De ExamenGlosario De Trabajo De Examen
Glosario De Trabajo De Examen
 
Glosario de trabajo de examen
Glosario de trabajo de examenGlosario de trabajo de examen
Glosario de trabajo de examen
 
Compiladores y analizador léxico
Compiladores y analizador léxicoCompiladores y analizador léxico
Compiladores y analizador léxico
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Tipos de lenguajes de programación
Tipos de lenguajes de programaciónTipos de lenguajes de programación
Tipos de lenguajes de programación
 
Informacion sobre los compiladores y sus funciones
Informacion sobre los compiladores y sus funcionesInformacion sobre los compiladores y sus funciones
Informacion sobre los compiladores y sus funciones
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
 
Cuestionario2
Cuestionario2Cuestionario2
Cuestionario2
 
Cuestionario2
Cuestionario2Cuestionario2
Cuestionario2
 
2 Conceptos De Programacion
2 Conceptos De Programacion2 Conceptos De Programacion
2 Conceptos De Programacion
 

Kürzlich hochgeladen

Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosMARGARITAMARIAFERNAN1
 
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesgovovo2388
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILProblemSolved
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCarlosGabriel96
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 

Kürzlich hochgeladen (20)

Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - Ejercicios
 
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 

Compiladores trabajo numero 4

  • 1. 1 TRABAJODE COMPILADORES PRESENTADO POR: LEONARDO ALEXANDER PEÑARANDA ANGARITA Código: 10937655556 PRESENTADO A MILIA YANETH CARDENAS GALVIS CORPORACION UNIVERSITARIA REMINGTON INGENIERIA DE SISTEMAS IV CUCUTA/ NORTE DE SANTANDER 2014
  • 2. 2 TABLA DE CONTENIDO COMPILADOR 1. ¿Qué es y para qué sirve un compilador? 2. ¿Cuáles son las fases de un compilador y establezca sus funciones? 3. ¿Qué es analizador léxico? 4. ¿Qué es un autómata finito? 5. ¿Qué es un autómata de pila? 6. ¿Qué es un diagrama de estados? 7. ¿Qué es una máquina de pila?
  • 3. 3 INTRODUCCION Historia de los Compiladores •A finales de la década de 1940, comenzaron a construirse las primeras computadoras digitales y fue necesario implementar un lenguaje capas de realizar los cálculos, es aquí donde aparece el lenguaje de maquina que representaba secuencias de códigos uméricos: C7 06 0000 0002 (instrucción que mueve el número dos a la ubicación 0000) •Desafortunadamente este lenguaje era tedioso de seguir y complicado de mantener, por lo que esta forma de codificación fue reemplazada por el lenguaje ensamblador, en el cual las instrucciones y las localidades de memoria son formas simbólicas. Un ensamblador traduce de los códigos simbólicos a lenguaje de maquina. Aún con esta mejora, el lenguaje ensamblador sigue siendo demasiado difícil de mantener: MOV X, 2 (instrucción en ensamblador equivalente a la anterior) • En este punto se presenta la necesidad de lenguajes que permitan escribir los programas de forma concisa, similar a una notación matemática, y que se pudieran traducir a código ejecutable para una máquina dada: X = 2 • En 1950, G. M. Hooperacuña el término compiladory aparecen los primeros trabajos sobre compiladores relacionados con la traducción de fórmulasaritméticas código de máquina. • John Backuslideró un grupo de trabajo en IBM para realizar de un traductor de código máquina a fórmulas matemáticas. Resultando con gran éxito: la especificación de un
  • 4. 4 lenguaje de alto nivel (FORTRAN, FORMULE TRANSLATION) Trabajaron 18 personas durante más de un año en el proyecto. • Fúe un compilador hecho ad-hoc(a puro corazón), pues no existía una teoría formal,sino que se iban resolviendo las construcciones una a una, para cada situación particular. •Noam Chomsky comienza sus estudios sobre la estructura del lenguaje natural. Sus estudios lo condujeron a la clasificación de los lenguajes de acuerdo a una jerarquía de sus gramáticas, además sus estudios sobre los algoritmos de reconocimiento derivaron en una automatización del proceso de traducción mas eficiente. • 1960, se diseña el lenguaje LISP. En un principio, el código LISP se traducía manualmente a código máquina. Se escribió en LISP un programa capaz de interpretar programas LISP, que se tradujo manualmente a código de máquina, construyendo de este modo un intérprete ejecutable de LISP. • Knuth desarrolla la mayoría de las técnicas de análisis sintáctico. • 1970, se presentan los mayores avances en el área de lenguajes de programación. • Aparecen los primeros programas que automatizan los procesos de análisis léxico y sintáctico. Surgiendo la llamada Torre de Babel debido a la proliferación de la teoría para la construcción de compiladores. • NiklausWirth, diseña Pascal, pensado para la enseñanza.
  • 5. 5 • Wirth propone el concepto de representación intermedia de código, separando el proceso de traducción en dos fases: el front-end encargada de analizar el programa fuente (operaciones dependientes sólo del lenguaje fuente) y el back-end encargada de generar el código para la máquina objeto. • 1980, comienzan a proliferar las técnicas de mejoramiento de código (optimización), se consolida y prolifera el concepto de asignación y liberación de memoria dinámica. La programación orientada a objetos es extensamente utilizada y madura. • 1990, los lenguajes de programación y compiladores son muy similares a lo que enemos actualmente, surgen los ambientes de desarrollo, los lenguajes interpretados comienza a ganar terreno en aplicaciones de Internet y el código intermedio se vuelve a poner de moda.
  • 6. 6 JUSTIFICACION El siguiente trabajo se realizó con el objetivo de mostrar que es un compilador su uso su historia y su método de implementación en el medio de la ingeniería y como una gran herramienta en el momento de traducir de un lenguaje de alto nivel a uno de mas bajo.
  • 7. 7 OBJETIVOS 1. Generales. Mostrar que es un compilador, y sus funciones principales. 2. Específicos. Mostrar que hay detrás de un compilador, su uso, sus funciones y su forma de utilizar.
  • 8. 8 1. ¿Para qué es y para qué sirve 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 un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación. 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 cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora. Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente. 2. Fases de un compilador. Análisis Léxico: Esta fase se encarga de verificar si todas las cadenas pertenecen o no al lenguaje. Es decir realiza un análisis símbolo por símbolo indicando el token por cada uno de los elementos reconocidos o el error en caso de no reconocer. Este análisis no logra detectar muchos errores por su característica. Análisis Sintáctico: En esta fase se analiza la estructura de las expresiones en base a gramáticas. Aquí ya se puede determinar si una estructura por ejemplo una expresión
  • 9. 9 matemática mal formada. El análisis que se realiza es jerárquico es decir en base a árboles de derivación que se obtienen de las mismas gramáticas. Análisis Semántico: Este análisis es más difícil de formalizar, determina el tipo de los resultados intermedios, comprobar que los argumentos que tienen un operador pertenecen al conjunto de operadores posible, y si son compatibles entre sí. Generación de Código Intermedió: El código intermedio es una representación en base a elementos de 3 y 4 direcciones. Lo que nos permite llegar a la fase de optimización de código. Optimización de Código: Consiste en realizar una mejora en el código intermedio, para reducir el número de líneas y hacer que la ejecución sea más rápida. Generación de Código: Llegamos a la generación de código ensamblador o código máquina del procesador que nos interese. 3. ¿Qué es un autómata Finito? Un autómata finito (AF) o máquina de estado finito es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir una salida.
  • 10. 10 Este modelo está conformado por un alfabeto, un conjunto de estados y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de transición, que recibe a partir de un estado inicial una cadena de caracterespertenecientes al alfabeto (la entrada), y que va leyendo dicha cadena a medida que el autómata se desplaza de un estado a otro, para finalmente detenerse en un estado final o de aceptación, que representa la salida. La finalidad de los autómatas finitos es la de reconocer lenguajes regulares, que corresponden a los lenguajes formales más simples según la Jerarquía de Chomsky. 4. ¿Qué es un autómata de pila? Un autómata con pila, autómata a pila o autómata de pila es un modelo matemático de un sistema que recibe una cadenaconstituida por símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce. El lenguaje que reconoce un autómata con pila pertenece al grupo de los lenguajes libres de contexto en la clasificación de laJerarquía de Chomsky. 5. ¿Qué es un autómata finito? Un autómata finito (AF) o máquina de estado finito es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir una salida. Este modelo está conformado por un alfabeto, un conjunto de estados y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de
  • 11. 11 transición, que recibe a partir de un estado inicial una cadena de caracterespertenecientes al alfabeto (la entrada), y que va leyendo dicha cadena a medida que el autómata se desplaza de un estado a otro, para finalmente detenerse en un estado final o de aceptación, que representa la salida. La finalidad de los autómatas finitos es la de reconocer lenguajes regulares, que corresponden a los lenguajes formales más simples según la Jerarquía de Chomsky. 6. ¿Qué es un diagrama de estados? Los diagramas de estado muestran el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación en respuesta a eventos (por ejemplo, mensajes recibidos, tiempo rebasado o errores), junto con sus respuestas y acciones. También ilustran qué eventos pueden cambiar el estado de los objetos de la clase. Normalmente contienen: estados y transiciones. Como los estados y las transiciones incluyen, a su vez, eventos, acciones y actividades, vamos a ver primero sus definiciones. Al igual que otros diagramas, en los diagramas de estado pueden aparecer notas explicativas y restricciones. 7. Que es una maquina de pila?
  • 12. 12 Una máquina de pila es un modelo computacional en el cual la memoria de la computadora toma la forma de una o más pilas. El término también se refiere a un computador real implementando o simulando una máquina de pila idealizada. Adicionalmente, una máquina de pila también puede referirse a una máquina verdadera o simulada con un conjunto de instrucciones de "0 operandos". En tal máquina, la mayoría de las instrucciones implícitamente operan en valores en el tope de la pila y reemplazan esos valores por el resultado. Típicamente tales máquinas también tienen una instrucción "load" y una instrucción "store" que leen y escriben a posiciones arbitrarias de la RAM. (Como el resto de las instrucciones, las instrucciones "load" y "store" no necesitan ningún operando en una máquina de pila típica - ellas siempre toman la dirección de la RAM que se quiere leer o escribir desde el tope de la pila). La ventaja de las máquinas de pila ("conjunto de instrucciones de 0 operandos") sobre las máquinas de acumulador ("conjunto de instrucciones de 1 operando") y las máquinas de registro ("conjunto de instrucciones de 2 operandos" o un "conjunto de instrucciones de 3 operandos") es que los programas escritos para un conjunto de instrucciones de "0 operandos" generalmente tienen una densidad de código más alta que los programas equivalentes escritos para otros conjuntos de instrucciones.
  • 13. 13 CONCLUSIONES Un compilador es más que un traductor multilenguaje, es también un intérprete que muestra una traducción de un código o lengaje.
  • 15. 15