SlideShare una empresa de Scribd logo
1
1
COMPILADORES E
INTÉRPRETES
Introducción
Compilador: DEFINICIÓN
2
Proceso de traducción que convierte un programa
f ente escrito en n leng aje de alto ni el a nfuente escrito en un lenguaje de alto nivel a un
programa objeto en código máquina y listo por
tanto para ejecutarse en el ordenador, con poca o
ninguna preparación adicional
Compilador
Programa
Fuente
Programa
Objeto
Mensajes
de Error
2
Compiladores, Introducción
3
CódigoCódigo
Máquina
Código
Máquina
Lenguaje
Ensamblador
Ensamblador
Código
Máquina
Lenguaje
Ensamblador
Lenguaje
de alto Nivel
Ensamblador Compilador
Compiladores
4
En los 50los compiladores eran considerados
programas muy difícilesprogramas muy difíciles
FORTRAN se desarrolló en grupo durante 18 años
Se han desarrollado técnicas sistemáticas, entornos de
programación y herramientas software que facilitan la
tarea de desarrollo
3
Compiladores
5
Gran variedad de lenguajes de alto nivel
Gran variedad de lenguajes objeto tanto otroGran variedad de lenguajes objeto, tanto otro
lenguaje de alto nivel como código máquina
No puede darse una fecha exacta del primer
desarrollo
Varios grupos independientemente desarrollaron
técnicas de análisis
L i t d í fó l it éti ódiLos primeros traducían fórmulas aritméticas a código
máquina
Conceptos Relacionados
6
A it t
Compiladores
Arquitectura
de Ordenadores
Teoría de
Lenguajes
Lenguajes de
Programación
Teoría de
Algoritmos
Ingeniería
del Software
4
Motivación (I)
7
Para ser buen programadorp g
Saber como se obtiene un ejecutable permite saber
más sobre corrección y eficiencia
Para entender más sobre lenguajes
Tipificación: estática, dinámica, fuerte, polimorfismo,
conversiones, sobrecarga de operadores...
E d bl á biEstructura de bloques, ámbitos
Paso de parámetros
Gestión de memoria, punteros
Motivación (II)
8
La teoría es imprescindiblep
Antes de la aplicación de teoría de autómatas y
lenguajes formales, programación, etc. Los
compiladores eran muy malos
Aplicar la teoría y herramientas a otros campos:
Intérpretes de comandos y consultas
F d d (T X L T X)Formateadores de texto (TeX, LaTeX)
Lenguajes de simulación (GPSS)
Intérpretes Gráficos (PS, GIF, JPEG, PovRAY)
5
Compilador; Definiciones I
9
Ensamblador:
Compilador sencillo el lenguaje fuente tiene una estructuraCompilador sencillo, el lenguaje fuente tiene una estructura
simple que permite una traducción de una sentencia fuente
a una instrucción en código máquina
Compilador cruzado:
Compilador que traduce un lenguaje fuente a objeto, el
objeto es para un ordenador distinto del que compila
Compilador; Definiciones II
10
Compile-Link-Go frente a Compile-Go:
Lenguaje que permita la fragmentación compilaciónLenguaje que permita la fragmentación, compilación
separada y enlazado de las parte
El compilador deja en memoria directamente un módulo
cargable que se ejecuta a continuación
Compilador de una o varias pasadas:
“Pasada”: recorrido total de todo el fuente con alguna
i ió ífimisión específica
6
Compilador; Definiciones III
11
Traductor o compilador incremental (interactivo o
conversacional)conversacional)
Encontrados y corregidos los errores después solo se
compilan estos
Autocompilador
Compilador escrito en el propio lenguaje que compila
Facilitar la portabilidad
Compilador; Definiciones IV
12
Metacompilador
Programa que recibe un lenguaje y genera un compiladorPrograma que recibe un lenguaje y genera un compilador
para ese lenguaje
Decompilador
Programa que recibe como entrada código máquina y lo
traduce a un lenguaje de alto nivel
7
Esquema de Compilación
13
Fuente
Objeto
Compilador
Listado
Diagnósticos
Corregir
Errores del
Fuente
Compilación
Bien
Programa
Objeto
DatosResultados
Si
No
Ejecución
Compilador, Esquema
14
Código MáquinaEstructura de
Preprocesador Ensamblador
Editor de
Compilador
g q
Absoluto
Estructura de
Programa Fuente
Preprocesador Ensamblador
Carga
Compilador
Programa
Fuente
Programa
Objeto
Ensamblador
Código Máquina
Relocalizable
Biblioteca de
Archivos Objeto
Relocalizables
8
Fases de un Compilador
15
Tabla de
Símbolos
Analizador
Léxico
Analizador
Sintáctico
Analizador
Semántico
Generador
de Código
Intermedio
Optimizador
Generador
de Código
Análisis Generación
Entrada
Salida
Tratamiento
de errores
Analizador Léxico (scanner)
16
Análisis Lineal: La cadena de entrada se lee de
izquierda a derecha y se agrupa en componentesizquierda a derecha y se agrupa en componentes
léxicos (tokens)
Secuencias de caracteres con un significado colectivo
TOKENS
(id,”x”) (op,”:=“) (id,”a”)
x:=a+b*c;
y:=3+b*c;
Analizador
Léxico
(op,”+”) (id,”b”) (op,”*”)
(id,”c”) (punt,”;”)
(id,”y”) (op,”:=“) (num,”3”)
(op,”+“) (id,”b”) (op,”*“)
(id,”c”) (punt,”;”)
9
Analizador Sintáctico
17
Análisis Jerárquico
Agrupa los componentes léxicos en frases gramaticales queAgrupa los componentes léxicos en frases gramaticales que
el compilador utiliza
TOKENS
(id,”x”) (op,”:=“) (id,”a”)
Analizador
Sintáctico
(op,”+”) (id,”b”) (op,”*”)
(id,”c”) (punt,”;”)
(id,”y”) (op,”:=“) (num,”3”)
(op,”+“) (id,”b”) (op,”*“)
(id,”c”) (punt,”;”)
18
Sentencias
Sentencia ; Sentencias
Asignación Sentencia
Variable := Expresión Asignación
X Variable + Expresión Variable := Expresión
a Variable * Expresión y Constante + Expresión
b Variable 3 Variable * Expresión
c b Variable
c
10
Compilador; Gramática
19
Sentencias ::= Sentencia “;” Sentencias | Sentencia
Sentencia ::= Asignación | Condicional | Iterativa
i ió i bl “ “ ióAsignación ::= Variable “:=“ Expresión
Condicional ::= “if” Condición “then” Sentencias “else”
Sentencias
Iterativa ::= “while” Condición “do” Sentencias
Expresión ::= Variable-Número “+” Expresión |
Variable-Número “*” Expresión |
Variable-Número “-” Expresión |
Variable-Número “/” Expresión |
Variable-Número
Variable ::= [A-Za-z] [A-Za-z0-9]*
Variable-Número ::= Variable | Número
Número ::= [0-9]+
Analizador Semántico
20
Busca errores semánticos, reúne información de tipos;
identifica operadores y operandosidentifica operadores y operandos
•
:= :=
x + y +
a * 3 *
b c b c
11
Optimización
21
•
:= :=
x + y +
a * 3 •
b c
Generador de Código
22
•
:= :=
x + y +
a * 3 •
b c
Push a a→pila
Push b b→pila
Load (c), R1 c→R1
Mult (S), R1 b*c→R1
Store R1, R2 R1→R2Sto e , R1→R2
Add (S), R1 a+b*c→R1
Store R1,(x) R1→x
Add #3, R2 3+b*c→R2
Store R2, (y) R2→y
12
Fases de un Compilador
23
Agrupación lógica de un compiladorg p g p
Etapa Inicial
Fases, o parte de fases que dependen del lenguaje fuente y
que son independientes de la máquina
Análisis léxico, sintáctico, semántico y generación de código
intermedio, manejo de errores de cada parte
Etapa FinalEtapa Final
Fases que depende de la máquina, depende del lenguaje
intermedio
Optimización de código, generación de código, operaciones con
la tabla de símbolos

