SlideShare una empresa de Scribd logo
1 de 17
IS-513 LENGUAJES DE PROGRAMACIÓN
CONTACTO
MSc IBIS JAVIER ZAVALA RODRÍGUEZ
ibis.zavala@unah.hn
+504 3182-1148
IS-513 Lenguajes de Programación
Sábados 8:00 am – 12 m
enero de 2023
UNIVERSIDAD NACIONAL AUTÓNOMA DE
HONDURAS
CENTRO UNIVERSITARIO REGIONAL DEL
LITORAL PACÍFICO
IS-513 LENGUAJES DE PROGRAMACIÓN
IS-513 LENGUAJES DE PROGRAMACIÓN
• Traductor
• Compilador
• Análisis Léxico
• Análisis Sintáctico
• Análisis Semántico
• Generación de Código intermedio
• Optimización de Código
• Intérprete
Actividad #1
Actividad #2
EL PROCESO DE
COMPILACIÓN
04/02/2023
IS-513 LENGUAJES DE PROGRAMACIÓN
TRADUCTOR
IS-513 LENGUAJES DE PROGRAMACIÓN
TRADUCTOR
IS-513 LENGUAJES DE PROGRAMACIÓN
ENSAMBLADOR
IS-513 LENGUAJES DE PROGRAMACIÓN
COMPILADOR
Cualquier compilador debe realizar dos tareas
principales: análisis del programa a compilar y
síntesis de un programa en lenguaje máquina.
Para el estudio de un compilador, es necesario
dividir su trabajo en fases, cada fase
representa una transformación al código fuente
para obtener el código objeto. En cada una de
las fases se utiliza un administrador de la tabla
de símbolos y un manejador de errores.
IS-513 LENGUAJES DE PROGRAMACIÓN
ANÁLISIS LÉXICO
1 fase de compilación
• Divide el programa fuente en unidades sintácticas llamadas
tokens.
• Elimina espacios vacíos y caracteres especiales.
• Interactúa con la tabla de símbolos.
IS-513 LENGUAJES DE PROGRAMACIÓN
Tabla de símbolos
Ejemplo
IS-513 LENGUAJES DE PROGRAMACIÓN
ANÁLISIS SINTÁCTICO
Es la segunda fase del proceso de compilación y tiene como finalidad la
generación de un Árbol sintáctico, el cual no es más que una estructura de
datos compleja que permite representar de una forma más simple al
programa fuente.
Los compiladores modernos utilizan estructuras de objetos para representa a
un programa, de esta forma existe una clase específica para representa cada
posible token de nuestra tabla de símbolos.
IS-513 LENGUAJES DE PROGRAMACIÓN
ANÁLISIS SEMÁNTICO
Es el último paso antes de empezar a compilar realmente el código,
prepara el programa para ser compilado.
Parte del árbol sintáctico abstracto y tiene la finalidad de validar los puntos
más finos del programa, analiza que todo el programa tenga un significado
exacto y que este no pueda fallar en tiempo de ejecución.
Ejemplo, validar compatibilidad en tipos de datos, que la variable utilizada en
una instrucción este previamente declara o que estén dentro del contexto, si
implementamos una interface que todos los métodos estén definidos, etc.
IS-513 LENGUAJES DE PROGRAMACIÓN
CÓDIGO INTERMEDIO
Se puede considerar esta operación intermedia como un subprograma para
una máquina abstracta, a esta representación debe tener dos propiedades
importantes: debe ser fácil de producir y fácil de traducir al programa objeto.
Existe una forma intermedia llamada código de tres direcciones, que consiste
en una secuencia de instrucciones similares a ensamblador, con tres
operandos por instrucción. Cada operando puede actuar como un registro.
Hay varios puntos que vale la pena mencionar sobre las instrucciones
de tres direcciones. En primer lugar, cada instrucción de asignación
de tres direcciones tiene, por lo menos, un operador del lado
derecho. Por ende, estas instrucciones corrigen el orden en el que se
van a realizar las operaciones; la multiplicación va antes que la suma
en el programa fuente. En segundo lugar, el compilador debe generar
un nombre temporal para guardar el valor calculado por una
instrucción de tres direcciones. En tercer lugar, algunas
"instrucciones de tres direcciones" como la primera y la última en la
secuencia anterior, tienen menos de tres operandos.
IS-513 LENGUAJES DE PROGRAMACIÓN
OPTIMIZACIÓN DE CÓDIGO
La fase de optimización de código independiente de la máquina trata de
mejorar el código intermedio, de manera que se produzca un mejor
código destino. Por lo general, mejor significa más rápido, pero pueden
lograrse otros objetivos, como un código más corto, o un código de
destino que consuma menos poder.
El optimizador puede deducir que la conversión del
60, de entero a punto flotante, puede realizarse de
una vez por todas en tiempo de compilación, por lo
que se puede eliminar la operación inttofloat
sustituyendo el entero 60 por el número de punto
flotante 60.0. Lo que, es más, t3 se utiliza sólo una vez
para transmitir su valor a id1, para que el optimizador
pueda transformar (1.3) en la siguiente secuencia más
corta.
IS-513 LENGUAJES DE PROGRAMACIÓN
GENERACIÓN DE CÓDIGO
Recibe como entrada una representación intermedia del programa fuente y
la asigna al lenguaje destino. Si el lenguaje destino es código máquina, se
seleccionan registros o ubicaciones (localidades) de memoria para cada una
de las variables que utiliza el programa. Después, las instrucciones
intermedias se traducen en secuencias de instrucciones de máquina que
realizan la misma tarea. Un aspecto crucial de la generación de código es la
asignación juiciosa de los registros para guardar las variables.
El primer operando de cada instrucción especifica un
destino. La F en cada instrucción nos indica que trata con
número de punto flotante. El código carga el contenido de
la dirección id3 en el registro R2, y después lo multiplica
con la constante de punto flotante 60.0. El # indica que el
número 60.0 se va a tratar como una constante inmediata.
La tercera instrucción mueve id2 al registro R1 y la cuarta lo
suma al valor que se había calculado antes en el
registro R2. Por último, el valor en el registro R1 se
almacena en la dirección de id1, por lo que el código
implementa en forma correcta la instrucción de asignación.
IS-513 LENGUAJES DE PROGRAMACIÓN
MANEJADOR DE ERRORES
Es posible encontrar errores. De esta forma podrán controlarse
más eficientemente los errores encontrados en cada una de las
fases de la compilación de un programa.
IS-513 LENGUAJES DE PROGRAMACIÓN
INTÉRPRETE
IS-513 LENGUAJES DE PROGRAMACIÓN
INTÉRPRETE
Los intérpretes realizan normalmente dos operaciones:
 Traducen el código fuente a un formato interno.
 Ejecutan o interpretan el programa traducido al formato interno.
