SlideShare una empresa de Scribd logo
TEORIA DE LENGUAJES
DE PROGRAMACION
Introducción
This material has been prepared by Richard E. Aguilar P.
Reglas Básicas
• Prestar atención al expositor.
• La participación es esencial.
• No copiar en las prácticas y exámenes.
This material has been prepared by Richard E. Aguilar P.
Elección del Delegado
This material has been prepared by Richard E. Aguilar P.
Acerca del Curso
Es un curso teórico-práctico orientado a profundizar en el
estudiante los conceptos relacionados a la teoría de lenguajes
de programación.
• Lenguajes regulares.
• Autómatas.
• Definición formal de una gramática.
This material has been prepared by Richard E. Aguilar P.
Contenido de la Sesión
• Conceptos.
• Traductores.
• Interpretes.
• Proceso de traducción.
This material has been prepared by Richard E. Aguilar P.
Logro
Al finalizar la sesión el alumno comprende qué son los
compiladores, conoce sus funciones, así como el proceso de
traducción.
This material has been prepared by Richard E. Aguilar P.
Lenguajes de programación
Primera generación – Lenguaje máquina:
• Empieza en los años 1940 – 1950. Todas las instrucciones y mandatos
se escribían valiéndose de una cadena de dígitos en el sistema
binario {0, 1}. Aún en la actualidad es el único lenguaje interno que
entiende la computadora
• Ejemplo:
11000111 00000110 0000000000000000 0000000000000010
• Representa la instrucción mover el número 2 a la posición de
memoria 0000000000000000.
This material has been prepared by Richard E. Aguilar P.
Lenguajes de programación
Segunda generación – Lenguaje ensamblador:
• Fines de los 50. No utiliza código binario sino un conjunto de símbolos
fáciles de reconocer, conocidos como mnemotécnicos. Aún ahora
se utiliza código de este tipo cuando se busca un nivel máximo de
eficiencia en la ejecución.
• Ejemplo:
MOV X, 2
• Representa la instrucción mover el número 2 a la posición X
(suponiendo que la posición de memoria de X es 0000)
This material has been prepared by Richard E. Aguilar P.
Lenguajes de programación
Tercera generación – Lenguaje de alto nivel:
• En los años 60. Sustituyen las instrucciones simbólicas por códigos
independientes de la máquina, similares al lenguaje humano o al de
las matemáticas.
• Ejemplo:
X = 2
• Representa la instrucción mover el número 2 a la posición en la que
se encuentra la variable X (suponiendo que la posición de memoria
de X es 0000)
This material has been prepared by Richard E. Aguilar P.
Lenguajes de programación
Cuarta generación:
• Se caracteriza en que pone énfasis en especificar que es lo que se
debe hacer, en vez de como ejecutar una tarea. Permiten construir
aplicaciones sencillas combinando piezas prefabricadas.
• No operan por procedimientos, por lo que permiten a los usuarios el
centrarse en lo que hay que hacer y no en como hacerlo.
• Al hacerse cargo de muchos de los detalles de como hacer las
cosas, incrementan la productividad.
This material has been prepared by Richard E. Aguilar P.
El compilador
• En su definición más genérica es un programa que toma como entrada
un texto de un programa escrito en cierto lenguaje y produce como
salida el texto de un programa en otro lenguaje, a la vez que preserva
el significado del texto original.
• Es un programa (software) que permite traducir un programa escrito en
un lenguaje de alto nivel a otro lenguaje de nivel inferior (lenguaje
máquina o lenguaje ensamblador)
• Esto permite al programador el utilizar un lenguaje mucho más cercano
al lenguaje natural y luego compilar ese programa para que pueda ser
ejecutado por una computadora.
This material has been prepared by Richard E. Aguilar P.
El compilador
This material has been prepared by Richard E. Aguilar P.
El interprete
• Es un programa (software) traductor de lenguaje, como un compilador,
pero difiere de este en que ejecuta el programa fuente
inmediatamente, en vez de generar un código objeto que se ejecuta
después de que se completa la traducción.
• En general, la principal desventaja de los interpretes, es que cuando un
programa es interpretado, suele ejecutarse más lento que si el mismo
programa estuviese compilado.
• Los interpretes comparten muchas de sus operaciones con los
compiladores,
This material has been prepared by Richard E. Aguilar P.
Características del compilador
Generalmente un compilador se divide en dos partes:
• Front End: es la parte que analiza el código fuente, comprueba su
validez, genera el árbol de derivación y rellena los valores de la Tabla
de Símbolos. Esta parte puede ser independiente de la plataforma o
del sistema operativo para el que funcionará.
• Back End: parte en el que se genera el código máquina exclusivo para
una determinada plataforma a partir de lo analizado en el Front End.
This material has been prepared by Richard E. Aguilar P.
Fases de un compilador
El compilador pasa por las siguientes fases:
• Analizador léxico
• Analizador sintáctico
• Analizador semántico
• Optimizador de código fuente
• Generador de código
• Optimizador de código objetivo
La administración de la Tabla de Literales, la Tabla de Símbolos y el
manejo de errores interacciona con las 6 fases, listadas líneas arriba.
This material has been prepared by Richard E. Aguilar P.
Fases de un compilador
Analizador
Léxico
Analizador
Sintáctico
Analizador
Semántico
Optimizador de
Código Fuente
Generador de
Código
Optimizador de
Código Objetivo
Tabla de
Literales
Tabla de
Símbolos
Manejador de
Errores
This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
Esta constituido por las fases anteriormente mencionadas.
• Analizador léxico, rastreador o scanner: esta fase efectúa la lectura
real del programa fuente, el cual generalmente esta en la forma de un
flujo de caracteres.
• El rastreador realiza lo que se conoce como el análisis léxico: recolecta
secuencias de caracteres en unidades significativas denominadas
tokens, las cuales son como las palabras de un lenguaje natural.
This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
• Analizador sintáctico o parser: recibe el código fuente en la forma de
tokens proveniente del analizador léxico y realiza el análisis sintáctico
que determina la estructura del programa.
• El análisis sintáctico determina los elementos estructurales del programa
y sus relaciones. Los resultados del análisis sintáctico por lo regular se
representa como un árbol de análisis gramatical o un árbol sintáctico.
This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
• Analizador semántico: la semántica de un programa es su “significado”
en contra posición a su sintaxis o estructura.
• La semántica de un programa determina su comportamiento durante
el tiempo de ejecución, pero la mayoría de los lenguajes de
programación tienen características que se pueden determinar antes
de la ejecución e incluso no se pueden expresar de manera adecuada
como sintaxis y analizarse mediante el analizador sintáctico. Se hace
referencia a tales características como semántica estática y el análisis
de tal semántica es precisamente la tarea del analizador semántico.
This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
• Optimizador de código fuente: los compiladores a menudo incluyen
varias etapas para el mejoramiento u optimización del código. El punto
más anticipado en el que la mayoría de la etapas de automatización
se pueden realizar es precisamente después del análisis semántico.
• Generador de código: toma el código intermedio y genera el código
para la máquina objetivo. Es en esta fase de la compilación en la que
las propiedades de la máquina objetivo se convierten en el factor
principal. No solo es necesario emplear instrucciones que existan en la
máquina objetivo sino que, las decisiones respecto a la representación
de los datos desempeñaran ahora también un papel principal.
This material has been prepared by Richard E. Aguilar P.
El proceso de Traducción
• Optimizador de código objetivo: en esta fase el compilador intenta
mejorar el código objetivo generado por el generador de código.
Dichas mejoras incluyen la selección de modos de direccionamiento
para mejorar el rendimiento, reemplazando las instrucciones lentas por
otras rápidas y eliminando las operaciones redundantes o innecesarias.
This material has been prepared by Richard E. Aguilar P.
Análisis Léxico
• Tiene la tarea de leer el programa fuente como un archivo de
caracteres y dividirlo en tokens.
• Los tokens son como las palabras en lenguaje natural, cada token es
una secuencia de caracteres que representa una unidad de
información en el programa fuente.
• Cada token representa cierto patrón de caracteres que el analizador
léxico reconoce.
This material has been prepared by Richard E. Aguilar P.
Análisis Léxico
• Los tokens caen en diversas categorías: palabras reservadas,
identificadores, símbolo especiales, etc.
• Los tokens como entidades lógicas se deben distinguir claramente de
las cadenas de caracteres que representan. Para hacer clara la
distinción, la cadena de caracteres representada por un token se
denomina su lexema o valor de cadena.
• De acuerdo a lo anterior algunos tokens pueden tener solo un lexema
mientras que otros pueden tener infinitos lexemas.
This material has been prepared by Richard E. Aguilar P.
PREGUNTAS
This material has been prepared by Richard E. Aguilar P.
Resumiendo
• Los compiladores traducen el texto de un programa escrito
en un determinado lenguaje de programación a otro
lenguaje que puede ser ejecutado con una computadora.
• Debido a la existencia de los compiladores, el programador
puede utilizar un lenguaje cercano al lenguaje natural
durante el proceso de programación, sin tener que
preocuparse por los detalles de implementación de dicho
programa para su ejecución en un determinado ambiente
computacional.
S01.s1 - Material.pdf