Más contenido relacionado

La actualidad más candente

PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOSPRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
Roxa1190
 
Compiladores
CompiladoresCompiladores
Compiladores
henry_shd
 
Lenguaje de programacion c
Lenguaje de programacion cLenguaje de programacion c
Lenguaje de programacion c
1002pc1
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
CJAO
 
Trabajo flex byson
Trabajo flex bysonTrabajo flex byson
Trabajo flex byson
Jhon Alexito
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
wuaro1
 
C++
C++C++
C++
Pablo
 
Compiladores diapositivas
Compiladores diapositivasCompiladores diapositivas
Compiladores diapositivas
jonathangrief
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
Wilman Kdnita
 
Semana V
Semana VSemana V
Flex y bison
Flex y bisonFlex y bison
Flex y bison
AndresDvila
 
Taller n19 compiladores_generacion_codigo_8_julio_2020-convertido
Taller n19 compiladores_generacion_codigo_8_julio_2020-convertidoTaller n19 compiladores_generacion_codigo_8_julio_2020-convertido
Taller n19 compiladores_generacion_codigo_8_julio_2020-convertido
JOSSELINEMARIBEL
 
Lenguaje c 1
Lenguaje c 1Lenguaje c 1
Lenguaje c 1
francisyen54
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++
N_Alejandrino
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
Tensor
 
