SlideShare una empresa de Scribd logo
1 de 19
Lenguajes de Programación
Compiladores e intérpretes
CATEDRA DE COMPUTACION I
AÑO 2016
INTRODUCCIÓN
 Las primeras computadoras ejecutaban
instrucciones consistentes en códigos
numéricos que señalan a los circuitos de la
máquina los estados correspondientes a cada
operación. (Lenguaje de Maquina)
 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
numéricos; al final, todas esas claves juntas se
traducían manualmente a Lenguaje
Máquina.(Lenguaje Ensamblador)
INTRODUCCION
 El lenguaje Ensamblador seguía siendo el de
una máquina, pero más fácil de manejar.
Esta sentencia en un Lenguaje de Alto Nivel
A: = B+C
convertida en Lenguaje Ensamblador
quedaría:
LOAD B
ADD C
STORE A
Está más cerca de la máquina
Traductores de lenguajes de
Programación
 La programación de un lenguaje de alto
nivel requiere, de algún tipo de interfaz con
el lenguaje máquina para que el programa
pueda ejecutase.
 Las interfaces más comunes son:
“compilador” e "interprete".
Traductores de lenguajes de
Programación
 El Compilador: Traduce el programa a
otro equivalente en el lenguaje “X” de la
maquina “residente” como un paso
separado antes de la ejecución.
 El Interprete: Ejecuta directamente las
instrucciones en un lenguaje “Y” de alto
nivel, sin un paso de procedimiento previo.
CONCLUSION
 Un compilador: Traduce un Programa Fuente a un
Programa Objeto o de máquina y después que está
todo traducido lo ejecuta.
 Un Ensamblador: es un compilador, pero el
programa fuente que debe traducir es un programa
ensamblador, lo traduce a programa de máquina y
después lo ejecuta.
 Un intérprete: no genera un programa
equivalente, sino que toma una sentencia del
programa fuente en un lenguaje de alto nivel y la
traduce al código equivalente en un lenguaje de
bajo nivel y al mismo tiempo lo ejecuta.
Compiladores Vs. Interpretes
COMPILADOR INTÉRPRETE
Realizan la traducción en tiempo de
desarrollo.
Es decir, el programa aún no se está
ejecutando. El compilador recibe todo
el código fuente, lo analiza, lo optimiza
y lo traduce a lenguaje máquina
dejando un programa completo listo
para su ejecución.
Se compila una vez, se ejecuta n veces.
Realizan la traducción en tiempo de
ejecución.
Es decir, a medida que el programa se va
ejecutando, el intérprete va traduciendo
instrucciones al lenguaje máquina.
La ejecución es más lenta, pues cada
instrucción debe ser traducida a código
máquina tantas veces como sea
ejecutada.
Funcionamiento de un compilador
 A grandes rasgos un compilador es un
programa que lee un programa escrito es
un lenguaje, el lenguaje fuente, y lo traduce
a un programa equivalente en otro
lenguaje, el lenguaje objeto.
 Como parte importante de este proceso de
traducción, el compilador informa a su
usuario de la presencia de errores en el
programa fuente.
Partes en las que trabaja un
compilador
 Conceptualmente un compilador opera en
fases. Cada una de las cuales transforma el
programa fuente de una representación en
otra.
 En la figura que está en la próxima filmina
se muestra una descomposición típica de
un compilador.
Fases de un compilador
Programa Fuente
Programa Objeto
Tabla de símbolos
 Un compilador necesita guardar y usar la
información de los objetos que va
encontrando en el texto fuente, como por
ejemplo variables, etiquetas, etc.
 Esta información se almacena en una
estructura de datos interna conocida como
tabla de símbolos.
Manejo de Errores
 Es una de las misiones más importantes de
un compilador. Donde más se utiliza es en
las etapas de análisis sintáctico y
semántico, aunque los errores se pueden
descubrir en cualquier fase de un
compilador.
 Es una tarea difícil, por dos motivos:
 A veces unos errores ocultan otros.
 A veces un error provoca una avalancha de muchos
errores que se solucionan con el primero.
Manejo de Errores
 Es conveniente un buen manejo de errores,