Más contenido relacionado

La actualidad más candente

Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
bachispasaca
 
Exposicion
ExposicionExposicion
Exposicion
JhulinoHurtado
 
Repuesto de expo de programacion
Repuesto de expo de programacionRepuesto de expo de programacion
Repuesto de expo de programacionelizabethrmlm
 
Glosario De Trabajo De Examen
Glosario De Trabajo De ExamenGlosario De Trabajo De Examen
Glosario De Trabajo De ExamenJoel Soto
 
Compiladores
CompiladoresCompiladores
Compiladores
Isabel
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
Sergio Lara Guevara
 
Tema 1 introducción compilador
Tema 1 introducción compiladorTema 1 introducción compilador
Tema 1 introducción compilador
Pablo Alberto Ponce Lopaczek
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
CJAO
 
Evolucion de los compiladores1
Evolucion de los compiladores1Evolucion de los compiladores1
Evolucion de los compiladores1
udalrico
 
Compiladores fortran,c y pascal
Compiladores fortran,c y pascalCompiladores fortran,c y pascal
Compiladores fortran,c y pascalCarlos Rivadeneira
 
Compiladores conceptos
Compiladores conceptosCompiladores conceptos
Compiladores conceptos
yan marco Vasquez Huayca
 
H:\compiladores
H:\compiladoresH:\compiladores
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacionCecilia Díaz
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continaciondetlefsen
 