Quiz semana2 programacion c++
Quiz semana2 programacion c++Quiz semana2 programacion c++
Quiz semana2 programacion c++
Lisett Zavaleta Sarmiento
 
Presentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajesPresentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajes
DIEGO BAROJA
 
Estructura general de un programa en lenguaje´´c´´ y sus variables
Estructura general de un programa en lenguaje´´c´´ y sus variablesEstructura general de un programa en lenguaje´´c´´ y sus variables
Estructura general de un programa en lenguaje´´c´´ y sus variables
Luz Zaragoza Chavez
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
AlexandraMolinaSanchez
 
Introducción A Compiladores
Introducción A Compiladores Introducción A Compiladores
Introducción A Compiladores
Nestor Traña
 

La actualidad más candente (20)

PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOSPRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
PRESENTACION LENGUAJE C Y SISTEMAS OPERATIVOS
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Lenguaje de programacion c
Lenguaje de programacion cLenguaje de programacion c
Lenguaje de programacion c
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
 
Trabajo flex byson
Trabajo flex bysonTrabajo flex byson
Trabajo flex byson
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
C++
C++C++
C++
 
Compiladores diapositivas
Compiladores diapositivasCompiladores diapositivas
Compiladores diapositivas
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Semana V
Semana VSemana V
Semana V
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Taller n19 compiladores_generacion_codigo_8_julio_2020-convertido
Taller n19 compiladores_generacion_codigo_8_julio_2020-convertidoTaller n19 compiladores_generacion_codigo_8_julio_2020-convertido
Taller n19 compiladores_generacion_codigo_8_julio_2020-convertido
 
Lenguaje c 1
Lenguaje c 1Lenguaje c 1
Lenguaje c 1
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
 
Quiz semana2 programacion c++
Quiz semana2 programacion c++Quiz semana2 programacion c++
Quiz semana2 programacion c++
 
Presentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajesPresentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajes
 
Estructura general de un programa en lenguaje´´c´´ y sus variables
Estructura general de un programa en lenguaje´´c´´ y sus variablesEstructura general de un programa en lenguaje´´c´´ y sus variables
Estructura general de un programa en lenguaje´´c´´ y sus variables
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Introducción A Compiladores
Introducción A Compiladores Introducción A Compiladores
Introducción A Compiladores
 

Similar a Introduccion (1)

H:\compiladores
H:\compiladoresH:\compiladores
Cap2
Cap2Cap2
Cap2
CJAO
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
Sergio Lara Guevara
 
compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladores
BEVERLYIGUARDIA
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador Funcionamiento
Kriz Kozlov
 
C:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladoresC:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladores
NancyandRegina317
 