y que el compilador detecte todos los
errores que tiene el programa y no se pare
en el primero que encuentre.
 Hay, pues, dos criterios a seguir a la hora de
manejar errores:
 Pararse al detectar el primer error.
 Detectar todos los errores de una pasada.
Funcionamiento de un intérprete
Se caracteriza por traducir y ejecutar, de una en una,
las instrucciones del código fuente de un programa,
pero sin generar como salida código objeto.
El proceso que realiza un intérprete es el siguiente:
 Lee la primera instrucción del código fuente, la
traduce a código objeto y la ejecuta; a continuación,
hace lo mismo con la segunda instrucción; y así
sucesivamente, hasta llegar a la última instrucción
del programa, siempre y cuando, no se produzca
ningún error que detenga el proceso.
Criterios de diseño y de
implementación
Los Lenguajes de programación se pueden
clasificar según el paradigma de
programación que soporten:
 Lenguajes Genéricos
 Lenguajes Estructurados
 Lenguajes Orientados a Objetos
Atributos de un buen lenguaje
 Claridad, Sencillez y Unidad
La sintaxis del lenguaje afecta la facilidad con la
que un programa se puede escribir, poner a
prueba, y más tarde entender y modificar.
 Ortogonalidad
Capacidad para combinar varias características
de un lenguaje en todas las combinaciones
posibles, de manera que todas ellas tengan
significado.
 Naturalidad para la aplicación
La sintaxis del programa debe permitir que la
estructura del programa refleje la estructura
lógica subyacente.
Atributos de un buen lenguaje
 Apoyo para la abstracción
Una parte importante de la tarea del programador es
proyectar las abstracciones adecuadas para la solución del
problema y luego implementar esas abstracciones
empleando las capacidades más primitivas que provee el
lenguaje de programación mismo.
 Facilidad para verificar programas
La sencillez de la estructura semántica y sintáctica ayuda a
simplificar la verificación de programas.
 Costo de uso
1. Costo de ejecución del programa.
2. Costo de traducción de programas.
3. Costo de creación, prueba y uso de programas.
4. Costo de mantenimiento de los programas: costo total
del ciclo de vida.
Dominio de Aplicación
Lenguajes para diversos dominios de
aplicación
 Científicos.
 De Sistemas.
 De IA (Inteligencia Artificial).
 De Edición.
 De Proceso.
 Nuevos Paradigmas.

Más contenido relacionado

La actualidad más candente

Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionkinverdar
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacionguest7eefa2
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazadorRickyZhengHu
 
4. Conceptos básicos III
4. Conceptos básicos III4. Conceptos básicos III
4. Conceptos básicos IIIrcarrerah
 
Powerpoint jimpulgar
Powerpoint jimpulgarPowerpoint jimpulgar
Powerpoint jimpulgarjimsaso
 
Ensambladores y Compiladores
Ensambladores y CompiladoresEnsambladores y Compiladores
Ensambladores y CompiladoresAndres Pozo
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquinaErnes 28
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interpreteperlallamas
 
Introduccion a la programacion 2010
Introduccion a la programacion 2010Introduccion a la programacion 2010
Introduccion a la programacion 2010Mario Lopez
 

La actualidad más candente (19)

Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
lenguajes de programacion
lenguajes de programacionlenguajes de programacion
lenguajes de programacion
 
Innovacionk m
Innovacionk mInnovacionk m
Innovacionk m
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazador
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
4. Conceptos básicos III
4. Conceptos básicos III4. Conceptos básicos III
4. Conceptos básicos III
 
Powerpoint jimpulgar
Powerpoint jimpulgarPowerpoint jimpulgar
Powerpoint jimpulgar
 
Lenguaje de Maquinas
Lenguaje de Maquinas Lenguaje de Maquinas
Lenguaje de Maquinas
 
Ensambladores y Compiladores
Ensambladores y CompiladoresEnsambladores y Compiladores
Ensambladores y Compiladores
 
Computo
ComputoComputo
Computo
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Apuntes c
Apuntes cApuntes c
Apuntes c
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquina
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Introduccion a la programacion 2010
Introduccion a la programacion 2010Introduccion a la programacion 2010
Introduccion a la programacion 2010
 