Clase de lenguajes de programación
Clase de lenguajes de programaciónClase de lenguajes de programación
Clase de lenguajes de programacióncoopermcfly
 
Actividad 3
Actividad 3Actividad 3
Actividad 3maryr_
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Jorge Rodriguez
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compilador
Danielita Lopez
 

La actualidad más candente (18)

Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Exposicion
ExposicionExposicion
Exposicion
 
Repuesto de expo de programacion
Repuesto de expo de programacionRepuesto de expo de programacion
Repuesto de expo de programacion
 
Glosario De Trabajo De Examen
Glosario De Trabajo De ExamenGlosario De Trabajo De Examen
Glosario De Trabajo De Examen
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Tema 1 introducción compilador
Tema 1 introducción compiladorTema 1 introducción compilador
Tema 1 introducción compilador
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
 
Evolucion de los compiladores1
Evolucion de los compiladores1Evolucion de los compiladores1
Evolucion de los compiladores1
 
Compiladores fortran,c y pascal
Compiladores fortran,c y pascalCompiladores fortran,c y pascal
Compiladores fortran,c y pascal
 
Compiladores conceptos
Compiladores conceptosCompiladores conceptos
Compiladores conceptos
 
H:\compiladores
H:\compiladoresH:\compiladores
H:\compiladores
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Clase de lenguajes de programación
Clase de lenguajes de programaciónClase de lenguajes de programación
Clase de lenguajes de programación
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compilador
 