Particularidades de la interpretación:
 Ahorra memoria.
 Produce un resultado que no se puede
almacenar, lo cual hace la ejecución lenta.
 No demasiado eficiente, cada vez que se
entre en un bucle se analizaran sus
sentencias.
 Facilita el proceso de depuración.
 No produce resultados transportables.
La interpretación es útil en:
 Sistemas interactivos.
 Programas de pequeña envergadura.
 Programas de prototipo y de enseñanza.
IS-513 LENGUAJES DE PROGRAMACIÓN
ACTIVIDAD #1
Viernes 10/02/2023
• 1. Tokens
• 2. Expresiones Regulares
• 3. Gramática libre de contexto
• 4. Árboles de Parseo
• 5. Derivaciones

Más contenido relacionado

Similar a LENGUAJES DE PROGRAMACIÓN UNAH 04022023 .pptx

Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00Car_00_01
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorCar_00_01
 
Trabajo lenguajes de programacion
Trabajo lenguajes de programacionTrabajo lenguajes de programacion
Trabajo lenguajes de programacionJulian Suna Paez
 
Trabajo lenguajes de programacion
Trabajo lenguajes de programacionTrabajo lenguajes de programacion
Trabajo lenguajes de programacionJulian Suna Paez
 
Trabajo lenguajes de programacion
Trabajo lenguajes de programacionTrabajo lenguajes de programacion
Trabajo lenguajes de programacionJulian Suna Paez
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Carlos Pastorino
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorDeisyVilchez
 
Generacion codigo intermedio
Generacion codigo intermedioGeneracion codigo intermedio
Generacion codigo intermedioAndresDvila
 
Semana 2 Lenguajes de programación.pptx
Semana 2  Lenguajes de programación.pptxSemana 2  Lenguajes de programación.pptx
Semana 2 Lenguajes de programación.pptxPriceSanchezJose
 
Compiladores
CompiladoresCompiladores
Compiladoreshenry_shd
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)tonytenorio2
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic oskarjgf
 
Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesMichael Vreys
 