Destacado

Destacado (11)

Como volverse un Hacker feliz de GNOME
Como volverse un Hacker feliz de GNOMEComo volverse un Hacker feliz de GNOME
Como volverse un Hacker feliz de GNOME
 
Cómo colaborar en GNOME
Cómo colaborar en GNOMECómo colaborar en GNOME
Cómo colaborar en GNOME
 
Rep 34
Rep 34Rep 34
Rep 34
 
Gnome - un vistazo a su arquitectura
Gnome - un vistazo a su arquitecturaGnome - un vistazo a su arquitectura
Gnome - un vistazo a su arquitectura
 
Kernel
KernelKernel
Kernel
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del Kernel
 
Comprendiendo gnome
Comprendiendo gnomeComprendiendo gnome
Comprendiendo gnome
 
Introducción a compiladores
Introducción a compiladoresIntroducción a compiladores
Introducción a compiladores
 
Nucleo o kernel de Linux
Nucleo o kernel de LinuxNucleo o kernel de Linux
Nucleo o kernel de Linux
 
Gnome
GnomeGnome
Gnome
 
Compiladores teoria e implementacion
Compiladores teoria e implementacionCompiladores teoria e implementacion
Compiladores teoria e implementacion
 

Similar a Lenguajes Programación: Compiladores e Intérpretes

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
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemasJESSIKADG86
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionkinverdar
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOadark
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Facultad de Ciencias y Sistemas
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionjuanjokobrax
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Victor Martinez
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónkinverdar
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionjafp21
 
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
 

Similar a Lenguajes Programación: Compiladores e Intérpretes (20)

Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Informática
InformáticaInformática
Informática
 
Informática
InformáticaInformática
Informática
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Actividad 3 programacion de sistemas
Actividad 3 programacion de sistemasActividad 3 programacion de sistemas
Actividad 3 programacion de sistemas
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Traductores bajo-nivel
Traductores bajo-nivelTraductores bajo-nivel
Traductores bajo-nivel
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
2
22
2
 
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
 