Tarea de compiladores carmen vargas_metacompiladordescompilador
Tarea de compiladores carmen vargas_metacompiladordescompiladorTarea de compiladores carmen vargas_metacompiladordescompilador
Tarea de compiladores carmen vargas_metacompiladordescompilador
MARCO POLO SILVA SEGOVIA
 
Decompilador y metacompilador
Decompilador y metacompiladorDecompilador y metacompilador
Decompilador y metacompilador
MARCO POLO SILVA SEGOVIA
 
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
Israel Castillo Cruz
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
dodi1997
 
Conceptos de compilador
Conceptos de compiladorConceptos de compilador
Conceptos de compilador
Joel Soto
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De Compilador
Joel Soto
 
Compilador
CompiladorCompilador
Compilador
FARIDROJAS
 
Historia de los compiladores
Historia de los compiladoresHistoria de los compiladores
Historia de los compiladores
AndresDvila
 
Compiladores de programacion
Compiladores de programacionCompiladores de programacion
Compiladores de programacion
MtCeroCero
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
bachispasaca
 
Compiladores
CompiladoresCompiladores
Compiladores
diana olaya
 
Tema 1 introducción compilador
Tema 1 introducción compiladorTema 1 introducción compilador
Tema 1 introducción compilador
Pablo Alberto Ponce Lopaczek
 
Bison y flex
Bison y flexBison y flex
Bison y flex
Christian Morales
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
Danielita Lopez
 

Similar a Introduccion (1) (20)

H:\compiladores
H:\compiladoresH:\compiladores
H:\compiladores
 
Cap2
Cap2Cap2
Cap2
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladores
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador Funcionamiento
 
C:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladoresC:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladores
 
Tarea de compiladores carmen vargas_metacompiladordescompilador
Tarea de compiladores carmen vargas_metacompiladordescompiladorTarea de compiladores carmen vargas_metacompiladordescompilador
Tarea de compiladores carmen vargas_metacompiladordescompilador
 
Decompilador y metacompilador
Decompilador y metacompiladorDecompilador y metacompilador
Decompilador y metacompilador
 
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
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
 
Conceptos de compilador
Conceptos de compiladorConceptos de compilador
Conceptos de compilador
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De Compilador
 
Compilador
CompiladorCompilador
Compilador
 
Historia de los compiladores
Historia de los compiladoresHistoria de los compiladores
Historia de los compiladores
 
Compiladores de programacion
Compiladores de programacionCompiladores de programacion
Compiladores de programacion
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Tema 1 introducción compilador
Tema 1 introducción compiladorTema 1 introducción compilador
Tema 1 introducción compilador
 
Bison y flex
Bison y flexBison y flex
Bison y flex
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 

Más de MARCO POLO SILVA SEGOVIA

Autoevaluación portafolio profesor compiladores
Autoevaluación portafolio profesor compiladoresAutoevaluación portafolio profesor compiladores
Autoevaluación portafolio profesor compiladores
MARCO POLO SILVA SEGOVIA
 
Tutorial compiladores
Tutorial compiladoresTutorial compiladores
Tutorial compiladores
MARCO POLO SILVA SEGOVIA
 
Jlex y cup en java
Jlex y cup en javaJlex y cup en java
Jlex y cup en java
MARCO POLO SILVA SEGOVIA
 
Lex yacc
Lex yaccLex yacc
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
MARCO POLO SILVA SEGOVIA
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
MARCO POLO SILVA SEGOVIA
 
Capítulo 2 compiladores (willian gallo -------boris chungandro)
Capítulo 2 compiladores (willian gallo -------boris chungandro)Capítulo 2 compiladores (willian gallo -------boris chungandro)
Capítulo 2 compiladores (willian gallo -------boris chungandro)
MARCO POLO SILVA SEGOVIA
 
Compiladores
CompiladoresCompiladores
Compiladores
CompiladoresCompiladores
Registro anecdótico procesos y calidad
Registro anecdótico procesos y calidadRegistro anecdótico procesos y calidad
Registro anecdótico procesos y calidad
MARCO POLO SILVA SEGOVIA
 