Similar a S01.s1 - Material.pdf

compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladores
BEVERLYIGUARDIA
 
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
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
Infomania pro
 
lexico.pptx
lexico.pptxlexico.pptx
lexico.pptx
AhiezerMorales
 
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptxERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
AngelesAguilar29
 
Lenguajes de programacion22
Lenguajes de programacion22Lenguajes de programacion22
Lenguajes de programacion22
soto0106
 
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
FrancescoReinaga1
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
Alejandra MA
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnostico
JavierCR2017
 
Compiladores (1) pedro vasques
Compiladores (1) pedro vasquesCompiladores (1) pedro vasques
Compiladores (1) pedro vasques
Pitter Antony Vasquez Castellanos
 
Exposicion lenguajes-grupo-2-copia
Exposicion lenguajes-grupo-2-copiaExposicion lenguajes-grupo-2-copia
Exposicion lenguajes-grupo-2-copia
Héctor Ardón Morga
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptx
LuisSimn12
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
FabricioMontero9
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
FabricioMontero9
 
4.4 Y 4.5.pptx
4.4 Y 4.5.pptx4.4 Y 4.5.pptx
4.4 Y 4.5.pptx
Ricardo1611
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programación
Javier Camacho
 
Compiladores deber 5
Compiladores deber 5Compiladores deber 5
Compiladores deber 5
Guissela Guerrero
 

Similar a S01.s1 - Material.pdf (20)

compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladores
 
TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
 
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
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
 
lexico.pptx
lexico.pptxlexico.pptx
lexico.pptx
 
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptxERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
 
Lenguajes de programacion22
Lenguajes de programacion22Lenguajes de programacion22
Lenguajes de programacion22
 
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
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnostico
 
Compiladores (1) pedro vasques
Compiladores (1) pedro vasquesCompiladores (1) pedro vasques
Compiladores (1) pedro vasques
 
Presentacion2
Presentacion2Presentacion2
Presentacion2
 
Exposicion lenguajes-grupo-2-copia
Exposicion lenguajes-grupo-2-copiaExposicion lenguajes-grupo-2-copia
Exposicion lenguajes-grupo-2-copia
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptx
 
Compilador
CompiladorCompilador
Compilador
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 
4.4 Y 4.5.pptx
4.4 Y 4.5.pptx4.4 Y 4.5.pptx
4.4 Y 4.5.pptx
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programación
 
Compiladores deber 5
Compiladores deber 5Compiladores deber 5
Compiladores deber 5
 

Más de JS Legendario

S12.s1 - Material.pdf
S12.s1 - Material.pdfS12.s1 - Material.pdf
S12.s1 - Material.pdf
JS Legendario
 
S03.s1 - Material.pdf
S03.s1 - Material.pdfS03.s1 - Material.pdf
S03.s1 - Material.pdf
JS Legendario
 
S04.s1 - Material.pdf
S04.s1 - Material.pdfS04.s1 - Material.pdf
S04.s1 - Material.pdf
JS Legendario
 
S05.s1 - Material.pdf
S05.s1 - Material.pdfS05.s1 - Material.pdf
S05.s1 - Material.pdf
JS Legendario
 
S06.s1 - Material.pdf
S06.s1 - Material.pdfS06.s1 - Material.pdf
S06.s1 - Material.pdf
JS Legendario
 
S14.s1 - Material.pdf
S14.s1 - Material.pdfS14.s1 - Material.pdf
S14.s1 - Material.pdf
JS Legendario
 
S02.s1 - Material.pdf
S02.s1 - Material.pdfS02.s1 - Material.pdf
S02.s1 - Material.pdf
JS Legendario
 
S17.s1 - Material.pdf
S17.s1 - Material.pdfS17.s1 - Material.pdf
S17.s1 - Material.pdf
JS Legendario
 