Consulta
ConsultaConsulta
Consulta
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (19)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Lenguajes Programación: Compiladores e Intérpretes

  • 1. Lenguajes de Programación Compiladores e intérpretes CATEDRA DE COMPUTACION I AÑO 2016
  • 2. INTRODUCCIÓN  Las primeras computadoras ejecutaban instrucciones consistentes en códigos numéricos que señalan a los circuitos de la máquina los estados correspondientes a cada operación. (Lenguaje de Maquina)  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 numéricos; al final, todas esas claves juntas se traducían manualmente a Lenguaje Máquina.(Lenguaje Ensamblador)
  • 3. INTRODUCCION  El lenguaje Ensamblador seguía siendo el de una máquina, pero más fácil de manejar. Esta sentencia en un Lenguaje de Alto Nivel A: = B+C convertida en Lenguaje Ensamblador quedaría: LOAD B ADD C STORE A Está más cerca de la máquina
  • 4. Traductores de lenguajes de Programación  La programación de un lenguaje de alto nivel requiere, de algún tipo de interfaz con el lenguaje máquina para que el programa pueda ejecutase.  Las interfaces más comunes son: “compilador” e "interprete".
  • 5. Traductores de lenguajes de Programación  El Compilador: Traduce el programa a otro equivalente en el lenguaje “X” de la maquina “residente” como un paso separado antes de la ejecución.  El Interprete: Ejecuta directamente las instrucciones en un lenguaje “Y” de alto nivel, sin un paso de procedimiento previo.
  • 6. CONCLUSION  Un compilador: Traduce un Programa Fuente a un Programa Objeto o de máquina y después que está todo traducido lo ejecuta.  Un Ensamblador: es un compilador, pero el programa fuente que debe traducir es un programa ensamblador, lo traduce a programa de máquina y después lo ejecuta.  Un intérprete: no genera un programa equivalente, sino que toma una sentencia del programa fuente en un lenguaje de alto nivel y la traduce al código equivalente en un lenguaje de bajo nivel y al mismo tiempo lo ejecuta.
  • 7. Compiladores Vs. Interpretes COMPILADOR INTÉRPRETE Realizan la traducción en tiempo de desarrollo. Es decir, el programa aún no se está ejecutando. El compilador recibe todo el código fuente, lo analiza, lo optimiza y lo traduce a lenguaje máquina dejando un programa completo listo para su ejecución. Se compila una vez, se ejecuta n veces. Realizan la traducción en tiempo de ejecución. Es decir, a medida que el programa se va ejecutando, el intérprete va traduciendo instrucciones al lenguaje máquina. La ejecución es más lenta, pues cada instrucción debe ser traducida a código máquina tantas veces como sea ejecutada.
  • 8. Funcionamiento de un compilador  A grandes rasgos un compilador es un programa que lee un programa escrito es un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto.  Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente.
  • 9. Partes en las que trabaja un compilador  Conceptualmente un compilador opera en fases. Cada una de las cuales transforma el programa fuente de una representación en otra.  En la figura que está en la próxima filmina se muestra una descomposición típica de un compilador.
  • 10. Fases de un compilador Programa Fuente Programa Objeto
  • 11. Tabla de símbolos  Un compilador necesita guardar y usar la información de los objetos que va encontrando en el texto fuente, como por ejemplo variables, etiquetas, etc.  Esta información se almacena en una estructura de datos interna conocida como tabla de símbolos.
  • 12. Manejo de Errores  Es una de las misiones más importantes de un compilador. Donde más se utiliza es en las etapas de análisis sintáctico y semántico, aunque los errores se pueden descubrir en cualquier fase de un compilador.  Es una tarea difícil, por dos motivos:  A veces unos errores ocultan otros.  A veces un error provoca una avalancha de muchos errores que se solucionan con el primero.
  • 13. Manejo de Errores  Es conveniente un buen manejo de errores, y que el compilador detecte todos los errores que tiene el programa y no se pare en el primero que encuentre.  Hay, pues, dos criterios a seguir a la hora de manejar errores:  Pararse al detectar el primer error.  Detectar todos los errores de una pasada.
  • 14. Funcionamiento de un intérprete Se caracteriza por traducir y ejecutar, de una en una, las instrucciones del código fuente de un programa, pero sin generar como salida código objeto. El proceso que realiza un intérprete es el siguiente:  Lee la primera instrucción del código fuente, la traduce a código objeto y la ejecuta; a continuación, hace lo mismo con la segunda instrucción; y así sucesivamente, hasta llegar a la última instrucción del programa, siempre y cuando, no se produzca ningún error que detenga el proceso.
  • 15. Criterios de diseño y de implementación Los Lenguajes de programación se pueden clasificar según el paradigma de programación que soporten:  Lenguajes Genéricos  Lenguajes Estructurados  Lenguajes Orientados a Objetos
  • 16. Atributos de un buen lenguaje  Claridad, Sencillez y Unidad La sintaxis del lenguaje afecta la facilidad con la que un programa se puede escribir, poner a prueba, y más tarde entender y modificar.  Ortogonalidad Capacidad para combinar varias características de un lenguaje en todas las combinaciones posibles, de manera que todas ellas tengan significado.  Naturalidad para la aplicación La sintaxis del programa debe permitir que la estructura del programa refleje la estructura lógica subyacente.
  • 17. Atributos de un buen lenguaje  Apoyo para la abstracción Una parte importante de la tarea del programador es proyectar las abstracciones adecuadas para la solución del problema y luego implementar esas abstracciones empleando las capacidades más primitivas que provee el lenguaje de programación mismo.  Facilidad para verificar programas La sencillez de la estructura semántica y sintáctica ayuda a simplificar la verificación de programas.  Costo de uso 1. Costo de ejecución del programa. 2. Costo de traducción de programas. 3. Costo de creación, prueba y uso de programas. 4. Costo de mantenimiento de los programas: costo total del ciclo de vida.
  • 19. Lenguajes para diversos dominios de aplicación  Científicos.  De Sistemas.  De IA (Inteligencia Artificial).  De Edición.  De Proceso.  Nuevos Paradigmas.