S01.s1 - Material.pdf
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.
S01.s1 - Material.pdf
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.
S01.s1 - Material.pdf
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.
S01.s1 - Material.pdf
This material has been prepared by Richard E. Aguilar P.
PREGUNTAS
S01.s1 - Material.pdf
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

PPT
Cap1 compiladores
PPTX
Grupo 1 proceso de lenguajes i
PPTX
Compiladores unidad1
PPTX
Capitulo i
PPTX
Cap2
PDF
ingenieria de software
PPT
Introducción a Compiladores
PPT
Compiladores
Cap1 compiladores
Grupo 1 proceso de lenguajes i
Compiladores unidad1
Capitulo i
Cap2
ingenieria de software
Introducción a Compiladores
Compiladores

La actualidad más candente (18)

PDF
Materia unidad compiladores
PPTX
Exposicion
PPTX
Repuesto de expo de programacion
DOCX
Glosario De Trabajo De Examen
PPSX
Compiladores
PDF
Unidad1 2 Lenguajes y automatas
PPT
Tema 1 introducción compilador
PPT
Cap4 compiladores
PPT
Evolucion de los compiladores1
PPTX
Compiladores fortran,c y pascal
PPTX
Compiladores conceptos
PPT
Unidad 1-continacion
PPT
Unidad 1-continacion
PPTX
Clase de lenguajes de programación
PPTX
Actividad 3
PPTX
Traducción de un programa: compilación, enlace de un programa, errores en tie...
PPTX
C:\fakepath\compilador
Materia unidad compiladores
Exposicion
Repuesto de expo de programacion
Glosario De Trabajo De Examen
Compiladores
Unidad1 2 Lenguajes y automatas
Tema 1 introducción compilador
Cap4 compiladores
Evolucion de los compiladores1
Compiladores fortran,c y pascal
Compiladores conceptos
Unidad 1-continacion
Unidad 1-continacion
Clase de lenguajes de programación
Actividad 3
Traducción de un programa: compilación, enlace de un programa, errores en tie...
C:\fakepath\compilador
Publicidad

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

PPTX
compiladores.pptx presentación de compiladores
DOCX
TEMA Nº 1
PPTX
Lenguajes de programacion tema 2_compiladores e interpretes
PDF
Clase2 clasificacion de interpretes
PPTX
lexico.pptx
PPTX
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
PDF
Lenguajes de programacion22
PPT
Informacion sobre los compiladores y sus funciones
PPTX
Programación lógica y funcional
DOC
Preguntas de diagnostico
DOCX
Compiladores (1) pedro vasques
PPTX
Exposicion lenguajes-grupo-2-copia
PPTX
diaposichap.pptx
PPTX
Traductores, Compiladores e Intérpretes.pptx
PPT
Compilador
PDF
Unidad-1.pptx.pdf
PDF
Unidad-1.pptx.pdf
PPTX
4.4 Y 4.5.pptx
PPTX
Clasificación de los lenguajes de programación
compiladores.pptx presentación de compiladores
TEMA Nº 1
Lenguajes de programacion tema 2_compiladores e interpretes
Clase2 clasificacion de interpretes
lexico.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
Lenguajes de programacion22
Informacion sobre los compiladores y sus funciones
Programación lógica y funcional
Preguntas de diagnostico
Compiladores (1) pedro vasques
Exposicion lenguajes-grupo-2-copia
diaposichap.pptx
Traductores, Compiladores e Intérpretes.pptx
Compilador
Unidad-1.pptx.pdf
Unidad-1.pptx.pdf
4.4 Y 4.5.pptx
Clasificación de los lenguajes de programación
Publicidad

Más de JS Legendario (16)