S13.s1 - Material.pdf
S13.s1 - Material.pdfS13.s1 - Material.pdf
S13.s1 - Material.pdf
JS Legendario
 
S16.s1 - Material.pdf
S16.s1 - Material.pdfS16.s1 - Material.pdf
S16.s1 - Material.pdf
JS Legendario
 
S15.s1 - Material.pdf
S15.s1 - Material.pdfS15.s1 - Material.pdf
S15.s1 - Material.pdf
JS Legendario
 
S09.s1 - Material.pdf
S09.s1 - Material.pdfS09.s1 - Material.pdf
S09.s1 - Material.pdf
JS Legendario
 
S08.s1 - Material.pdf
S08.s1 - Material.pdfS08.s1 - Material.pdf
S08.s1 - Material.pdf
JS Legendario
 
S10.s1 - Material.pdf
S10.s1 - Material.pdfS10.s1 - Material.pdf
S10.s1 - Material.pdf
JS Legendario
 
S11.s1 - Material.pdf
S11.s1 - Material.pdfS11.s1 - Material.pdf
S11.s1 - Material.pdf
JS Legendario
 
S07.s1 - Material.pdf
S07.s1 - Material.pdfS07.s1 - Material.pdf
S07.s1 - Material.pdf
JS Legendario
 

Más de JS Legendario (16)

S12.s1 - Material.pdf
S12.s1 - Material.pdfS12.s1 - Material.pdf
S12.s1 - Material.pdf
 
S03.s1 - Material.pdf
S03.s1 - Material.pdfS03.s1 - Material.pdf
S03.s1 - Material.pdf
 
S04.s1 - Material.pdf
S04.s1 - Material.pdfS04.s1 - Material.pdf
S04.s1 - Material.pdf
 
S05.s1 - Material.pdf
S05.s1 - Material.pdfS05.s1 - Material.pdf
S05.s1 - Material.pdf
 
S06.s1 - Material.pdf
S06.s1 - Material.pdfS06.s1 - Material.pdf
S06.s1 - Material.pdf
 
S14.s1 - Material.pdf
S14.s1 - Material.pdfS14.s1 - Material.pdf
S14.s1 - Material.pdf
 
S02.s1 - Material.pdf
S02.s1 - Material.pdfS02.s1 - Material.pdf
S02.s1 - Material.pdf
 
S17.s1 - Material.pdf
S17.s1 - Material.pdfS17.s1 - Material.pdf
S17.s1 - Material.pdf
 
S13.s1 - Material.pdf
S13.s1 - Material.pdfS13.s1 - Material.pdf
S13.s1 - Material.pdf
 
S16.s1 - Material.pdf
S16.s1 - Material.pdfS16.s1 - Material.pdf
S16.s1 - Material.pdf
 
S15.s1 - Material.pdf
S15.s1 - Material.pdfS15.s1 - Material.pdf
S15.s1 - Material.pdf
 
S09.s1 - Material.pdf
S09.s1 - Material.pdfS09.s1 - Material.pdf
S09.s1 - Material.pdf
 
S08.s1 - Material.pdf
S08.s1 - Material.pdfS08.s1 - Material.pdf
S08.s1 - Material.pdf
 
S10.s1 - Material.pdf
S10.s1 - Material.pdfS10.s1 - Material.pdf
S10.s1 - Material.pdf
 
S11.s1 - Material.pdf
S11.s1 - Material.pdfS11.s1 - Material.pdf
S11.s1 - Material.pdf
 
S07.s1 - Material.pdf
S07.s1 - Material.pdfS07.s1 - Material.pdf
S07.s1 - Material.pdf
 

Último

Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
FacundoPortela1
 
CIRCUITOS Y ESQUEMAS BASICOS UTILIZADOS EN LOGICA CABLEADA
CIRCUITOS Y ESQUEMAS BASICOS UTILIZADOS EN LOGICA CABLEADACIRCUITOS Y ESQUEMAS BASICOS UTILIZADOS EN LOGICA CABLEADA
CIRCUITOS Y ESQUEMAS BASICOS UTILIZADOS EN LOGICA CABLEADA
juan carlos gallo
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
Victor Manuel Rivera Guevara
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
GROVER MORENO
 
Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
edujunes132
 