Autoevaluación portafolio profesor procesos y calidad
Autoevaluación portafolio profesor procesos y calidadAutoevaluación portafolio profesor procesos y calidad
Autoevaluación portafolio profesor procesos y calidad
MARCO POLO SILVA SEGOVIA
 
Procesos y calidad i parcial
Procesos y calidad i parcialProcesos y calidad i parcial
Procesos y calidad i parcial
MARCO POLO SILVA SEGOVIA
 
Prueba de aplicaciones
Prueba de aplicacionesPrueba de aplicaciones
Prueba de aplicaciones
MARCO POLO SILVA SEGOVIA
 
Procesos itil! aviles maruri
Procesos itil! aviles maruriProcesos itil! aviles maruri
Procesos itil! aviles maruri
MARCO POLO SILVA SEGOVIA
 
prueba de aplicaciones convencionales
prueba de aplicaciones convencionalesprueba de aplicaciones convencionales
prueba de aplicaciones convencionales
MARCO POLO SILVA SEGOVIA
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acs
MARCO POLO SILVA SEGOVIA
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
MARCO POLO SILVA SEGOVIA
 
conceptos de calidad
conceptos de calidadconceptos de calidad
conceptos de calidad
MARCO POLO SILVA SEGOVIA
 
Conceptos de calidad
Conceptos de calidadConceptos de calidad
Conceptos de calidad
MARCO POLO SILVA SEGOVIA
 

Más de MARCO POLO SILVA SEGOVIA (20)

Autoevaluación portafolio profesor compiladores
Autoevaluación portafolio profesor compiladoresAutoevaluación portafolio profesor compiladores
Autoevaluación portafolio profesor compiladores
 
Tutorial compiladores
Tutorial compiladoresTutorial compiladores
Tutorial compiladores
 
Jlex y cup en java
Jlex y cup en javaJlex y cup en java
Jlex y cup en java
 
Lex yacc
Lex yaccLex yacc
Lex yacc
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
 
Capítulo 2 compiladores (willian gallo -------boris chungandro)
Capítulo 2 compiladores (willian gallo -------boris chungandro)Capítulo 2 compiladores (willian gallo -------boris chungandro)
Capítulo 2 compiladores (willian gallo -------boris chungandro)
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Registro anecdótico procesos y calidad
Registro anecdótico procesos y calidadRegistro anecdótico procesos y calidad
Registro anecdótico procesos y calidad
 
Autoevaluación portafolio profesor procesos y calidad
Autoevaluación portafolio profesor procesos y calidadAutoevaluación portafolio profesor procesos y calidad
Autoevaluación portafolio profesor procesos y calidad
 
Procesos y calidad i parcial
Procesos y calidad i parcialProcesos y calidad i parcial
Procesos y calidad i parcial
 
Prueba de aplicaciones
Prueba de aplicacionesPrueba de aplicaciones
Prueba de aplicaciones
 
Procesos itil! aviles maruri
Procesos itil! aviles maruriProcesos itil! aviles maruri
Procesos itil! aviles maruri
 
prueba de aplicaciones convencionales
prueba de aplicaciones convencionalesprueba de aplicaciones convencionales
prueba de aplicaciones convencionales
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acs
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
conceptos de calidad
conceptos de calidadconceptos de calidad
conceptos de calidad
 
Conceptos de calidad
Conceptos de calidadConceptos de calidad
Conceptos de calidad
 
PROCESOS
PROCESOSPROCESOS
PROCESOS
 

Último

MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBALMATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
Ana Fernandez
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
Mónica Sánchez
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
rosannatasaycoyactay
 
1° T3 Examen Mtro JP 23-24.pdf completos
1° T3 Examen Mtro JP 23-24.pdf completos1° T3 Examen Mtro JP 23-24.pdf completos
1° T3 Examen Mtro JP 23-24.pdf completos
ROCIORUIZQUEZADA
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
Los Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres VivosLos Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres Vivos
karlafreire0608
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
Fernández Gorka
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
RAMIREZNICOLE
 
Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
LuanaJaime1
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
EricaCouly1
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
eleandroth
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
shirherrer
 
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIACONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
ginnazamudio
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
JonathanCovena1
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
ROCIORUIZQUEZADA
 