Similar a LENGUAJES DE PROGRAMACIÓN UNAH 04022023 .pptx (20)

Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Trabajo lenguajes de programacion
Trabajo lenguajes de programacionTrabajo lenguajes de programacion
Trabajo lenguajes de programacion
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Trabajo lenguajes de programacion
Trabajo lenguajes de programacionTrabajo lenguajes de programacion
Trabajo lenguajes de programacion
 
Trabajo lenguajes de programacion
Trabajo lenguajes de programacionTrabajo lenguajes de programacion
Trabajo lenguajes de programacion
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Compiladores (1) pedro vasques
Compiladores (1) pedro vasquesCompiladores (1) pedro vasques
Compiladores (1) pedro vasques
 
Generacion codigo intermedio
Generacion codigo intermedioGeneracion codigo intermedio
Generacion codigo intermedio
 
Semana 2 Lenguajes de programación.pptx
Semana 2  Lenguajes de programación.pptxSemana 2  Lenguajes de programación.pptx
Semana 2 Lenguajes de programación.pptx
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic
 
Compilador
CompiladorCompilador
Compilador
 
Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretes
 
Lenguaje assembler
Lenguaje assemblerLenguaje assembler
Lenguaje assembler
 

Último

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 

Último (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

LENGUAJES DE PROGRAMACIÓN UNAH 04022023 .pptx

  • 1. IS-513 LENGUAJES DE PROGRAMACIÓN CONTACTO MSc IBIS JAVIER ZAVALA RODRÍGUEZ ibis.zavala@unah.hn +504 3182-1148 IS-513 Lenguajes de Programación Sábados 8:00 am – 12 m enero de 2023 UNIVERSIDAD NACIONAL AUTÓNOMA DE HONDURAS CENTRO UNIVERSITARIO REGIONAL DEL LITORAL PACÍFICO IS-513 LENGUAJES DE PROGRAMACIÓN
  • 2. IS-513 LENGUAJES DE PROGRAMACIÓN • Traductor • Compilador • Análisis Léxico • Análisis Sintáctico • Análisis Semántico • Generación de Código intermedio • Optimización de Código • Intérprete Actividad #1 Actividad #2 EL PROCESO DE COMPILACIÓN 04/02/2023
  • 3. IS-513 LENGUAJES DE PROGRAMACIÓN TRADUCTOR
  • 4. IS-513 LENGUAJES DE PROGRAMACIÓN TRADUCTOR
  • 5. IS-513 LENGUAJES DE PROGRAMACIÓN ENSAMBLADOR
  • 6. IS-513 LENGUAJES DE PROGRAMACIÓN COMPILADOR Cualquier compilador debe realizar dos tareas principales: análisis del programa a compilar y síntesis de un programa en lenguaje máquina. Para el estudio de un compilador, es necesario dividir su trabajo en fases, cada fase representa una transformación al código fuente para obtener el código objeto. En cada una de las fases se utiliza un administrador de la tabla de símbolos y un manejador de errores.
  • 7. IS-513 LENGUAJES DE PROGRAMACIÓN ANÁLISIS LÉXICO 1 fase de compilación • Divide el programa fuente en unidades sintácticas llamadas tokens. • Elimina espacios vacíos y caracteres especiales. • Interactúa con la tabla de símbolos.
  • 8. IS-513 LENGUAJES DE PROGRAMACIÓN Tabla de símbolos Ejemplo
  • 9. IS-513 LENGUAJES DE PROGRAMACIÓN ANÁLISIS SINTÁCTICO Es la segunda fase del proceso de compilación y tiene como finalidad la generación de un Árbol sintáctico, el cual no es más que una estructura de datos compleja que permite representar de una forma más simple al programa fuente. Los compiladores modernos utilizan estructuras de objetos para representa a un programa, de esta forma existe una clase específica para representa cada posible token de nuestra tabla de símbolos.
  • 10. IS-513 LENGUAJES DE PROGRAMACIÓN ANÁLISIS SEMÁNTICO Es el último paso antes de empezar a compilar realmente el código, prepara el programa para ser compilado. Parte del árbol sintáctico abstracto y tiene la finalidad de validar los puntos más finos del programa, analiza que todo el programa tenga un significado exacto y que este no pueda fallar en tiempo de ejecución. Ejemplo, validar compatibilidad en tipos de datos, que la variable utilizada en una instrucción este previamente declara o que estén dentro del contexto, si implementamos una interface que todos los métodos estén definidos, etc.
  • 11. IS-513 LENGUAJES DE PROGRAMACIÓN CÓDIGO INTERMEDIO Se puede considerar esta operación intermedia como un subprograma para una máquina abstracta, a esta representación debe tener dos propiedades importantes: debe ser fácil de producir y fácil de traducir al programa objeto. Existe una forma intermedia llamada código de tres direcciones, que consiste en una secuencia de instrucciones similares a ensamblador, con tres operandos por instrucción. Cada operando puede actuar como un registro. Hay varios puntos que vale la pena mencionar sobre las instrucciones de tres direcciones. En primer lugar, cada instrucción de asignación de tres direcciones tiene, por lo menos, un operador del lado derecho. Por ende, estas instrucciones corrigen el orden en el que se van a realizar las operaciones; la multiplicación va antes que la suma en el programa fuente. En segundo lugar, el compilador debe generar un nombre temporal para guardar el valor calculado por una instrucción de tres direcciones. En tercer lugar, algunas "instrucciones de tres direcciones" como la primera y la última en la secuencia anterior, tienen menos de tres operandos.
  • 12. IS-513 LENGUAJES DE PROGRAMACIÓN OPTIMIZACIÓN DE CÓDIGO La fase de optimización de código independiente de la máquina trata de mejorar el código intermedio, de manera que se produzca un mejor código destino. Por lo general, mejor significa más rápido, pero pueden lograrse otros objetivos, como un código más corto, o un código de destino que consuma menos poder. El optimizador puede deducir que la conversión del 60, de entero a punto flotante, puede realizarse de una vez por todas en tiempo de compilación, por lo que se puede eliminar la operación inttofloat sustituyendo el entero 60 por el número de punto flotante 60.0. Lo que, es más, t3 se utiliza sólo una vez para transmitir su valor a id1, para que el optimizador pueda transformar (1.3) en la siguiente secuencia más corta.
  • 13. IS-513 LENGUAJES DE PROGRAMACIÓN GENERACIÓN DE CÓDIGO Recibe como entrada una representación intermedia del programa fuente y la asigna al lenguaje destino. Si el lenguaje destino es código máquina, se seleccionan registros o ubicaciones (localidades) de memoria para cada una de las variables que utiliza el programa. Después, las instrucciones intermedias se traducen en secuencias de instrucciones de máquina que realizan la misma tarea. Un aspecto crucial de la generación de código es la asignación juiciosa de los registros para guardar las variables. El primer operando de cada instrucción especifica un destino. La F en cada instrucción nos indica que trata con número de punto flotante. El código carga el contenido de la dirección id3 en el registro R2, y después lo multiplica con la constante de punto flotante 60.0. El # indica que el número 60.0 se va a tratar como una constante inmediata. La tercera instrucción mueve id2 al registro R1 y la cuarta lo suma al valor que se había calculado antes en el registro R2. Por último, el valor en el registro R1 se almacena en la dirección de id1, por lo que el código implementa en forma correcta la instrucción de asignación.
  • 14. IS-513 LENGUAJES DE PROGRAMACIÓN MANEJADOR DE ERRORES Es posible encontrar errores. De esta forma podrán controlarse más eficientemente los errores encontrados en cada una de las fases de la compilación de un programa.
  • 15. IS-513 LENGUAJES DE PROGRAMACIÓN INTÉRPRETE
  • 16. IS-513 LENGUAJES DE PROGRAMACIÓN INTÉRPRETE Los intérpretes realizan normalmente dos operaciones:  Traducen el código fuente a un formato interno.  Ejecutan o interpretan el programa traducido al formato interno. Particularidades de la interpretación:  Ahorra memoria.  Produce un resultado que no se puede almacenar, lo cual hace la ejecución lenta.  No demasiado eficiente, cada vez que se entre en un bucle se analizaran sus sentencias.  Facilita el proceso de depuración.  No produce resultados transportables. La interpretación es útil en:  Sistemas interactivos.  Programas de pequeña envergadura.  Programas de prototipo y de enseñanza.
  • 17. IS-513 LENGUAJES DE PROGRAMACIÓN ACTIVIDAD #1 Viernes 10/02/2023 • 1. Tokens • 2. Expresiones Regulares • 3. Gramática libre de contexto • 4. Árboles de Parseo • 5. Derivaciones