kupdf.net_copia-de-manual-agroislentildea.pdf
kupdf.net_copia-de-manual-agroislentildea.pdfkupdf.net_copia-de-manual-agroislentildea.pdf
kupdf.net_copia-de-manual-agroislentildea.pdf
nachososa8
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
ValGS2
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
SantosCatalinoOrozco
 
FISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdfFISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdf
JavierAlejosM
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
ivan848686
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
ycalful01
 
libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
MiriamAquino27
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
everchanging2020
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
MariaCortezRuiz
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
manuelalejandro238
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
YoverOlivares
 
Siemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdfSiemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdf
RonaldRozoMora
 
164822219-Clase-4-Estructuras-3.pdf losas
164822219-Clase-4-Estructuras-3.pdf losas164822219-Clase-4-Estructuras-3.pdf losas
164822219-Clase-4-Estructuras-3.pdf losas
jcbarriopedro69
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
JhonatanOQuionesChoq
 

Último (20)

Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
 
CIRCUITOS Y ESQUEMAS BASICOS UTILIZADOS EN LOGICA CABLEADA
CIRCUITOS Y ESQUEMAS BASICOS UTILIZADOS EN LOGICA CABLEADACIRCUITOS Y ESQUEMAS BASICOS UTILIZADOS EN LOGICA CABLEADA
CIRCUITOS Y ESQUEMAS BASICOS UTILIZADOS EN LOGICA CABLEADA
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
 
Clasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de BartonClasificacion geomecanica de Q de Barton
Clasificacion geomecanica de Q de Barton
 
kupdf.net_copia-de-manual-agroislentildea.pdf
kupdf.net_copia-de-manual-agroislentildea.pdfkupdf.net_copia-de-manual-agroislentildea.pdf
kupdf.net_copia-de-manual-agroislentildea.pdf
 
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptxDesbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
Desbalanceo Rotatorio cabeceo de flechas y elementos rotativos_GSV.pptx
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
 
FISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdfFISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdf
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
 
libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
 
Siemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdfSiemens----Software---Simatic----HMI.pdf
Siemens----Software---Simatic----HMI.pdf
 
164822219-Clase-4-Estructuras-3.pdf losas
164822219-Clase-4-Estructuras-3.pdf losas164822219-Clase-4-Estructuras-3.pdf losas
164822219-Clase-4-Estructuras-3.pdf losas
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
 