PDF
S12.s1 - Material.pdf
PDF
S03.s1 - Material.pdf
PDF
S04.s1 - Material.pdf
PDF
S05.s1 - Material.pdf
PDF
S06.s1 - Material.pdf
PDF
S14.s1 - Material.pdf
PDF
S02.s1 - Material.pdf
PDF
S17.s1 - Material.pdf
PDF
S13.s1 - Material.pdf
PDF
S16.s1 - Material.pdf
PDF
S15.s1 - Material.pdf
PDF
S09.s1 - Material.pdf
PDF
S08.s1 - Material.pdf
PDF
S10.s1 - Material.pdf
PDF
S11.s1 - Material.pdf
PDF
S07.s1 - Material.pdf
S12.s1 - Material.pdf
S03.s1 - Material.pdf
S04.s1 - Material.pdf
S05.s1 - Material.pdf
S06.s1 - Material.pdf
S14.s1 - Material.pdf
S02.s1 - Material.pdf
S17.s1 - Material.pdf
S13.s1 - Material.pdf
S16.s1 - Material.pdf
S15.s1 - Material.pdf
S09.s1 - Material.pdf
S08.s1 - Material.pdf
S10.s1 - Material.pdf
S11.s1 - Material.pdf
S07.s1 - Material.pdf

Último (20)

PPTX
GESTION DE OPERACION Y MANTENIMIENTO DE CENTRALES DE GENERACION. (1).pptx
PDF
IMPORTANCIA DE CARNE DE COBAYOS- CUYES CRI
PDF
METODOLOGÍA DE INVESTIGACION ACCIDENTES DEL TRABAJO.pdf
PDF
Seguridad vial en carreteras mexico 2003.pdf
PDF
La 5ª Edición del Manual de Ingeniería de Sistemas ( SEH5E ) como base d...
PDF
PPT ProChile 2019 beneficios de la construccion con madera
PDF
SESION 01 - LEY 29783, LEY DE SEGURODAD Y SALUD EN EL TRABAJO (1) (1).pdf
PPT
CLASE_1_CICLO_HIDROLOGICO_ALUMNOS_2015.ppt
PPT
flujo de caja paa la evaluacion de proyectos
PPTX
EQUIPOS DE PROTECCION PERSONAL - LEY LABORAL.pptx
PPT
acero-estructural.ppt acero acero jjshsdkdgfh
PDF
Infraestructuras en la seguridad vial.pdf
PDF
PPT - PROYECTO FINAL CONSTRUCCIÒN III.pdf
PDF
Módulo V. Tema 2. Disruptive & Transformation 2024 v.0.4.pdf
PDF
EVALUACIÓN 1_REFERENCIAPIR_FASE 1_2024.pdf
PPTX
nom-020-stps-221027181711-272h6bfa3.pptx
PDF
Precomisionado de equipos introduccion.pdf
PPTX
CONCEPCIONES SOBRE LA ESTRUCTURA DE LA MATERIA.pptx
PDF
Presentacion_Resolver_CEM_Hospitales_v2.pdf
PDF
Curso Proveedores LEAR seguridad e higiene
GESTION DE OPERACION Y MANTENIMIENTO DE CENTRALES DE GENERACION. (1).pptx
IMPORTANCIA DE CARNE DE COBAYOS- CUYES CRI
METODOLOGÍA DE INVESTIGACION ACCIDENTES DEL TRABAJO.pdf
Seguridad vial en carreteras mexico 2003.pdf
La 5ª Edición del Manual de Ingeniería de Sistemas ( SEH5E ) como base d...
PPT ProChile 2019 beneficios de la construccion con madera
SESION 01 - LEY 29783, LEY DE SEGURODAD Y SALUD EN EL TRABAJO (1) (1).pdf
CLASE_1_CICLO_HIDROLOGICO_ALUMNOS_2015.ppt
flujo de caja paa la evaluacion de proyectos
EQUIPOS DE PROTECCION PERSONAL - LEY LABORAL.pptx
acero-estructural.ppt acero acero jjshsdkdgfh
Infraestructuras en la seguridad vial.pdf
PPT - PROYECTO FINAL CONSTRUCCIÒN III.pdf
Módulo V. Tema 2. Disruptive & Transformation 2024 v.0.4.pdf
EVALUACIÓN 1_REFERENCIAPIR_FASE 1_2024.pdf
nom-020-stps-221027181711-272h6bfa3.pptx
Precomisionado de equipos introduccion.pdf
CONCEPCIONES SOBRE LA ESTRUCTURA DE LA MATERIA.pptx
Presentacion_Resolver_CEM_Hospitales_v2.pdf
Curso Proveedores LEAR seguridad e higiene

S01.s1 - Material.pdf

  • 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.
  • 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.
  • 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.
  • 28. This material has been prepared by Richard E. Aguilar P. PREGUNTAS
  • 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.