Último (20)

MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBALMATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
 
1° T3 Examen Mtro JP 23-24.pdf completos
1° T3 Examen Mtro JP 23-24.pdf completos1° T3 Examen Mtro JP 23-24.pdf completos
1° T3 Examen Mtro JP 23-24.pdf completos
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
Los Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres VivosLos Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres Vivos
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
 
Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
 
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIACONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
 

Introduccion (1)

  • 1. 1 1 COMPILADORES E INTÉRPRETES Introducción Compilador: DEFINICIÓN 2 Proceso de traducción que convierte un programa f ente escrito en n leng aje de alto ni el a nfuente escrito en un lenguaje de alto nivel a un programa objeto en código máquina y listo por tanto para ejecutarse en el ordenador, con poca o ninguna preparación adicional Compilador Programa Fuente Programa Objeto Mensajes de Error
  • 2. 2 Compiladores, Introducción 3 CódigoCódigo Máquina Código Máquina Lenguaje Ensamblador Ensamblador Código Máquina Lenguaje Ensamblador Lenguaje de alto Nivel Ensamblador Compilador Compiladores 4 En los 50los compiladores eran considerados programas muy difícilesprogramas muy difíciles FORTRAN se desarrolló en grupo durante 18 años Se han desarrollado técnicas sistemáticas, entornos de programación y herramientas software que facilitan la tarea de desarrollo
  • 3. 3 Compiladores 5 Gran variedad de lenguajes de alto nivel Gran variedad de lenguajes objeto tanto otroGran variedad de lenguajes objeto, tanto otro lenguaje de alto nivel como código máquina No puede darse una fecha exacta del primer desarrollo Varios grupos independientemente desarrollaron técnicas de análisis L i t d í fó l it éti ódiLos primeros traducían fórmulas aritméticas a código máquina Conceptos Relacionados 6 A it t Compiladores Arquitectura de Ordenadores Teoría de Lenguajes Lenguajes de Programación Teoría de Algoritmos Ingeniería del Software
  • 4. 4 Motivación (I) 7 Para ser buen programadorp g Saber como se obtiene un ejecutable permite saber más sobre corrección y eficiencia Para entender más sobre lenguajes Tipificación: estática, dinámica, fuerte, polimorfismo, conversiones, sobrecarga de operadores... E d bl á biEstructura de bloques, ámbitos Paso de parámetros Gestión de memoria, punteros Motivación (II) 8 La teoría es imprescindiblep Antes de la aplicación de teoría de autómatas y lenguajes formales, programación, etc. Los compiladores eran muy malos Aplicar la teoría y herramientas a otros campos: Intérpretes de comandos y consultas F d d (T X L T X)Formateadores de texto (TeX, LaTeX) Lenguajes de simulación (GPSS) Intérpretes Gráficos (PS, GIF, JPEG, PovRAY)
  • 5. 5 Compilador; Definiciones I 9 Ensamblador: Compilador sencillo el lenguaje fuente tiene una estructuraCompilador sencillo, el lenguaje fuente tiene una estructura simple que permite una traducción de una sentencia fuente a una instrucción en código máquina Compilador cruzado: Compilador que traduce un lenguaje fuente a objeto, el objeto es para un ordenador distinto del que compila Compilador; Definiciones II 10 Compile-Link-Go frente a Compile-Go: Lenguaje que permita la fragmentación compilaciónLenguaje que permita la fragmentación, compilación separada y enlazado de las parte El compilador deja en memoria directamente un módulo cargable que se ejecuta a continuación Compilador de una o varias pasadas: “Pasada”: recorrido total de todo el fuente con alguna i ió ífimisión específica
  • 6. 6 Compilador; Definiciones III 11 Traductor o compilador incremental (interactivo o conversacional)conversacional) Encontrados y corregidos los errores después solo se compilan estos Autocompilador Compilador escrito en el propio lenguaje que compila Facilitar la portabilidad Compilador; Definiciones IV 12 Metacompilador Programa que recibe un lenguaje y genera un compiladorPrograma que recibe un lenguaje y genera un compilador para ese lenguaje Decompilador Programa que recibe como entrada código máquina y lo traduce a un lenguaje de alto nivel
  • 7. 7 Esquema de Compilación 13 Fuente Objeto Compilador Listado Diagnósticos Corregir Errores del Fuente Compilación Bien Programa Objeto DatosResultados Si No Ejecución Compilador, Esquema 14 Código MáquinaEstructura de Preprocesador Ensamblador Editor de Compilador g q Absoluto Estructura de Programa Fuente Preprocesador Ensamblador Carga Compilador Programa Fuente Programa Objeto Ensamblador Código Máquina Relocalizable Biblioteca de Archivos Objeto Relocalizables
  • 8. 8 Fases de un Compilador 15 Tabla de Símbolos Analizador Léxico Analizador Sintáctico Analizador Semántico Generador de Código Intermedio Optimizador Generador de Código Análisis Generación Entrada Salida Tratamiento de errores Analizador Léxico (scanner) 16 Análisis Lineal: La cadena de entrada se lee de izquierda a derecha y se agrupa en componentesizquierda a derecha y se agrupa en componentes léxicos (tokens) Secuencias de caracteres con un significado colectivo TOKENS (id,”x”) (op,”:=“) (id,”a”) x:=a+b*c; y:=3+b*c; Analizador Léxico (op,”+”) (id,”b”) (op,”*”) (id,”c”) (punt,”;”) (id,”y”) (op,”:=“) (num,”3”) (op,”+“) (id,”b”) (op,”*“) (id,”c”) (punt,”;”)
  • 9. 9 Analizador Sintáctico 17 Análisis Jerárquico Agrupa los componentes léxicos en frases gramaticales queAgrupa los componentes léxicos en frases gramaticales que el compilador utiliza TOKENS (id,”x”) (op,”:=“) (id,”a”) Analizador Sintáctico (op,”+”) (id,”b”) (op,”*”) (id,”c”) (punt,”;”) (id,”y”) (op,”:=“) (num,”3”) (op,”+“) (id,”b”) (op,”*“) (id,”c”) (punt,”;”) 18 Sentencias Sentencia ; Sentencias Asignación Sentencia Variable := Expresión Asignación X Variable + Expresión Variable := Expresión a Variable * Expresión y Constante + Expresión b Variable 3 Variable * Expresión c b Variable c
  • 10. 10 Compilador; Gramática 19 Sentencias ::= Sentencia “;” Sentencias | Sentencia Sentencia ::= Asignación | Condicional | Iterativa i ió i bl “ “ ióAsignación ::= Variable “:=“ Expresión Condicional ::= “if” Condición “then” Sentencias “else” Sentencias Iterativa ::= “while” Condición “do” Sentencias Expresión ::= Variable-Número “+” Expresión | Variable-Número “*” Expresión | Variable-Número “-” Expresión | Variable-Número “/” Expresión | Variable-Número Variable ::= [A-Za-z] [A-Za-z0-9]* Variable-Número ::= Variable | Número Número ::= [0-9]+ Analizador Semántico 20 Busca errores semánticos, reúne información de tipos; identifica operadores y operandosidentifica operadores y operandos • := := x + y + a * 3 * b c b c
  • 11. 11 Optimización 21 • := := x + y + a * 3 • b c Generador de Código 22 • := := x + y + a * 3 • b c Push a a→pila Push b b→pila Load (c), R1 c→R1 Mult (S), R1 b*c→R1 Store R1, R2 R1→R2Sto e , R1→R2 Add (S), R1 a+b*c→R1 Store R1,(x) R1→x Add #3, R2 3+b*c→R2 Store R2, (y) R2→y
  • 12. 12 Fases de un Compilador 23 Agrupación lógica de un compiladorg p g p Etapa Inicial Fases, o parte de fases que dependen del lenguaje fuente y que son independientes de la máquina Análisis léxico, sintáctico, semántico y generación de código intermedio, manejo de errores de cada parte Etapa FinalEtapa Final Fases que depende de la máquina, depende del lenguaje intermedio Optimización de código, generación de código, operaciones con la tabla de símbolos