S01.s1 - Material.pdf

  • 1.
  • 2. TEORIA DE LENGUAJES DE PROGRAMACION Introducción
  • 3. This material has been prepared by Richard E. Aguilar P. Reglas Básicas • Prestar atención al expositor. • La participación es esencial. • No copiar en las prácticas y exámenes.
  • 4. This material has been prepared by Richard E. Aguilar P. Elección del Delegado
  • 5. This material has been prepared by Richard E. Aguilar P. Acerca del Curso Es un curso teórico-práctico orientado a profundizar en el estudiante los conceptos relacionados a la teoría de lenguajes de programación. • Lenguajes regulares. • Autómatas. • Definición formal de una gramática.
  • 6. This material has been prepared by Richard E. Aguilar P. Contenido de la Sesión • Conceptos. • Traductores. • Interpretes. • Proceso de traducción.
  • 7.
  • 8. This material has been prepared by Richard E. Aguilar P. Logro Al finalizar la sesión el alumno comprende qué son los compiladores, conoce sus funciones, así como el proceso de traducción.
  • 9.
  • 10. This material has been prepared by Richard E. Aguilar P. Lenguajes de programación Primera generación – Lenguaje máquina: • Empieza en los años 1940 – 1950. Todas las instrucciones y mandatos se escribían valiéndose de una cadena de dígitos en el sistema binario {0, 1}. Aún en la actualidad es el único lenguaje interno que entiende la computadora • Ejemplo: 11000111 00000110 0000000000000000 0000000000000010 • Representa la instrucción mover el número 2 a la posición de memoria 0000000000000000.
  • 11. This material has been prepared by Richard E. Aguilar P. Lenguajes de programación Segunda generación – Lenguaje ensamblador: • Fines de los 50. No utiliza código binario sino un conjunto de símbolos fáciles de reconocer, conocidos como mnemotécnicos. Aún ahora se utiliza código de este tipo cuando se busca un nivel máximo de eficiencia en la ejecución. • Ejemplo: MOV X, 2 • Representa la instrucción mover el número 2 a la posición X (suponiendo que la posición de memoria de X es 0000)
  • 12. This material has been prepared by Richard E. Aguilar P. Lenguajes de programación Tercera generación – Lenguaje de alto nivel: • En los años 60. Sustituyen las instrucciones simbólicas por códigos independientes de la máquina, similares al lenguaje humano o al de las matemáticas. • Ejemplo: X = 2 • Representa la instrucción mover el número 2 a la posición en la que se encuentra la variable X (suponiendo que la posición de memoria de X es 0000)
  • 13. This material has been prepared by Richard E. Aguilar P. Lenguajes de programación Cuarta generación: • Se caracteriza en que pone énfasis en especificar que es lo que se debe hacer, en vez de como ejecutar una tarea. Permiten construir aplicaciones sencillas combinando piezas prefabricadas. • No operan por procedimientos, por lo que permiten a los usuarios el centrarse en lo que hay que hacer y no en como hacerlo. • Al hacerse cargo de muchos de los detalles de como hacer las cosas, incrementan la productividad.
  • 14. This material has been prepared by Richard E. Aguilar P. El compilador • En su definición más genérica es un programa que toma como entrada un texto de un programa escrito en cierto lenguaje y produce como salida el texto de un programa en otro lenguaje, a la vez que preserva el significado del texto original. • Es un programa (software) que permite traducir un programa escrito en un lenguaje de alto nivel a otro lenguaje de nivel inferior (lenguaje máquina o lenguaje ensamblador) • Esto permite al programador el utilizar un lenguaje mucho más cercano al lenguaje natural y luego compilar ese programa para que pueda ser ejecutado por una computadora.
  • 15. This material has been prepared by Richard E. Aguilar P. El compilador
  • 16. This material has been prepared by Richard E. Aguilar P. El interprete • Es un programa (software) traductor de lenguaje, como un compilador, pero difiere de este en que ejecuta el programa fuente inmediatamente, en vez de generar un código objeto que se ejecuta después de que se completa la traducción. • En general, la principal desventaja de los interpretes, es que cuando un programa es interpretado, suele ejecutarse más lento que si el mismo programa estuviese compilado. • Los interpretes comparten muchas de sus operaciones con los compiladores,
  • 17. This material has been prepared by Richard E. Aguilar P. Características del compilador Generalmente un compilador se divide en dos partes: • Front End: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la Tabla de Símbolos. Esta parte puede ser independiente de la plataforma o del sistema operativo para el que funcionará. • Back End: parte en el que se genera el código máquina exclusivo para una determinada plataforma a partir de lo analizado en el Front End.
  • 18. This material has been prepared by Richard E. Aguilar P. Fases de un compilador El compilador pasa por las siguientes fases: • Analizador léxico • Analizador sintáctico • Analizador semántico • Optimizador de código fuente • Generador de código • Optimizador de código objetivo La administración de la Tabla de Literales, la Tabla de Símbolos y el manejo de errores interacciona con las 6 fases, listadas líneas arriba.
  • 19. This material has been prepared by Richard E. Aguilar P. Fases de un compilador Analizador Léxico Analizador Sintáctico Analizador Semántico Optimizador de Código Fuente Generador de Código Optimizador de Código Objetivo Tabla de Literales Tabla de Símbolos Manejador de Errores
  • 20. This material has been prepared by Richard E. Aguilar P. El proceso de Traducción Esta constituido por las fases anteriormente mencionadas. • Analizador léxico, rastreador o scanner: esta fase efectúa la lectura real del programa fuente, el cual generalmente esta en la forma de un flujo de caracteres. • El rastreador realiza lo que se conoce como el análisis léxico: recolecta secuencias de caracteres en unidades significativas denominadas tokens, las cuales son como las palabras de un lenguaje natural.
  • 21. This material has been prepared by Richard E. Aguilar P. El proceso de Traducción • Analizador sintáctico o parser: recibe el código fuente en la forma de tokens proveniente del analizador léxico y realiza el análisis sintáctico que determina la estructura del programa. • El análisis sintáctico determina los elementos estructurales del programa y sus relaciones. Los resultados del análisis sintáctico por lo regular se representa como un árbol de análisis gramatical o un árbol sintáctico.
  • 22. This material has been prepared by Richard E. Aguilar P. El proceso de Traducción • Analizador semántico: la semántica de un programa es su “significado” en contra posición a su sintaxis o estructura. • La semántica de un programa determina su comportamiento durante el tiempo de ejecución, pero la mayoría de los lenguajes de programación tienen características que se pueden determinar antes de la ejecución e incluso no se pueden expresar de manera adecuada como sintaxis y analizarse mediante el analizador sintáctico. Se hace referencia a tales características como semántica estática y el análisis de tal semántica es precisamente la tarea del analizador semántico.
  • 23. This material has been prepared by Richard E. Aguilar P. El proceso de Traducción • Optimizador de código fuente: los compiladores a menudo incluyen varias etapas para el mejoramiento u optimización del código. El punto más anticipado en el que la mayoría de la etapas de automatización se pueden realizar es precisamente después del análisis semántico. • Generador de código: toma el código intermedio y genera el código para la máquina objetivo. Es en esta fase de la compilación en la que las propiedades de la máquina objetivo se convierten en el factor principal. No solo es necesario emplear instrucciones que existan en la máquina objetivo sino que, las decisiones respecto a la representación de los datos desempeñaran ahora también un papel principal.
  • 24. This material has been prepared by Richard E. Aguilar P. El proceso de Traducción • Optimizador de código objetivo: en esta fase el compilador intenta mejorar el código objetivo generado por el generador de código. Dichas mejoras incluyen la selección de modos de direccionamiento para mejorar el rendimiento, reemplazando las instrucciones lentas por otras rápidas y eliminando las operaciones redundantes o innecesarias.
  • 25. This material has been prepared by Richard E. Aguilar P. Análisis Léxico • Tiene la tarea de leer el programa fuente como un archivo de caracteres y dividirlo en tokens. • Los tokens son como las palabras en lenguaje natural, cada token es una secuencia de caracteres que representa una unidad de información en el programa fuente. • Cada token representa cierto patrón de caracteres que el analizador léxico reconoce.
  • 26. This material has been prepared by Richard E. Aguilar P. Análisis Léxico • Los tokens caen en diversas categorías: palabras reservadas, identificadores, símbolo especiales, etc. • Los tokens como entidades lógicas se deben distinguir claramente de las cadenas de caracteres que representan. Para hacer clara la distinción, la cadena de caracteres representada por un token se denomina su lexema o valor de cadena. • De acuerdo a lo anterior algunos tokens pueden tener solo un lexema mientras que otros pueden tener infinitos lexemas.
  • 27.
  • 28. This material has been prepared by Richard E. Aguilar P. PREGUNTAS
  • 29.
  • 30. This material has been prepared by Richard E. Aguilar P. Resumiendo • Los compiladores traducen el texto de un programa escrito en un determinado lenguaje de programación a otro lenguaje que puede ser ejecutado con una computadora. • Debido a la existencia de los compiladores, el programador puede utilizar un lenguaje cercano al lenguaje natural durante el proceso de programación, sin tener que preocuparse por los detalles de implementación de dicho programa para su ejecución en un determinado ambiente computacional.